From ae97ad1eb49dac6744be44bf594b9fcc85618903 Mon Sep 17 00:00:00 2001 From: Repo Health Bot Date: Mon, 8 Jun 2026 07:41:10 +0000 Subject: [PATCH] chore: Update repo health data files --- dashboards/dashboard_main.csv | 364 +++++------ individual_repo_data/dashboard.sql | 370 +++++++++++ individual_repo_data/dashboard.sqlite3 | Bin 6324224 -> 7229440 bytes .../openedx/.github_repo_health.yaml | 21 +- .../openedx/DoneXBlock_repo_health.yaml | 120 ++-- .../openedx/FeedbackXBlock_repo_health.yaml | 99 ++- .../RecommenderXBlock_repo_health.yaml | 30 +- .../openedx/XBlock_repo_health.yaml | 112 ++-- .../openedx/acid-block_repo_health.yaml | 54 +- .../openedx/api-doc-tools_repo_health.yaml | 94 +-- .../openedx/aspects-dbt_repo_health.yaml | 36 +- .../openedx/auth-backends_repo_health.yaml | 97 +-- .../openedx/axim-engineering_repo_health.yaml | 2 +- .../openedx/brand-openedx_repo_health.yaml | 17 +- .../browserslist-config_repo_health.yaml | 4 +- .../openedx/cc2olx_repo_health.yaml | 77 ++- .../openedx/ccx-keys_repo_health.yaml | 40 +- .../openedx/code-annotations_repo_health.yaml | 87 +-- .../codejail-includes_repo_health.yaml | 56 +- .../openedx/codejail-service_repo_health.yaml | 120 ++-- .../openedx/codejail_repo_health.yaml | 68 +- .../openedx/completion_repo_health.yaml | 173 +++-- .../openedx/course-discovery_repo_health.yaml | 358 ++++++----- .../credentials-themes_repo_health.yaml | 27 +- .../openedx/credentials_repo_health.yaml | 243 +++---- .../crowdsourcehinter_repo_health.yaml | 53 +- .../cypress-e2e-tests_repo_health.yaml | 22 +- .../openedx/didkit-python_repo_health.yaml | 2 +- .../django-config-models_repo_health.yaml | 116 ++-- .../openedx/django-pyfs_repo_health.yaml | 103 +-- .../openedx/django-require_repo_health.yaml | 18 +- .../django-user-tasks_repo_health.yaml | 115 ++-- .../openedx/django-wiki_repo_health.yaml | 57 +- .../openedx/docs.openedx.org_repo_health.yaml | 97 ++- .../openedx/edx-ace_repo_health.yaml | 162 ++--- .../openedx/edx-bootstrap_repo_health.yaml | 6 +- .../openedx/edx-bulk-grades_repo_health.yaml | 113 ++-- .../openedx/edx-celeryutils_repo_health.yaml | 120 ++-- .../edx-cookiecutters_repo_health.yaml | 83 ++- ...x-django-sites-extensions_repo_health.yaml | 84 ++- .../openedx/edx-django-utils_repo_health.yaml | 115 ++-- .../edx-drf-extensions_repo_health.yaml | 74 +-- .../edx-enterprise-data_repo_health.yaml | 181 +++--- ...enterprise-subsidy-client_repo_health.yaml | 81 +-- .../openedx/edx-enterprise_repo_health.yaml | 343 +++++----- .../openedx/edx-lint_repo_health.yaml | 74 ++- .../openedx/edx-milestones_repo_health.yaml | 72 ++- .../openedx/edx-notes-api_repo_health.yaml | 139 ++-- .../openedx/edx-ora2_repo_health.yaml | 188 +++--- .../edx-organizations_repo_health.yaml | 82 ++- .../openedx/edx-proctoring_repo_health.yaml | 175 ++--- .../openedx/edx-rbac_repo_health.yaml | 120 ++-- .../edx-rest-api-client_repo_health.yaml | 95 +-- .../openedx/edx-search_repo_health.yaml | 96 +-- .../openedx/edx-submissions_repo_health.yaml | 115 ++-- .../openedx/edx-toggles_repo_health.yaml | 119 ++-- .../openedx/edx-ui-toolkit_repo_health.yaml | 8 +- .../openedx/edx-val_repo_health.yaml | 184 +++--- .../openedx/edx-when_repo_health.yaml | 133 ++-- .../enmerkar-underscore_repo_health.yaml | 38 +- .../enterprise-access_repo_health.yaml | 235 +++---- .../enterprise-catalog_repo_health.yaml | 220 +++---- ...prise-integrated-channels_repo_health.yaml | 214 +++--- .../enterprise-subsidy_repo_health.yaml | 202 +++--- .../openedx/eslint-config_repo_health.yaml | 10 +- .../openedx/event-bus-kafka_repo_health.yaml | 113 ++-- .../openedx/event-bus-redis_repo_health.yaml | 121 ++-- .../event-routing-backends_repo_health.yaml | 151 ++--- .../openedx/event-tracking_repo_health.yaml | 106 +-- .../openedx/forum_repo_health.yaml | 169 ++--- .../frontend-app-account_repo_health.yaml | 22 +- ...rontend-app-admin-console_repo_health.yaml | 21 +- ...frontend-app-admin-portal_repo_health.yaml | 25 +- .../frontend-app-aspects_repo_health.yaml | 91 ++- .../frontend-app-authn_repo_health.yaml | 20 +- .../frontend-app-authoring_repo_health.yaml | 49 +- .../frontend-app-catalog_repo_health.yaml | 9 +- ...ontend-app-communications_repo_health.yaml | 29 +- .../frontend-app-discussions_repo_health.yaml | 8 +- ...enterprise-public-catalog_repo_health.yaml | 9 +- .../frontend-app-gradebook_repo_health.yaml | 17 +- ...-app-instructor-dashboard_repo_health.yaml | 5 +- ...end-app-learner-dashboard_repo_health.yaml | 21 +- ...learner-portal-enterprise_repo_health.yaml | 34 +- ...ontend-app-learner-record_repo_health.yaml | 20 +- .../frontend-app-learning_repo_health.yaml | 12 +- .../frontend-app-ora-grading_repo_health.yaml | 9 +- .../openedx/frontend-app-ora_repo_health.yaml | 21 +- .../frontend-app-profile_repo_health.yaml | 21 +- .../frontend-base-compat_repo_health.yaml | 2 +- .../openedx/frontend-base_repo_health.yaml | 15 +- .../openedx/frontend-build_repo_health.yaml | 8 +- ...nent-cookie-policy-banner_repo_health.yaml | 2 +- ...frontend-component-footer_repo_health.yaml | 8 +- ...frontend-component-header_repo_health.yaml | 6 +- ...-tinymce-advanced-plugins_repo_health.yaml | 2 +- .../frontend-dev-utils_repo_health.yaml | 8 +- .../frontend-enterprise_repo_health.yaml | 8 +- ...rontend-lib-special-exams_repo_health.yaml | 8 +- .../frontend-platform_repo_health.yaml | 13 +- .../frontend-plugin-aspects_repo_health.yaml | 13 +- ...frontend-plugin-framework_repo_health.yaml | 15 +- ...tend-plugin-notifications_repo_health.yaml | 17 +- ...tend-template-application_repo_health.yaml | 15 +- .../frontend-template-site_repo_health.yaml | 2 +- .../openedx/help-tokens_repo_health.yaml | 83 +-- .../openedx/i18n-tools_repo_health.yaml | 43 +- .../openedx/license-manager_repo_health.yaml | 226 ++++--- .../openedx/mockprock_repo_health.yaml | 30 +- .../openedx/modular-learning_repo_health.yaml | 6 +- .../openedx/olxcleaner_repo_health.yaml | 65 +- .../openedx/opaque-keys_repo_health.yaml | 90 +-- .../openedx-ai-extensions_repo_health.yaml | 39 +- .../openedx-app-android_repo_health.yaml | 2 +- ...irebase-analytics-android_repo_health.yaml | 2 +- ...pp-firebase-analytics-ios_repo_health.yaml | 2 +- ...dx-app-foundation-android_repo_health.yaml | 2 +- ...penedx-app-foundation-ios_repo_health.yaml | 2 +- .../openedx/openedx-app-ios_repo_health.yaml | 19 +- .../openedx/openedx-app-test_repo_health.yaml | 2 +- .../openedx/openedx-aspects_repo_health.yaml | 29 +- .../openedx/openedx-atlas_repo_health.yaml | 16 +- .../openedx/openedx-authz_repo_health.yaml | 161 +++-- .../openedx-backstage_repo_health.yaml | 2 +- .../openedx/openedx-calc_repo_health.yaml | 48 +- .../openedx/openedx-chem_repo_health.yaml | 31 +- .../openedx/openedx-core_repo_health.yaml | 165 +++-- .../openedx-demo-course_repo_health.yaml | 13 +- .../openedx/openedx-events_repo_health.yaml | 123 ++-- .../openedx/openedx-filters_repo_health.yaml | 118 ++-- .../openedx-k8s-harmony_repo_health.yaml | 18 +- .../openedx/openedx-ledger_repo_health.yaml | 151 +++-- .../openedx/openedx-platform_repo_health.yaml | 608 +++++++++--------- .../openedx-proposals_repo_health.yaml | 59 +- .../openedx-translations_repo_health.yaml | 51 +- .../openedx-tutor-plugins_repo_health.yaml | 6 +- .../openedx-user-groups_repo_health.yaml | 65 +- ...nedx-webhooks-data-schema_repo_health.yaml | 47 +- .../openedx/openedx-webhooks_repo_health.yaml | 130 ++-- ...enedx-wordpress-ecommerce_repo_health.yaml | 47 +- .../openedx/paragon_repo_health.yaml | 31 +- .../platform-plugin-aspects_repo_health.yaml | 166 +++-- .../openedx/platform-roadmap_repo_health.yaml | 8 +- .../pr_watcher_configuration_repo_health.yaml | 8 +- .../pr_watcher_notifier_repo_health.yaml | 2 +- .../public-engineering_repo_health.yaml | 24 +- .../pytest-repo-health_repo_health.yaml | 98 +-- .../openedx/repo-tools_repo_health.yaml | 6 +- .../sample-aspects-dbt_repo_health.yaml | 2 +- .../openedx/sample-plugin_repo_health.yaml | 7 +- .../staff-graded-xblock_repo_health.yaml | 111 ++-- .../stylelint-config-edx_repo_health.yaml | 2 +- .../openedx/super-csv_repo_health.yaml | 140 ++-- .../taxonomy-connector_repo_health.yaml | 197 +++--- ...tinymce-language-selector_repo_health.yaml | 13 +- .../openedx/training-courses_repo_health.yaml | 2 +- ...or-contrib-aspects-sample_repo_health.yaml | 6 +- .../tutor-contrib-aspects_repo_health.yaml | 105 ++- ...ib-platform-notifications_repo_health.yaml | 6 +- .../typescript-config_repo_health.yaml | 6 +- .../openedx/web-fragments_repo_health.yaml | 88 +-- .../webhook-test-repo_repo_health.yaml | 2 +- .../wg-build-test-release_repo_health.yaml | 16 +- .../openedx/wg-data_repo_health.yaml | 2 +- .../openedx/wg-devops_repo_health.yaml | 2 +- .../openedx/wg-frontend_repo_health.yaml | 2 +- .../openedx/wg-governance_repo_health.yaml | 2 +- .../openedx/wg-maintenance_repo_health.yaml | 40 +- .../openedx/wg-marketing_repo_health.yaml | 2 +- .../openedx/wg-mobile_repo_health.yaml | 2 +- .../openedx/wg-security_repo_health.yaml | 2 +- .../openedx/wg-translations_repo_health.yaml | 2 +- .../openedx/xapi-db-load_repo_health.yaml | 116 ++-- .../xblock-drag-and-drop-v2_repo_health.yaml | 99 ++- ...xblock-free-text-response_repo_health.yaml | 64 +- .../xblock-google-drive_repo_health.yaml | 141 ++-- .../xblock-image-explorer_repo_health.yaml | 88 +-- .../xblock-in-video-quiz_repo_health.yaml | 71 +- .../xblock-lti-consumer_repo_health.yaml | 155 ++--- .../openedx/xblock-sdk_repo_health.yaml | 111 ++-- .../xblock-skill-tagging_repo_health.yaml | 128 ++-- .../openedx/xblocks-core_repo_health.yaml | 172 ++--- .../openedx/xblocks-extra_repo_health.yaml | 49 +- .../openedx/xqueue-watcher_repo_health.yaml | 2 +- .../openedx/xqueue_repo_health.yaml | 74 +-- .../openedx/xss-utils_repo_health.yaml | 56 +- 186 files changed, 6917 insertions(+), 6390 deletions(-) diff --git a/dashboards/dashboard_main.csv b/dashboards/dashboard_main.csv index c1ed6899..745a1fed 100644 --- a/dashboards/dashboard_main.csv +++ b/dashboards/dashboard_main.csv @@ -1,189 +1,189 @@ repo_name,ownership.theme,ownership.squad,ownership.priority,makefile.upgrade,TIMESTAMP,dependabot.exists,dependabot.has_ecosystem.github-actions,dependabot.has_ecosystem.npm,dependabot.has_ecosystem.pip,dependencies.count,dependencies.github.count,dependencies.github.list,dependencies.js.all.count,dependencies.js.all.list,dependencies.js.count,dependencies.js.dev.count,dependencies.js.dev.list,dependencies.js.list,dependencies.pypi.count,dependencies.pypi.list,dependencies.pypi_all.count,dependencies.pypi_all.list,django_packages.django_42.count,django_packages.django_42.list,django_packages.total.count,django_packages.total.list,django_packages.upgraded.count,django_packages.upgraded.list,docs.build_badge,docs.python_version,exists..coveragerc,exists..editorconfig,exists..gitignore,exists..pii_annotations.yml,exists..travis.yml,exists.CHANGELOG.rst,exists.Makefile,exists.README,exists.commitlint.yml,exists.dependabot.yml,exists.openedx.yaml,exists.package.json,exists.pylintrc,exists.requirements,exists.setup.cfg,exists.setup.py,exists.tox.ini,exists.transifex_config,github.allows_merge_commit,github.allows_rebase_merge,github.allows_squash_merge,github.branch_count,github.build_details,github.code_of_conduct,github.created_at,github.default_branch,github.description,github.disk_usage_kb,github.fork_count,github.has_issues,github.has_wiki,github.is_archived,github.is_disabled,github.is_fork,github.is_locked,github.is_private,github.last_push,github.license,github.pulls_count,github_actions,language_bytes.css,language_bytes.dockerfile,language_bytes.html,language_bytes.javascript,language_bytes.makefile,language_bytes.python,language_bytes.shell,makefile.pip-installed,makefile.quality,makefile.quality-js,makefile.quality-python,makefile.test,makefile.test-js,makefile.test-python,npm_package,org_name,pinned_python_dependencies,readme.bad_links,readme.getting-help,readme.good_links,readme.irc-missing,readme.mailing-list-missing,readme.security,readthedocs_config.exists,readthedocs_config.file_name,readthedocs_config.version,renovate.configured,renovate.last_pr,renovate.oldest_open_pr_date,renovate.total_open_prs,requires.boto,requires.django,requires.nose,requires.pytest,setup_py.project_urls,setup_py.py38_classifiers,setup_py.pypi_name,setup_py.python_versions,setup_py.repo_url,tox_ini.has_section.testenv,tox_ini.has_section.testenv:quality,tox_tox_section,tox_ini.uses_whitelist_externals,travis_ci.active,travis_ci.active_on_com,travis_ci.active_on_org,travis_yml.parsable,travis_yml.py38_tests,travis_yml.python_versions,ubuntu_packages.apt_get_packages,ubuntu_packages.docker_packages,ubuntu_packages.yml_files -openedx/public-engineering,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""1941 minutes 59 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2021-11-22 21:15:52,main,General public issue repository for the Open edX engineering community,16,4,True,False,False,False,False,False,False,2025-03-05 16:20:54,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-lib-special-exams,,,,False,2026-06-01,False,False,False,False,30,0,,0,{},8,22,"{""@edx/frontend-platform"": ""^8.3.0"", ""@openedx/frontend-build"": ""^14.3.3"", ""@openedx/paragon"": ""^23.3.0"", ""@reduxjs/toolkit"": ""^1.5.1"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""5.10.1"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""axios-mock-adapter"": ""1.18.2"", ""es-check"": ""5.1.4"", ""glob"": ""7.1.6"", ""husky"": ""3.1.0"", ""jest"": ""29.7.0"", ""prop-types"": ""^15.7.2"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-redux"": ""^7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""redux"": ""4.0.5"", ""rosie"": ""2.0.1"", ""semantic-release"": ""^20.1.3""}","{""@fortawesome/fontawesome-svg-core"": ""1.2.34"", ""@fortawesome/free-brands-svg-icons"": ""5.11.2"", ""@fortawesome/free-regular-svg-icons"": ""5.11.2"", ""@fortawesome/free-solid-svg-icons"": ""5.11.2"", ""@fortawesome/react-fontawesome"": ""0.1.14"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""babel-polyfill"": ""6.26.0"", ""eventemitter3"": ""^4.0.7""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,True,False,False,False,False,False,True,False,False,True,12,"{""total_duration"": ""2 minutes 12 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 12 seconds""}, {""name"": ""Release"", ""duration"": ""2 minutes 2 seconds""}]}",Other,2021-04-07 21:02:17,main,Frontend component library for displaying special exams on the edx platform,2966,25,True,False,False,False,False,False,False,2026-05-20 13:20:43,,3,True,0,0,0,426898,1750,0,0,False,False,False,False,False,False,False,@edx/frontend-lib-special-exams,openedx,0,['https://edx.github.io/frontend-platform/module-Internationalization.html: 404'],False,"['https://github.com/edx/frontend-lib-special-exams.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/edx/frontend-i18n/blob/master/docs/how_tos/i18n.rst', 'https://github.com/openedx/frontend-plugin-framework', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-lib-special-exams/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-build,,,,False,2026-06-01,False,False,False,False,73,0,,0,{},70,3,"{""@babel/preset-typescript"": ""^7.18.6"", ""@types/react"": ""^18.3.18"", ""@types/react-dom"": ""^18.3.5""}","{""@babel/cli"": ""^7.24.8"", ""@babel/core"": ""^7.24.9"", ""@babel/eslint-parser"": ""^7.28.6"", ""@babel/plugin-proposal-class-properties"": ""^7.18.6"", ""@babel/plugin-proposal-object-rest-spread"": ""^7.20.7"", ""@babel/plugin-syntax-dynamic-import"": ""^7.8.3"", ""@babel/preset-env"": ""^7.24.8"", ""@babel/preset-react"": ""^7.26.3"", ""@edx/eslint-config"": ""^4.3.0"", ""@edx/new-relic-source-map-webpack-plugin"": ""^2.1.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@formatjs/cli"": ""^6.0.3"", ""@fullhuman/postcss-purgecss"": ""^5.0.0"", ""@pmmmwh/react-refresh-webpack-plugin"": ""^0.5.15"", ""@svgr/webpack"": ""^8.1.0"", ""@types/jest"": ""^29.5.12"", ""@typescript-eslint/eslint-plugin"": ""^5.58.0"", ""@typescript-eslint/parser"": ""^5.58.0"", ""autoprefixer"": ""^10.4.27"", ""babel-jest"": ""^29.7.0"", ""babel-loader"": ""^9.2.1"", ""babel-plugin-formatjs"": ""^10.4.0"", ""babel-plugin-transform-imports"": ""^2.0.0"", ""babel-polyfill"": ""^6.26.0"", ""chalk"": ""^4.1.2"", ""clean-webpack-plugin"": ""^4.0.0"", ""css-loader"": ""^5.2.7"", ""cssnano"": ""^6.0.3"", ""dotenv"": ""^8.6.0"", ""dotenv-webpack"": ""^8.0.1"", ""eslint"": ""^8.57.1"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-config-airbnb-typescript"": ""^17.0.0"", ""eslint-import-resolver-typescript"": ""^4.2.1"", ""eslint-plugin-formatjs"": ""^4.12.2"", ""eslint-plugin-import"": ""^2.32.0"", ""eslint-plugin-jsx-a11y"": ""^6.10.2"", ""eslint-plugin-react"": ""^7.37.5"", ""eslint-plugin-react-hooks"": ""^4.6.2"", ""express"": ""^4.18.2"", ""file-loader"": ""^6.2.0"", ""html-webpack-plugin"": ""^5.6.3"", ""identity-obj-proxy"": ""^3.0.0"", ""image-minimizer-webpack-plugin"": ""^4.1.4"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""mini-css-extract-plugin"": ""^1.6.2"", ""parse5"": ""^7.1.2"", ""postcss"": ""^8.4.49"", ""postcss-custom-media"": ""^10.0.8"", ""postcss-loader"": ""^7.3.4"", ""postcss-rtlcss"": ""^5.7.1"", ""react-dev-utils"": ""^12.0.1"", ""react-refresh"": ""^0.16.0"", ""resolve-url-loader"": ""^5.0.0"", ""sass"": ""^1.85.1"", ""sass-loader"": ""^13.3.3"", ""sharp"": ""^0.34.3"", ""source-map-loader"": ""^4.0.2"", ""style-loader"": ""^3.3.4"", ""ts-jest"": ""^29.1.4"", ""tsconfig-paths-webpack-plugin"": ""^4.2.0"", ""typescript"": ""^4.9.5"", ""url-loader"": ""^4.1.1"", ""webpack"": ""^5.97.1"", ""webpack-bundle-analyzer"": ""^4.10.1"", ""webpack-cli"": ""^5.1.4"", ""webpack-dev-server"": ""^4.15.1"", ""webpack-merge"": ""^5.10.0"", ""webpack-remove-empty-scripts"": ""^1.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,True,True,False,False,False,False,False,False,True,True,True,32,"{""total_duration"": ""2 minutes 0 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 0 seconds""}, {""name"": ""Release"", ""duration"": ""1 minutes 45 seconds""}, {""name"": ""Syncing branches"", ""duration"": ""0 minutes 15 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2019-09-23 13:41:45,master,Common build scripts and tooling for Open edX micro-frontends.,17128,40,True,False,False,False,False,False,False,2026-05-20 13:13:27,GNU AGPLv3,11,True,0,0,224,84076,0,0,267,False,False,False,False,False,False,False,,openedx,0,['https://travis-ci.com/edx/frontend-build: 404'],False,"['https://api.travis-ci.com/edx/frontend-build.svg?branch=master', 'https://img.shields.io/npm/v/@openedx/frontend-build.svg', 'https://img.shields.io/codecov/c/github/edx/frontend-build', 'https://codecov.io/gh/edx/frontend-build', 'https://img.shields.io/npm/l/@openedx/frontend-build.svg', 'https://github.com/edx-unsupported/frontend-base/blob/master/LICENSE', 'https://github.com/openedx/frontend-build.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/devstack/tree/master/docs/decisions/0005-frontend-package-mounts.rst', 'https://webpack.js.org/configuration/resolve/', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://github.com/openedx/frontend-build/issues', 'https://openedx.org/community/connect', 'https://developer.chrome.com/docs/lighthouse/overview/', 'https://github.com/openedx/wg-frontend/issues/138']",True,True,False,False,,,True,2026-03-27,2026-01-31,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-ora2,,,,True,2026-06-01,True,True,False,False,208,0,[],0,{},14,27,"{""@babel/polyfill"": ""^7.12.1"", ""@testing-library/react"": ""^12.1.2"", ""dotenv-expand"": ""^5.1.0"", ""dotenvi"": ""^0.9.1"", ""eslint-config-google"": ""^0.14.0"", ""fetch-mock"": ""^9.11.0"", ""jasmine"": ""4.6.0"", ""jasmine-core"": ""4.6.0"", ""jshint"": ""^2.13.1"", ""karma"": ""^6.3.9"", ""karma-chrome-launcher"": ""^2.2.0"", ""karma-coverage"": ""^2.1.0"", ""karma-firefox-launcher"": ""^2.1.3"", ""karma-jasmine"": ""4.0.0"", ""karma-jasmine-html-reporter"": ""~0.2"", ""karma-jasmine-jquery"": ""git+https://github.com/nkoder/karma-jasmine-jquery.git#be1566e6a069c867812b3845a46c9c6ca73b1e9f"", ""karma-phantomjs-launcher"": ""^1.0.4"", ""karma-sinon"": ""^1.0.5"", ""karma-spec-reporter"": ""^0.0.31"", ""karma-webpack"": ""^4.0.2"", ""phantomjs-prebuilt"": ""^2.1.14"", ""postcss-loader"": ""4.2.0"", ""sinon"": ""^7.5.0"", ""webpack"": ""^4.46.0"", ""webpack-cli"": ""^4.10.0"", ""webpack-dev-server"": ""^4.15.1"", ""webpack-manifest-plugin"": ""^4.0.2""}","{""@edx/frontend-build"": ""8.0.6"", ""@openedx/paragon"": ""^21.5.7"", ""backbone"": ""1.2.3"", ""backgrid"": ""~0.3.8"", ""dotenv-webpack"": ""^7.0.3"", ""edx-ui-toolkit"": ""^1.5.4"", ""moment"": ""^2.29.1"", ""moment-timezone"": ""^0.5.34"", ""prop-types"": ""^15.7.2"", ""react"": ""^17.0.2"", ""react-dom"": ""^17.0.2"", ""react-intl"": ""^5.25.1"", ""requirejs"": ""^2.3.6"", ""underscore"": ""1.13.2""}",67,"[""asgiref==3.11.1"", ""attrs==26.1.0"", ""edx-toggles==6.0.0"", ""django-model-utils==5.0.0"", ""lxml[html-clean]==6.1.0"", ""mako==1.3.12"", ""pymongo==4.17.0"", ""python-swiftclient==4.10.0"", ""jsonfield==3.2.0"", ""webob==1.8.9"", ""edx-submissions==4.0.0"", ""path-py==12.5.0"", ""django==5.2.14"", ""six==1.17.0"", ""cffi==2.0.0"", ""edx-django-release-util==1.5.0"", ""charset-normalizer==3.4.7"", ""edx-i18n-tools==2.0.0"", ""openedx-filters==3.4.0"", ""pycparser==3.0"", ""setuptools==82.0.1"", ""botocore==1.43.9"", ""stevedore==5.8.0"", ""bleach==6.3.0"", ""text-unidecode==1.3"", ""certifi==2026.4.22"", ""django-simple-history==3.11.0"", ""fastavro==1.12.2"", ""psutil==7.2.2"", ""jmespath==1.1.0"", ""typing-extensions==4.15.0"", ""xblock==6.1.0"", ""webencodings==0.5.1"", ""djangorestframework==3.17.1"", ""lxml-html-clean==0.4.4"", ""openedx-events==11.2.0"", ""edx-ccx-keys==2.0.2"", ""pytz==2026.2"", ""pyyaml==6.0.3"", ""polib==1.2.0"", ""django-waffle==5.0.0"", ""web-fragments==4.0.0"", ""requests==2.34.2"", ""edx-opaque-keys[django]==4.0.0"", ""idna==3.15"", ""fs==2.4.16"", ""django-crum==0.7.9"", ""path==16.16.0"", ""pynacl==1.6.2"", ""code-annotations==3.0.0"", ""edx-django-utils==8.0.1"", ""simplejson==4.1.1"", ""voluptuous==0.16.0"", ""s3transfer==0.17.0"", ""markupsafe==3.0.3"", ""dnspython==2.8.0"", ""appdirs==1.4.4"", ""defusedxml==0.7.1"", ""html5lib==1.1"", ""lazy==1.6"", ""python-dateutil==2.9.0.post0"", ""sqlparse==0.5.5"", ""python-slugify==8.0.4"", ""urllib3==2.7.0"", ""click==8.4.0"", ""boto3==1.43.9"", ""jinja2==3.1.6""]",167,"[""asgiref==3.11.1"", ""shellingham==1.5.4"", ""django-model-utils==5.0.0"", ""pylint-plugin-utils==0.9.0"", ""build==1.5.0"", ""pyproject-hooks==1.2.0"", ""edx-submissions==4.0.0"", ""path-py==12.5.0"", ""sphinx-copybutton==0.5.2"", ""edx-django-release-util==1.5.0"", ""sphinx-book-theme==1.2.0"", ""charset-normalizer==3.4.7"", ""platformdirs==4.9.6"", ""edx-i18n-tools==2.0.0"", ""edx-lint==6.1.0"", ""sphinx-autobuild==2025.8.25"", ""kombu==5.6.2"", ""botocore==1.43.9"", ""bleach==6.3.0"", ""text-unidecode==1.3"", ""ddt==1.0.0"", ""babel==2.18.0"", ""webencodings==0.5.1"", ""wcwidth==0.7.0"", ""lxml-html-clean==0.4.4"", ""pluggy==1.6.0"", ""edx-ccx-keys==2.0.2"", ""arrow==1.4.0"", ""cachetools==7.1.2"", ""pip-tools==7.5.3"", ""coverage[toml]==7.14.0"", ""alabaster==1.0.0"", ""xblock-sdk==0.14.0"", ""idna==3.15"", ""edx-django-utils==8.0.1"", ""dill==0.4.1"", ""docutils==0.22.4"", ""s3transfer==0.17.0"", ""lazy==1.6"", ""defusedxml==0.7.1"", ""sqlparse==0.5.5"", ""urllib3==2.7.0"", ""click==8.4.0"", ""boto3==1.43.9"", ""pytest-django==4.12.0"", ""python-discovery==1.3.1"", ""jinja2==3.1.6"", ""roman-numerals==4.1.0"", ""attrs==26.1.0"", ""lxml[html-clean]==6.1.0"", ""amqp==5.3.1"", ""mako==1.3.12"", ""typer==0.25.1"", ""more-itertools==11.0.2"", ""pip==26.1.1"", ""accessible-pygments==0.0.5"", ""setuptools==82.0.1"", ""pycparser==3.0"", ""virtualenv==21.3.3"", ""packaging==26.2"", ""binaryornot==0.6.0"", ""stevedore==5.8.0"", ""tzlocal==5.3.1"", ""django-simple-history==3.11.0"", ""jmespath==1.1.0"", ""pycodestyle==2.14.0"", ""xblock==6.1.0"", ""websockets==16.0"", ""djangorestframework==3.17.1"", ""billiard==4.2.4"", ""mdurl==0.1.2"", ""click-repl==0.3.0"", ""annotated-doc==0.0.4"", ""pylint==3.3.9"", ""pyyaml==6.0.3"", ""responses==0.26.0"", ""factory-boy==3.3.3"", ""sphinxcontrib-applehelp==2.0.0"", ""pylint-django==2.5.5"", ""polib==1.2.0"", ""django-waffle==5.0.0"", ""cookiecutter==2.7.1"", ""pypng==0.20220715.0"", ""click-didyoumean==0.3.1"", ""fs-s3fs==1.1.1"", ""beautifulsoup4==4.14.3"", ""path==16.16.0"", ""soupsieve==2.8.3"", ""voluptuous==0.16.0"", ""markdown-it-py==4.2.0"", ""celery==5.6.3"", ""html5lib==1.1"", ""wheel==0.47.0"", ""python-slugify==8.0.4"", ""sphinxcontrib-devhelp==2.0.0"", ""edx-toggles==6.0.0"", ""webob==1.8.9"", ""distlib==0.4.0"", ""pymongo==4.17.0"", ""colorama==0.4.6"", ""python-swiftclient==4.10.0"", ""werkzeug==3.1.8"", ""tox==4.54.0"", ""cffi==2.0.0"", ""anyio==4.13.0"", ""prompt-toolkit==3.0.52"", ""mock==5.2.0"", ""openedx-filters==3.4.0"", ""imagesize==2.0.0"", ""coveralls==4.1.0"", ""watchfiles==1.2.0"", ""fastavro==1.12.2"", ""pyinstrument==5.1.2"", ""typing-extensions==4.15.0"", ""testfixtures==11.0.0"", ""tomlkit==0.15.0"", ""pytest-cov==7.1.0"", ""pytest==9.0.3"", ""uvicorn==0.47.0"", ""moto==4.2.14"", ""requests==2.34.2"", ""fs==2.4.16"", ""pynacl==1.6.2"", ""pylint-celery==0.3"", ""code-annotations==3.0.0"", ""iniconfig==2.3.0"", ""h11==0.16.0"", ""simplejson==4.1.1"", ""snowballstemmer==3.0.1"", ""dnspython==2.8.0"", ""appdirs==1.4.4"", ""pydata-sphinx-theme==0.16.1"", ""vine==5.1.0"", ""openedx-events==11.2.0"", ""tomli-w==1.2.0"", ""pyproject-api==1.10.0"", ""filelock==3.29.0"", ""xmltodict==1.0.4"", ""jsonfield==3.2.0"", ""astroid==3.3.11"", ""six==1.17.0"", ""django==5.2.14"", ""click-plugins==1.1.1.2"", ""sphinx==9.1.0"", ""sphinxcontrib-mermaid==2.0.2"", ""certifi==2026.4.22"", ""sphinxcontrib-jsmath==1.0.1"", ""psutil==7.2.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""starlette==1.0.0"", ""isort==6.1.0"", ""rich==15.0.0"", ""cryptography==48.0.0"", ""pytz==2026.2"", ""freezegun==0.3.14"", ""pygments==2.20.0"", ""web-fragments==4.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""tzdata==2026.2"", ""django-crum==0.7.9"", ""mccabe==0.7.0"", ""faker==40.18.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-qthelp==2.0.0"", ""python-dateutil==2.9.0.post0"", ""click-log==0.4.0"", ""sphinxcontrib-serializinghtml==2.0.0""]",14,"[""web-fragments"", ""edx-submissions"", ""djangorestframework"", ""code-annotations"", ""edx-django-utils"", ""edx-i18n-tools"", ""factory-boy"", ""edx-django-release-util"", ""pytest-django"", ""xblock"", ""django-waffle"", ""xblock-sdk"", ""edx-toggles"", ""pylint-django""]",18,"[""web-fragments"", ""edx-submissions"", ""djangorestframework"", ""code-annotations"", ""edx-django-utils"", ""edx-i18n-tools"", ""django-simple-history"", ""factory-boy"", ""jsonfield"", ""edx-django-release-util"", ""pytest-django"", ""django-model-utils"", ""django-crum"", ""xblock"", ""django-waffle"", ""xblock-sdk"", ""edx-toggles"", ""pylint-django""]",10,"[""web-fragments"", ""edx-submissions"", ""code-annotations"", ""edx-django-utils"", ""edx-i18n-tools"", ""edx-django-release-util"", ""xblock"", ""django-waffle"", ""xblock-sdk"", ""edx-toggles""]",False,,True,False,True,False,False,False,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,159,"{""total_duration"": ""1495 minutes 35 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, js)"", ""duration"": ""7 minutes 17 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""3 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""3 minutes 21 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""2 minutes 44 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 34 seconds""}]}",Other,2013-12-23 20:54:54,master,Open Response Assessment Suite,162973,215,True,False,False,False,False,False,False,2026-05-27 00:35:50,GNU AGPLv3,61,True,5382,0,238118,687718,7611,2287759,4574,False,True,False,False,True,True,True,,openedx,7,['https://open.edx.org/getting-help: 403'],True,"['https://github.com/openedx/edx-platform', 'https://docs.openedx.org/en/latest/educators/concepts/exercise_tools/about_OpenResponseAssessments.html', 'https://openedx.atlassian.net/wiki/spaces/EDUCATOR/pages/9765004/ORA+Developer+Guide', 'https://github.com/openedx/devstack', 'https://github.com/openedx/edx-ora2/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-ora2/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/edx/edx-ora2/badge.png?branch=master', 'https://coveralls.io/r/edx/edx-ora2?branch=master']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,ora2,"['3', '3.12']",http://github.com/openedx/edx-ora2,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-plugin-framework,,,,False,2026-06-01,True,True,False,False,21,0,,0,{},5,16,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/frontend-platform"": ""^8.3.0"", ""@openedx/frontend-build"": ""^14.3.1"", ""@openedx/paragon"": ""^23.3.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^6.1.4"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""glob"": ""7.2.3"", ""husky"": ""7.0.4"", ""jest"": ""29.7.0"", ""prop-types"": ""^15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.0.13"", ""semantic-release"": ""^22.0.12""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""classnames"": ""^2.3.2"", ""core-js"": ""3.37.1"", ""react-redux"": ""8.1.1"", ""redux"": ""4.2.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,True,True,True,True,21,"{""total_duration"": ""16537 minutes 41 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 53 seconds""}, {""name"": ""test"", ""duration"": ""1 minutes 41 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2023-11-02 19:50:48,master,An experimental framework for micro-frontend plugins.,1334,27,True,False,False,False,False,False,False,2026-05-28 19:10:23,GNU AGPLv3,12,True,0,0,1175,99350,2240,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/frontend-platform/blob/master/src/config.js: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-framework: 404']",True,"['https://img.shields.io/github/license/openedx/frontend-plugin-framework.svg', 'https://github.com/openedx/frontend-plugin-framework/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-plugin-framework/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-plugin-framework?branch=master', 'https://github.com/openedx/frontend-platform/blob/master/docs/decisions/0007-javascript-file-configuration.rst', 'https://github.com/openedx/frontend-platform/blob/master/src/react/ErrorBoundary.jsx', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-plugin-framework/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2025-11-24,2024-05-20,10,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/event-bus-redis,,,,True,2026-06-01,True,True,False,False,115,0,[],0,,0,0,,,30,"[""python-slugify==8.0.4"", ""code-annotations==3.0.0"", ""edx-ccx-keys==2.0.2"", ""walrus==0.9.8"", ""django-waffle==5.0.0"", ""pycparser==3.0"", ""stevedore==5.8.0"", ""attrs==26.1.0"", ""fastavro==1.12.2"", ""pymongo==4.17.0"", ""click==8.4.1"", ""markupsafe==3.0.3"", ""edx-django-utils==8.0.1"", ""openedx-events==11.2.0"", ""pyyaml==6.0.3"", ""text-unidecode==1.3"", ""asgiref==3.11.1"", ""jinja2==3.1.6"", ""redis==7.4.0"", ""pynacl==1.6.2"", ""dnspython==2.8.0"", ""psutil==7.2.2"", ""sqlparse==0.5.5"", ""edx-toggles==6.0.0"", ""cffi==2.0.0"", ""django==5.2.14"", ""six==1.17.0"", ""typing-extensions==4.15.0"", ""edx-opaque-keys[django]==4.0.0"", ""django-crum==0.7.9""]",115,"[""code-annotations==3.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""coverage[toml]==7.14.0"", ""django-waffle==5.0.0"", ""pycparser==3.0"", ""stevedore==5.8.0"", ""attrs==26.1.0"", ""pycodestyle==2.14.0"", ""tomlkit==0.15.0"", ""markupsafe==3.0.3"", ""python-discovery==1.3.1"", ""sphinxcontrib-jsmath==1.0.1"", ""requests==2.34.2"", ""babel==2.18.0"", ""more-itertools==11.1.0"", ""build==1.5.0"", ""pip==26.1.1"", ""astroid==4.0.4"", ""pylint-django==2.7.0"", ""accessible-pygments==0.0.5"", ""idna==3.16"", ""psutil==7.2.2"", ""sqlparse==0.5.5"", ""snowballstemmer==3.1.0"", ""cffi==2.0.0"", ""alabaster==1.0.0"", ""soupsieve==2.8.4"", ""tomli-w==1.2.0"", ""id==1.6.1"", ""edx-ccx-keys==2.0.2"", ""walrus==0.9.8"", ""mccabe==0.7.0"", ""iniconfig==2.3.0"", ""pytest-cov==7.1.0"", ""certifi==2026.5.20"", ""ddt==1.7.2"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""urllib3==2.7.0"", ""packaging==26.2"", ""pymongo==4.17.0"", ""cryptography==48.0.0"", ""tox==4.54.0"", ""edx-django-utils==8.0.1"", ""pyyaml==6.0.3"", ""pluggy==1.6.0"", ""virtualenv==21.3.3"", ""text-unidecode==1.3"", ""polib==1.2.0"", ""jaraco-context==6.1.2"", ""jaraco-classes==3.4.0"", ""jinja2==3.1.6"", ""markdown-it-py==4.2.0"", ""readme-renderer==44.0"", ""redis==7.4.0"", ""wheel==0.47.0"", ""pynacl==1.6.2"", ""docutils==0.22.4"", ""dnspython==2.8.0"", ""platformdirs==4.9.6"", ""beautifulsoup4==4.14.3"", ""keyring==25.7.0"", ""pydocstyle==6.3.0"", ""jeepney==0.9.0"", ""pytest-django==4.12.0"", ""pytest==9.0.3"", ""pylint==4.0.5"", ""django-crum==0.7.9"", ""sphinxcontrib-htmlhelp==2.1.0"", ""rich==15.0.0"", ""pip-tools==7.5.3"", ""cachetools==7.1.4"", ""click-log==0.4.0"", ""lxml[html-clean]==6.1.1"", ""fastavro==1.12.2"", ""click==8.4.1"", ""requests-toolbelt==1.0.0"", ""roman-numerals==4.1.0"", ""nh3==0.3.5"", ""filelock==3.29.0"", ""asgiref==3.11.1"", ""sphinx==9.1.0"", ""mdurl==0.1.2"", ""twine==6.2.0"", ""pyproject-api==1.10.0"", ""django==5.2.14"", ""sphinx-book-theme==1.2.0"", ""typing-extensions==4.15.0"", ""path==16.16.0"", ""charset-normalizer==3.4.7"", ""python-slugify==8.0.4"", ""secretstorage==3.5.0"", ""pylint-plugin-utils==0.9.0"", ""dill==0.4.1"", ""pygments==2.20.0"", ""imagesize==2.0.0"", ""distlib==0.4.0"", ""jaraco-functools==4.5.0"", ""pylint-celery==0.3"", ""lxml-html-clean==0.4.5"", ""isort==8.0.1"", ""openedx-events==11.2.0"", ""diff-cover==10.2.1"", ""rfc3986==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""chardet==7.4.3"", ""edx-i18n-tools==2.0.0"", ""edx-lint==6.1.0"", ""edx-toggles==6.0.0"", ""setuptools==82.0.1"", ""six==1.17.0"", ""edx-opaque-keys[django]==4.0.0"", ""colorama==0.4.6""]",7,"[""django-waffle"", ""edx-toggles"", ""edx-django-utils"", ""pytest-django"", ""edx-i18n-tools"", ""code-annotations"", ""pylint-django""]",8,"[""django-waffle"", ""edx-toggles"", ""edx-django-utils"", ""django-crum"", ""pytest-django"", ""edx-i18n-tools"", ""code-annotations"", ""pylint-django""]",5,"[""django-waffle"", ""edx-toggles"", ""edx-django-utils"", ""edx-i18n-tools"", ""code-annotations""]",True,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,12,"{""total_duration"": ""9808 minutes 49 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 10 seconds""}, {""name"": ""tests (3.12, docs)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (3.12, django42)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (3.12, django52)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (3.12, pii_check)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2023-02-22 16:22:16,main,Redis Streams implementation for the Open edX event bus.,578,11,True,False,False,False,False,False,False,2026-06-01 03:21:12,GNU AGPLv3,2,True,0,0,0,0,6984,91972,0,True,True,False,False,True,False,False,,openedx,0,"['https://docs.openedx.org/projects/event-bus-redis: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/event-bus-redis: 404', 'https://event-bus-redis.readthedocs.io/en/latest/: 404']",True,"['https://redis.readthedocs.io/en/stable/examples/ssl_connection_examples.html', 'https://github.com/openedx/openedx-events/blob/06635f3642cee4020d6787df68bba694bd1233fe/openedx_events/event_bus/__init__.py', 'https://redis.io/commands/xread/', 'https://openedx.atlassian.net/wiki/spaces/AC/pages/3508699151/How+to+start+using+the+Event+Bus', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/event-bus-redis/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/edx-event-bus-redis.svg', 'https://pypi.python.org/pypi/edx-event-bus-redis/', 'https://github.com/openedx/event-bus-redis/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/event-bus-redis/actions', 'https://codecov.io/github/openedx/event-bus-redis/coverage.svg?branch=main', 'https://codecov.io/github/openedx/event-bus-redis?branch=main', 'https://readthedocs.org/projects/edx-event-bus-redis/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-event-bus-redis.svg', 'https://pypi.python.org/pypi/event-bus-redis/', 'https://img.shields.io/github/license/openedx/event-bus-redis.svg', 'https://github.com/openedx/event-bus-redis/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx_event_bus_redis,"['3', '3.12']",https://github.com/openedx/event-bus-redis,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-when,,,,True,2026-06-01,False,False,False,False,134,0,[],0,,0,0,,,41,"[""simplejson==3.20.2"", ""drf-jwt==1.19.2"", ""django==5.2.13"", ""cryptography==46.0.6"", ""django-crum==0.7.9"", ""markupsafe==3.0.3"", ""pyjwt[crypto]==2.12.1"", ""dnspython==2.8.0"", ""edx-opaque-keys==4.0.0"", ""pycparser==3.0"", ""djangorestframework==3.17.1"", ""six==1.17.0"", ""typing-extensions==4.15.0"", ""charset-normalizer==3.4.7"", ""edx-django-utils==8.0.1"", ""pytz==2026.1.post1"", ""django-waffle==5.0.0"", ""psutil==7.2.2"", ""pymongo==4.16.0"", ""click==8.3.2"", ""django-model-utils==5.0.0"", ""requests==2.33.1"", ""certifi==2026.2.25"", ""lxml==6.0.2"", ""appdirs==1.4.4"", ""web-fragments==4.0.0"", ""fs==2.4.16"", ""python-dateutil==2.9.0.post0"", ""asgiref==3.11.1"", ""xblock==6.0.0"", ""stevedore==5.7.0"", ""sqlparse==0.5.5"", ""semantic-version==2.10.0"", ""idna==3.11"", ""cffi==2.0.0"", ""edx-drf-extensions==10.6.0"", ""pynacl==1.6.2"", ""webob==1.8.9"", ""mako==1.3.10"", ""pyyaml==6.0.3"", ""urllib3==2.6.3""]",134,"[""simplejson==3.20.2"", ""pluggy==1.6.0"", ""snowballstemmer==3.0.1"", ""sphinxcontrib-devhelp==2.0.0"", ""pyproject-api==1.10.0"", ""sphinxcontrib-qthelp==2.0.0"", ""django-crum==0.7.9"", ""wheel==0.46.3"", ""edx-opaque-keys==4.0.0"", ""requests-toolbelt==1.0.0"", ""pycparser==3.0"", ""djangorestframework==3.17.1"", ""path-py==11.5.0"", ""imagesize==2.0.0"", ""pylint-django==2.7.0"", ""django-model-utils==5.0.0"", ""soupsieve==2.8.3"", ""python-slugify==8.0.4"", ""lxml==6.0.2"", ""mdurl==0.1.2"", ""cachetools==7.0.5"", ""python-dateutil==2.9.0.post0"", ""asgiref==3.11.1"", ""stevedore==5.7.0"", ""packaging==26.0"", ""tox==4.52.0"", ""virtualenv==21.2.0"", ""platformdirs==4.9.4"", ""secretstorage==3.5.0"", ""pylint==4.0.5"", ""lxml-html-clean==0.4.4"", ""mako==1.3.10"", ""id==1.6.1"", ""markdown-it-py==4.0.0"", ""restructuredtext-lint==2.0.2"", ""coverage==7.13.5"", ""rich==14.3.3"", ""pydata-sphinx-theme==0.16.1"", ""drf-jwt==1.19.2"", ""keyring==25.7.0"", ""setuptools==69.5.1"", ""cryptography==46.0.6"", ""mccabe==0.7.0"", ""colorama==0.4.6"", ""pylint-celery==0.3"", ""astroid==4.0.4"", ""ddt==1.7.2"", ""pytest-django==4.12.0"", ""rfc3986==2.0.0"", ""jeepney==0.9.0"", ""lxml[html-clean]==6.0.2"", ""pyproject-hooks==1.2.0"", ""sphinx-book-theme==1.2.0"", ""babel==2.18.0"", ""pylint-plugin-utils==0.9.0"", ""psutil==7.2.2"", ""click==8.3.2"", ""roman-numerals==4.1.0"", ""requests==2.33.1"", ""more-itertools==11.0.1"", ""iniconfig==2.3.0"", ""appdirs==1.4.4"", ""pydocstyle==6.3.0"", ""jinja2==3.1.6"", ""pytest==9.0.2"", ""text-unidecode==1.3"", ""filelock==3.25.2"", ""idna==3.11"", ""alabaster==1.0.0"", ""nh3==0.3.4"", ""edx-drf-extensions==10.6.0"", ""pynacl==1.6.2"", ""jaraco-context==6.1.2"", ""codecov==2.1.13"", ""urllib3==2.6.3"", ""tomli-w==1.2.0"", ""sphinxcontrib-jsmath==1.0.1"", ""markupsafe==3.0.3"", ""pyjwt[crypto]==2.12.1"", ""distlib==0.4.0"", ""zipp==3.23.0"", ""inflect==7.5.0"", ""coverage[toml]==7.13.5"", ""typing-extensions==4.15.0"", ""charset-normalizer==3.4.7"", ""pytz==2026.1.post1"", ""django-waffle==5.0.0"", ""pycodestyle==2.14.0"", ""build==1.4.2"", ""tomlkit==0.14.0"", ""edx-lint==6.0.0"", ""doc8==2.0.0"", ""sqlparse==0.5.5"", ""semantic-version==2.10.0"", ""accessible-pygments==0.0.5"", ""webob==1.8.9"", ""twine==6.2.0"", ""pip==26.0.1"", ""diff-cover==4.0.0"", ""path==16.16.0"", ""polib==1.2.0"", ""pip-tools==7.5.3"", ""sphinxcontrib-applehelp==2.0.0"", ""django==5.2.13"", ""docutils==0.21.2"", ""python-discovery==1.2.1"", ""beautifulsoup4==4.14.3"", ""dnspython==2.8.0"", ""pytest-cov==7.1.0"", ""six==1.17.0"", ""importlib-metadata==9.0.0"", ""typeguard==4.5.1"", ""jinja2-pluralize==0.3.0"", ""edx-i18n-tools==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-django-utils==8.0.1"", ""pymongo==4.16.0"", ""dill==0.4.1"", ""jaraco-functools==4.4.0"", ""isort==8.0.1"", ""pygments==2.20.0"", ""certifi==2026.2.25"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinx==9.1.0"", ""click-log==0.4.0"", ""web-fragments==4.0.0"", ""fs==2.4.16"", ""code-annotations==3.0.0"", ""xblock==6.0.0"", ""cffi==2.0.0"", ""mock==5.2.0"", ""readme-renderer==44.0"", ""pyyaml==6.0.3"", ""jaraco-classes==3.4.0""]",11,"[""edx-django-utils"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""djangorestframework"", ""web-fragments"", ""xblock"", ""pylint-django"", ""pytest-django"", ""django-waffle"", ""code-annotations""]",14,"[""edx-django-utils"", ""edx-opaque-keys"", ""django-model-utils"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""djangorestframework"", ""web-fragments"", ""django-crum"", ""drf-jwt"", ""xblock"", ""pylint-django"", ""pytest-django"", ""django-waffle"", ""code-annotations""]",8,"[""edx-django-utils"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""web-fragments"", ""xblock"", ""django-waffle"", ""code-annotations""]",True,,True,False,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,True,True,True,True,24,"{""total_duration"": ""1 minutes 35 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42, mysql)"", ""duration"": ""1 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality, postgres)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42, postgres)"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52, postgres)"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality, mysql)"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs, postgres)"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs, mysql)"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check, postgres)"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52, mysql)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check, mysql)"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 59 seconds""}]}",Other,2019-03-07 18:43:09,master,,497,14,True,False,False,False,False,False,False,2026-05-30 15:21:03,GNU AGPLv3,9,True,0,0,662,0,4637,105414,0,True,True,False,False,True,False,False,,openedx,5,['http://edx-when.readthedocs.io/en/latest/: 404'],True,"['https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/course_date_signals/handlers.py', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-when/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-when/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-when.svg', 'https://pypi.python.org/pypi/edx-when/', 'https://github.com/openedx/edx-when/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-when/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-when/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-when?branch=master', 'https://readthedocs.org/projects/edx-when/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-when.svg', 'https://img.shields.io/github/license/edx/edx-when.svg', 'https://github.com/openedx/edx-when/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-when,"['3', '3.12']",https://github.com/openedx/edx-when,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/event-routing-backends,,,,True,2026-06-01,True,True,False,False,147,0,[],0,,0,0,,,64,"[""django-fernet-fields-v2==0.9"", ""pynacl==1.6.2"", ""edx-django-utils==8.0.1"", ""click==8.4.1"", ""django-model-utils==5.0.0"", ""django-crum==0.7.9"", ""amqp==5.3.1"", ""python-dateutil==2.9.0.post0"", ""tzdata==2026.2"", ""certifi==2026.5.20"", ""pyyaml==6.0.3"", ""click-didyoumean==0.3.1"", ""aniso8601==10.0.1"", ""djangorestframework==3.17.1"", ""six==1.17.0"", ""billiard==4.2.4"", ""openedx-events==11.2.0"", ""openedx-filters==3.4.0"", ""fasteners==0.20"", ""tzlocal==5.3.1"", ""urllib3==2.7.0"", ""packaging==26.2"", ""python-slugify==8.0.4"", ""tincan==1.0.0"", ""jinja2==3.1.6"", ""vine==5.1.0"", ""edx-ccx-keys==2.0.2"", ""psutil==7.2.2"", ""dnspython==2.8.0"", ""kombu==5.6.2"", ""charset-normalizer==3.4.7"", ""sqlparse==0.5.5"", ""django-waffle==5.0.0"", ""markupsafe==3.0.3"", ""click-repl==0.3.0"", ""attrs==26.1.0"", ""edx-celeryutils==2.0.0"", ""requests==2.34.2"", ""edx-opaque-keys[django]==4.0.0"", ""click-plugins==1.1.1.2"", ""pymongo==4.17.0"", ""django-config-models==3.0.0"", ""pytz==2026.2"", ""celery==5.6.3"", ""text-unidecode==1.3"", ""asgiref==3.11.1"", ""jsonfield==3.2.0"", ""cryptography==48.0.0"", ""idna==3.16"", ""typing-extensions==4.15.0"", ""event-tracking==4.0.0"", ""isodate==0.7.2"", ""cffi==2.0.0"", ""stevedore==5.8.0"", ""wcwidth==0.7.0"", ""code-annotations==3.0.0"", ""prompt-toolkit==3.0.52"", ""redis==7.4.0"", ""django==5.2.14"", ""apache-libcloud==3.9.1"", ""fastavro==1.12.2"", ""pycparser==3.0"", ""edx-toggles==6.0.0"", ""django-redis==6.0.0""]",147,"[""pluggy==1.6.0"", ""python-dateutil==2.9.0.post0"", ""django-crum==0.7.9"", ""tzdata==2026.2"", ""astroid==4.0.4"", ""polib==1.2.0"", ""tox==4.54.0"", ""factory-boy==3.3.3"", ""six==1.17.0"", ""platformdirs==4.9.6"", ""pylint-django==2.7.0"", ""python-slugify==8.0.4"", ""tincan==1.0.0"", ""sphinx-book-theme==1.2.0"", ""doc8==2.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tomli-w==1.2.0"", ""soupsieve==2.8.4"", ""accessible-pygments==0.0.5"", ""edx-i18n-tools==2.0.0"", ""keyring==25.7.0"", ""faker==40.19.1"", ""mock==5.2.0"", ""wcwidth==0.7.0"", ""babel==2.18.0"", ""redis==7.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pylint-celery==0.3"", ""iniconfig==2.3.0"", ""requests==2.34.2"", ""dill==0.4.1"", ""build==1.5.0"", ""wheel==0.47.0"", ""edx-django-utils==8.0.1"", ""rfc3986==2.0.0"", ""markdown-it-py==4.2.0"", ""certifi==2026.5.20"", ""click-didyoumean==0.3.1"", ""jaraco-classes==3.4.0"", ""sphinxcontrib-applehelp==2.0.0"", ""billiard==4.2.4"", ""openedx-filters==3.4.0"", ""pyproject-api==1.10.0"", ""fasteners==0.20"", ""sphinx==9.1.0"", ""tzlocal==5.3.1"", ""pylint-plugin-utils==0.9.0"", ""docutils==0.21.2"", ""colorama==0.4.6"", ""pip-tools==7.5.3"", ""jinja2==3.1.6"", ""edx-ccx-keys==2.0.2"", ""pygments==2.20.0"", ""pylint==4.0.5"", ""django-waffle==5.0.0"", ""django-config-models==3.0.0"", ""lxml-html-clean==0.4.5"", ""pytz==2026.2"", ""typing-extensions==4.15.0"", ""isodate==0.7.2"", ""cffi==2.0.0"", ""click-log==0.4.0"", ""rich==15.0.0"", ""readme-renderer==44.0"", ""cachetools==7.1.4"", ""pytest-django==4.12.0"", ""python-discovery==1.3.1"", ""apache-libcloud==3.9.1"", ""virtualenv==21.3.3"", ""filelock==3.29.0"", ""pydata-sphinx-theme==0.16.1"", ""requests-toolbelt==1.0.0"", ""jeepney==0.9.0"", ""kombu==5.6.2"", ""path==16.16.0"", ""amqp==5.3.1"", ""snowballstemmer==3.1.0"", ""imagesize==2.0.0"", ""djangorestframework==3.17.1"", ""pyproject-hooks==1.2.0"", ""ddt==1.7.2"", ""restructuredtext-lint==2.0.2"", ""edx-lint==6.1.0"", ""more-itertools==11.1.0"", ""mccabe==0.7.0"", ""sphinxcontrib-devhelp==2.0.0"", ""vine==5.1.0"", ""psutil==7.2.2"", ""sphinxcontrib-qthelp==2.0.0"", ""pycodestyle==2.14.0"", ""charset-normalizer==3.4.7"", ""nh3==0.3.5"", ""attrs==26.1.0"", ""edx-opaque-keys[django]==4.0.0"", ""click-plugins==1.1.1.2"", ""pymongo==4.17.0"", ""setuptools==82.0.1"", ""asgiref==3.11.1"", ""chardet==7.4.3"", ""event-tracking==4.0.0"", ""diff-cover==10.2.1"", ""distlib==0.4.0"", ""django==5.2.14"", ""lxml[html-clean]==6.1.1"", ""edx-toggles==6.0.0"", ""pytest==9.0.3"", ""roman-numerals==4.1.0"", ""jaraco-context==6.1.2"", ""django-fernet-fields-v2==0.9"", ""pynacl==1.6.2"", ""click==8.4.1"", ""django-model-utils==5.0.0"", ""pyyaml==6.0.3"", ""twine==6.2.0"", ""aniso8601==10.0.1"", ""alabaster==1.0.0"", ""secretstorage==3.5.0"", ""openedx-events==11.2.0"", ""tomlkit==0.15.0"", ""mdurl==0.1.2"", ""urllib3==2.7.0"", ""pip==26.1.1"", ""packaging==26.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""coverage[toml]==7.14.1"", ""pytest-cov==7.1.0"", ""dnspython==2.8.0"", ""isort==8.0.1"", ""sqlparse==0.5.5"", ""markupsafe==3.0.3"", ""click-repl==0.3.0"", ""beautifulsoup4==4.14.3"", ""edx-celeryutils==2.0.0"", ""id==1.6.1"", ""celery==5.6.3"", ""text-unidecode==1.3"", ""jsonfield==3.2.0"", ""cryptography==48.0.0"", ""idna==3.16"", ""stevedore==5.8.0"", ""code-annotations==3.0.0"", ""prompt-toolkit==3.0.52"", ""pydocstyle==6.3.0"", ""fastavro==1.12.2"", ""pycparser==3.0"", ""jaraco-functools==4.5.0"", ""django-redis==6.0.0""]",12,"[""event-tracking"", ""pytest-django"", ""pylint-django"", ""django-waffle"", ""djangorestframework"", ""edx-toggles"", ""edx-django-utils"", ""django-config-models"", ""edx-i18n-tools"", ""factory-boy"", ""code-annotations"", ""edx-celeryutils""]",15,"[""event-tracking"", ""pytest-django"", ""jsonfield"", ""pylint-django"", ""django-waffle"", ""djangorestframework"", ""edx-toggles"", ""edx-django-utils"", ""django-config-models"", ""django-crum"", ""edx-i18n-tools"", ""factory-boy"", ""django-model-utils"", ""code-annotations"", ""edx-celeryutils""]",8,"[""event-tracking"", ""django-waffle"", ""edx-toggles"", ""edx-django-utils"", ""django-config-models"", ""edx-i18n-tools"", ""code-annotations"", ""edx-celeryutils""]",True,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,19,"{""total_duration"": ""0 minutes 56 seconds"", ""checks"": [{""name"": ""tests (3.12, quality, ubuntu-24.04)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""tests (3.12, docs, ubuntu-24.04)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django42)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django52)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""tests (3.12, pii_check, ubuntu-24.04)"", ""duration"": ""0 minutes 35 seconds""}]}",Other,2020-09-22 20:33:20,master,Consume edx tracking events and transform/transmit them to other LRSs.,1160,23,True,False,False,False,False,False,False,2026-05-28 14:38:49,GNU AGPLv3,1,True,0,0,232,812,4813,345358,0,True,True,False,False,True,False,False,,openedx,0,[],True,"['https://github.com/openedx/event-tracking', 'https://open-edx-proposals.readthedocs.io/en/latest/oep-0026-arch-realtime-events.html', 'https://event-routing-backends.readthedocs.io/en/latest/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://img.shields.io/pypi/v/event-routing-backends.svg', 'https://pypi.python.org/pypi/event-routing-backends/', 'https://github.com/openedx/event-routing-backends/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/event-routing-backends/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/edx/event-routing-backends/coverage.svg?branch=master', 'https://codecov.io/github/edx/event-routing-backends?branch=master', 'https://readthedocs.org/projects/event-routing-backends/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/event-routing-backends.svg', 'https://img.shields.io/github/license/edx/event-routing-backends.svg', 'https://github.com/openedx/event-routing-backends/blob/master/LICENSE.txt']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-event-routing-backends,"['3', '3.12']",https://github.com/openedx/event-routing-backends,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/completion,,,,True,2026-06-01,True,True,False,False,149,0,[],0,,0,0,,,65,"[""appdirs==1.4.4"", ""django-crum==0.7.9"", ""djangorestframework==3.17.1"", ""fastavro==1.12.2"", ""pyjwt[crypto]==2.12.1"", ""packaging==26.2"", ""cryptography==48.0.0"", ""setuptools==82.0.1"", ""cffi==2.0.0"", ""pytz==2026.2"", ""event-tracking==4.0.0"", ""edx-toggles==6.0.0"", ""python-dateutil==2.9.0.post0"", ""stevedore==5.8.0"", ""pynacl==1.6.2"", ""simplejson==4.1.1"", ""vine==5.1.0"", ""sqlparse==0.5.5"", ""asgiref==3.11.1"", ""celery==5.6.3"", ""web-fragments==4.0.0"", ""wcwidth==0.7.0"", ""billiard==4.2.4"", ""code-annotations==3.0.0"", ""pycparser==3.0"", ""edx-ccx-keys==2.0.2"", ""edx-drf-extensions==10.6.0"", ""requests==2.34.2"", ""edx-opaque-keys[django]==4.0.0"", ""certifi==2026.4.22"", ""idna==3.15"", ""prompt-toolkit==3.0.52"", ""six==1.17.0"", ""text-unidecode==1.3"", ""click==8.4.0"", ""jinja2==3.1.6"", ""tzdata==2026.2"", ""click-plugins==1.1.1.2"", ""typing-extensions==4.15.0"", ""fs==2.4.16"", ""mako==1.3.12"", ""django-waffle==5.0.0"", ""charset-normalizer==3.4.7"", ""openedx-events==11.2.0"", ""click-repl==0.3.0"", ""markupsafe==3.0.3"", ""semantic-version==2.10.0"", ""click-didyoumean==0.3.1"", ""lxml==6.1.1"", ""webob==1.8.9"", ""pyyaml==6.0.3"", ""attrs==26.1.0"", ""edx-django-utils==8.0.1"", ""python-slugify==8.0.4"", ""amqp==5.3.1"", ""pymongo==4.17.0"", ""kombu==5.6.2"", ""urllib3==2.7.0"", ""xblock==6.1.0"", ""django==5.2.14"", ""dnspython==2.8.0"", ""drf-jwt==1.19.2"", ""tzlocal==5.3.1"", ""psutil==7.2.2"", ""django-model-utils==5.0.0""]",149,"[""appdirs==1.4.4"", ""sphinxcontrib-jsmath==1.0.1"", ""stevedore==5.8.0"", ""python-dateutil==2.9.0.post0"", ""docutils==0.21.2"", ""astroid==4.0.4"", ""edx-lint==6.1.0"", ""asgiref==3.11.1"", ""pytest-cov==7.1.0"", ""cachetools==7.1.3"", ""edx-ccx-keys==2.0.2"", ""edx-drf-extensions==10.6.0"", ""babel==2.18.0"", ""colorama==0.4.6"", ""jinja2==3.1.6"", ""click-plugins==1.1.1.2"", ""doc8==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""click-repl==0.3.0"", ""snowballstemmer==3.0.1"", ""restructuredtext-lint==2.0.2"", ""tomlkit==0.15.0"", ""markdown-it-py==4.2.0"", ""lxml==6.1.1"", ""virtualenv==21.3.3"", ""twine==6.2.0"", ""jaraco-context==6.1.2"", ""sphinx==9.1.0"", ""python-slugify==8.0.4"", ""pluggy==1.6.0"", ""kombu==5.6.2"", ""polib==1.2.0"", ""wheel==0.47.0"", ""dnspython==2.8.0"", ""xblock==6.1.0"", ""pytest-django==4.12.0"", ""fastavro==1.12.2"", ""pyjwt[crypto]==2.12.1"", ""cffi==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""edx-toggles==6.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pynacl==1.6.2"", ""web-fragments==4.0.0"", ""distlib==0.4.0"", ""prompt-toolkit==3.0.52"", ""idna==3.15"", ""faker==40.18.0"", ""rich==15.0.0"", ""click==8.4.0"", ""pip==26.1.1"", ""mdurl==0.1.2"", ""mccabe==0.7.0"", ""edx-i18n-tools==2.0.0"", ""mako==1.3.12"", ""id==1.6.1"", ""tomli-w==1.2.0"", ""mock==5.2.0"", ""keyring==25.7.0"", ""pytest==9.0.3"", ""alabaster==1.0.0"", ""jaraco-functools==4.5.0"", ""accessible-pygments==0.0.5"", ""django-model-utils==5.0.0"", ""djangorestframework==3.17.1"", ""chardet==7.4.3"", ""cryptography==48.0.0"", ""pylint-plugin-utils==0.9.0"", ""pydocstyle==6.3.0"", ""pytz==2026.2"", ""python-discovery==1.3.1"", ""vine==5.1.0"", ""sqlparse==0.5.5"", ""coverage[toml]==7.14.0"", ""pycparser==3.0"", ""readme-renderer==44.0"", ""edx-opaque-keys[django]==4.0.0"", ""build==1.5.0"", ""certifi==2026.4.22"", ""text-unidecode==1.3"", ""tzdata==2026.2"", ""factory-boy==3.3.3"", ""requests-toolbelt==1.0.0"", ""diff-cover==10.2.0"", ""fs==2.4.16"", ""django-waffle==5.0.0"", ""charset-normalizer==3.4.7"", ""openedx-events==11.2.0"", ""soupsieve==2.8.3"", ""click-didyoumean==0.3.1"", ""jeepney==0.9.0"", ""pycodestyle==2.14.0"", ""lxml-html-clean==0.4.4"", ""pyyaml==6.0.3"", ""imagesize==2.0.0"", ""sphinx-book-theme==1.2.0"", ""pymongo==4.17.0"", ""urllib3==2.7.0"", ""tox==4.54.0"", ""pygments==2.20.0"", ""django==5.2.14"", ""drf-jwt==1.19.2"", ""tzlocal==5.3.1"", ""wcwidth==0.7.0"", ""django-crum==0.7.9"", ""rfc3986==2.0.0"", ""pylint==4.0.5"", ""docutils==0.22.4"", ""packaging==26.2"", ""secretstorage==3.5.0"", ""setuptools==82.0.1"", ""roman-numerals==4.1.0"", ""filelock==3.29.0"", ""path==16.16.0"", ""event-tracking==4.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""simplejson==4.1.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""celery==5.6.3"", ""click-log==0.4.0"", ""billiard==4.2.4"", ""ddt==1.7.2"", ""more-itertools==11.0.2"", ""code-annotations==3.0.0"", ""pyproject-hooks==1.2.0"", ""requests==2.34.2"", ""jaraco-classes==3.4.0"", ""six==1.17.0"", ""pylint-django==2.7.0"", ""platformdirs==4.9.6"", ""typing-extensions==4.15.0"", ""beautifulsoup4==4.14.3"", ""pyproject-api==1.10.0"", ""lxml[html-clean]==6.1.1"", ""markupsafe==3.0.3"", ""semantic-version==2.10.0"", ""pylint-celery==0.3"", ""webob==1.8.9"", ""nh3==0.3.5"", ""isort==8.0.1"", ""dill==0.4.1"", ""attrs==26.1.0"", ""edx-django-utils==8.0.1"", ""pip-tools==7.5.3"", ""amqp==5.3.1"", ""freezegun==1.5.5"", ""sphinxcontrib-htmlhelp==2.1.0"", ""psutil==7.2.2"", ""iniconfig==2.3.0""]",13,"[""djangorestframework"", ""edx-drf-extensions"", ""edx-toggles"", ""web-fragments"", ""edx-django-utils"", ""django-waffle"", ""event-tracking"", ""pylint-django"", ""code-annotations"", ""factory-boy"", ""edx-i18n-tools"", ""pytest-django"", ""xblock""]",16,"[""djangorestframework"", ""edx-drf-extensions"", ""edx-toggles"", ""web-fragments"", ""edx-django-utils"", ""drf-jwt"", ""django-waffle"", ""event-tracking"", ""pylint-django"", ""code-annotations"", ""django-crum"", ""django-model-utils"", ""factory-boy"", ""edx-i18n-tools"", ""pytest-django"", ""xblock""]",9,"[""edx-drf-extensions"", ""edx-toggles"", ""web-fragments"", ""edx-django-utils"", ""django-waffle"", ""event-tracking"", ""code-annotations"", ""edx-i18n-tools"", ""xblock""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,19,"{""total_duration"": ""1 minutes 6 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drf314)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2018-01-26 18:55:49,master,A library for tracking completion of blocks by learners in edX courses.,678,23,True,False,False,False,False,False,False,2026-05-26 16:32:23,GNU AGPLv3,1,True,0,0,0,0,4866,87949,0,False,True,False,False,True,False,False,,openedx,3,"['http://your.lms.site/admin/waffle/switch/: HTTPConnectionPool(host=\'your.lms.site\', port=80): Max retries exceeded with url: /admin/waffle/switch/ (Caused by NameResolutionError(""HTTPConnection(host=\'your.lms.site\', port=80): Failed to resolve \'your.lms.site\' ([Errno -2] Name or service not known)""))', 'https://docs.openedx.org/projects/completion: 404', 'https://github.com/openedx/completion/blob/master/LICENSE.txt: 404']",False,"['https://docs.openedx.org/en/latest/educators/references/course_development/exercise_tools/completion.html', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/completion', 'https://img.shields.io/pypi/v/edx-completion.svg', 'https://pypi.python.org/pypi/edx-completion/', 'https://github.com/openedx/completion/actions/workflows/ci.yml/badge.svg?branch=master', 'https://github.com/openedx/completion/actions/workflows/ci.yml?branch=master', 'http://codecov.io/github/edx/completion/coverage.svg?branch=master', 'http://codecov.io/github/edx/completion?branch=master', 'https://readthedocs.org/projects/completion/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-completion.svg', 'https://img.shields.io/github/license/edx/completion.svg', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-completion,"['3', '3.12']",https://github.com/openedx/completion,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/wg-mobile,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""124768 minutes 14 seconds"", ""checks"": [{""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2025-08-22 19:07:00,main,Open edX Mobile working group board for platform-agnostic issues,8,2,True,False,False,False,False,False,False,2025-10-30 15:57:59,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-aspects,,,,True,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,16,"{""total_duration"": ""7857 minutes 18 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""update-uv-graph"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2023-01-05 19:08:37,main,Aspects - Analytics for Open edX,6249,11,True,False,False,False,False,False,False,2026-06-01 00:30:47,Apache License 2.0,2,False,0,0,0,0,1289,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://docs.astral.sh/uv/', 'https://astral.sh/uv/install.sh', 'https://github.com/orgs/openedx/projects/5/views/1', 'https://docs.openedx.org/projects/openedx-aspects', 'https://github.com/openedx/tutor-contrib-aspects']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-ledger,,,,True,2026-06-01,True,True,False,False,135,0,[],0,,0,0,,,47,"[""idna==3.14"", ""django-filter==25.2"", ""edx-opaque-keys[django]==4.0.0"", ""djangorestframework==3.17.1"", ""pynacl==1.6.2"", ""cryptography==48.0.0"", ""dnspython==2.8.0"", ""mysqlclient==2.2.8"", ""psutil==7.2.2"", ""openedx-events==11.2.0"", ""stevedore==5.7.0"", ""urllib3==2.7.0"", ""charset-normalizer==3.4.7"", ""semantic-version==2.10.0"", ""ply==3.11"", ""rules==3.5"", ""django-object-actions==5.0.1"", ""edx-django-release-util==1.5.0"", ""fastavro==1.12.2"", ""edx-drf-extensions==10.6.0"", ""redis==7.4.0"", ""six==1.17.0"", ""pyyaml==6.0.3"", ""drf-jwt==1.19.2"", ""typing-extensions==4.15.0"", ""pymongo==4.17.0"", ""pycparser==3.0"", ""sqlparse==0.5.5"", ""django-model-utils==5.0.0"", ""edx-rbac==3.0.0"", ""django-crum==0.7.9"", ""django-waffle==5.0.0"", ""pytz==2026.2"", ""cffi==2.0.0"", ""django==5.2.14"", ""click==8.3.3"", ""pyjwt[crypto]==2.12.1"", ""edx-django-utils==8.0.1"", ""requests==2.33.1"", ""asgiref==3.11.1"", ""djangoql==0.19.1"", ""jsonfield2==4.0.0.post0"", ""edx-ccx-keys==2.0.2"", ""certifi==2026.4.22"", ""attrs==26.1.0"", ""django-simple-history==3.11.0"", ""django-extensions==4.1""]",135,"[""django-filter==25.2"", ""imagesize==2.0.0"", ""ddt==1.7.2"", ""charset-normalizer==3.4.7"", ""filelock==3.29.0"", ""ply==3.11"", ""rules==3.5"", ""django-object-actions==5.0.1"", ""packaging==26.2"", ""redis==7.4.0"", ""rfc3986==2.0.0"", ""lxml-html-clean==0.4.4"", ""sphinxcontrib-applehelp==2.0.0"", ""six==1.17.0"", ""drf-jwt==1.19.2"", ""jaraco-context==6.1.2"", ""sphinxcontrib-qthelp==2.0.0"", ""twine==6.2.0"", ""pycparser==3.0"", ""soupsieve==2.8.3"", ""mdurl==0.1.2"", ""edx-rbac==3.0.0"", ""django-crum==0.7.9"", ""pydocstyle==6.3.0"", ""pyproject-hooks==1.2.0"", ""rich==15.0.0"", ""cffi==2.0.0"", ""nh3==0.3.5"", ""jinja2==3.1.6"", ""pygments==2.20.0"", ""markupsafe==3.0.3"", ""python-discovery==1.3.0"", ""pip==26.1.1"", ""asgiref==3.11.1"", ""path==16.16.0"", ""virtualenv==21.3.1"", ""certifi==2026.4.22"", ""edx-opaque-keys[django]==4.0.0"", ""djangorestframework==3.17.1"", ""pylint==4.0.5"", ""pyproject-api==1.10.0"", ""cryptography==48.0.0"", ""mysqlclient==2.2.8"", ""openedx-events==11.2.0"", ""markdown-it-py==4.2.0"", ""factory-boy==3.3.3"", ""pylint-celery==0.3"", ""sphinx-book-theme==1.2.0"", ""pip-tools==7.5.3"", ""python-slugify==8.0.4"", ""edx-lint==6.1.0"", ""roman-numerals==4.1.0"", ""semantic-version==2.10.0"", ""babel==2.18.0"", ""coverage[toml]==7.14.0"", ""pyyaml==6.0.3"", ""typing-extensions==4.15.0"", ""readme-renderer==44.0"", ""jaraco-functools==4.4.0"", ""edx-i18n-tools==2.0.0"", ""diff-cover==10.2.0"", ""pytz==2026.2"", ""sphinx==9.1.0"", ""lxml[html-clean]==6.1.0"", ""click==8.3.3"", ""pyjwt[crypto]==2.12.1"", ""doc8==2.0.0"", ""jsonfield2==4.0.0.post0"", ""sphinxcontrib-devhelp==2.0.0"", ""django-extensions==4.1"", ""distlib==0.4.0"", ""accessible-pygments==0.0.5"", ""dnspython==2.8.0"", ""platformdirs==4.9.6"", ""pluggy==1.6.0"", ""psutil==7.2.2"", ""id==1.6.1"", ""secretstorage==3.5.0"", ""urllib3==2.7.0"", ""click-log==0.4.0"", ""colorama==0.4.6"", ""snowballstemmer==3.0.1"", ""fastavro==1.12.2"", ""beautifulsoup4==4.14.3"", ""isort==8.0.1"", ""pytest-cov==7.1.0"", ""docutils==0.21.2"", ""pylint-plugin-utils==0.9.0"", ""alabaster==1.0.0"", ""chardet==7.4.3"", ""pymongo==4.17.0"", ""jaraco-classes==3.4.0"", ""tox==4.53.1"", ""pycodestyle==2.14.0"", ""django-waffle==5.0.0"", ""keyring==25.7.0"", ""restructuredtext-lint==2.0.2"", ""edx-django-utils==8.0.1"", ""more-itertools==11.0.2"", ""djangoql==0.19.1"", ""iniconfig==2.3.0"", ""jeepney==0.9.0"", ""setuptools==82.0.1"", ""attrs==26.1.0"", ""build==1.5.0"", ""faker==40.15.0"", ""idna==3.14"", ""tomlkit==0.15.0"", ""pynacl==1.6.2"", ""pytest==9.0.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""stevedore==5.7.0"", ""tomli-w==1.2.0"", ""wheel==0.47.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-django-release-util==1.5.0"", ""pylint-django==2.7.0"", ""edx-drf-extensions==10.6.0"", ""mccabe==0.7.0"", ""text-unidecode==1.3"", ""requests-toolbelt==1.0.0"", ""astroid==4.0.4"", ""sqlparse==0.5.5"", ""django-model-utils==5.0.0"", ""cachetools==7.1.1"", ""pydata-sphinx-theme==0.16.1"", ""pytest-django==4.12.0"", ""dill==0.4.1"", ""django==5.2.14"", ""polib==1.2.0"", ""code-annotations==3.0.0"", ""requests==2.33.1"", ""edx-ccx-keys==2.0.2"", ""sphinxcontrib-jsmath==1.0.1"", ""django-simple-history==3.11.0""]",14,"[""pytest-django"", ""factory-boy"", ""django-waffle"", ""edx-i18n-tools"", ""pylint-django"", ""django-extensions"", ""edx-django-release-util"", ""code-annotations"", ""django-object-actions"", ""django-filter"", ""edx-django-utils"", ""djangorestframework"", ""edx-rbac"", ""edx-drf-extensions""]",19,"[""factory-boy"", ""edx-i18n-tools"", ""edx-django-utils"", ""djangorestframework"", ""edx-drf-extensions"", ""django-waffle"", ""drf-jwt"", ""code-annotations"", ""django-extensions"", ""edx-django-release-util"", ""django-filter"", ""pytest-django"", ""pylint-django"", ""django-model-utils"", ""django-simple-history"", ""django-object-actions"", ""django-crum"", ""rules"", ""edx-rbac""]",9,"[""django-waffle"", ""edx-i18n-tools"", ""django-extensions"", ""edx-django-release-util"", ""code-annotations"", ""django-filter"", ""edx-django-utils"", ""edx-rbac"", ""edx-drf-extensions""]",True,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,26,"{""total_duration"": ""4776 minutes 20 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2022-12-21 21:16:19,main,"A library that records transactions against a ledger, denominated in units of value.",483,7,True,False,False,False,False,False,False,2026-06-01 03:11:44,GNU AGPLv3,2,True,0,3141,1493,0,5111,157592,0,True,True,False,False,True,False,False,,openedx,0,"['https://docs.openedx.org/projects/openedx-ledger/how-tos/how-to-deploy-this-component.html: 404', 'https://docs.openedx.org/projects/openedx-ledger: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-ledger: 404', 'https://openedx-ledger.readthedocs.io/en/latest/: 404']",True,"['https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-ledger/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/openedx-ledger.svg', 'https://pypi.python.org/pypi/openedx-ledger/', 'https://github.com/openedx/openedx-ledger/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/openedx-ledger/actions', 'https://codecov.io/github/openedx/openedx-ledger/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-ledger?branch=main', 'https://readthedocs.org/projects/openedx-ledger/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-ledger.svg', 'https://img.shields.io/github/license/openedx/openedx-ledger.svg', 'https://github.com/openedx/openedx-ledger/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-ledger,"['3', '3.12']",https://github.com/openedx/openedx-ledger,True,True,True,False,False,False,False,False,False,[],[],"['locales', 'pkg-config', 'libmysqlclient-dev', 'libssl-dev', 'gcc', 'install', 'python3-pip', 'language-pack-en', 'python3.12-venv', 'python3-dev', 'curl', 'build-essential', 'python3.12', 'git']",[] -openedx/webhook-test-repo,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""30 minutes 45 seconds"", ""checks"": [{""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2020-06-10 09:38:45,master,A dummy repo for testing openedx-webhooks,9,5,True,False,False,False,False,False,False,2025-02-12 18:21:32,,1,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/i18n-tools,,,,True,2026-06-01,True,True,False,False,54,0,[],0,,0,0,,,8,"[""pyyaml==6.0.3"", ""sqlparse==0.5.5"", ""path==16.16.0"", ""asgiref==3.11.1"", ""lxml[html-clean]==6.0.2"", ""polib==1.2.0"", ""django==5.2.12"", ""lxml-html-clean==0.4.4""]",54,"[""iniconfig==2.3.0"", ""code-annotations==2.3.2"", ""markupsafe==3.0.3"", ""tomli-w==1.2.0"", ""virtualenv==21.1.0"", ""jinja2==3.1.6"", ""build==1.4.0"", ""packaging==26.0"", ""click-log==0.4.0"", ""mock==5.2.0"", ""distlib==0.4.0"", ""pygments==2.19.2"", ""cachetools==7.0.3"", ""click==8.3.1"", ""platformdirs==4.9.4"", ""text-unidecode==1.3"", ""coverage[toml]==7.13.4"", ""lxml-html-clean==0.4.4"", ""pip-tools==7.5.3"", ""python-slugify==8.0.4"", ""pylint-plugin-utils==0.9.0"", ""pytest==9.0.2"", ""path==16.16.0"", ""pytz==2026.1.post1"", ""pyproject-hooks==1.2.0"", ""lxml[html-clean]==6.0.2"", ""pyproject-api==1.10.0"", ""filelock==3.25.0"", ""pip==26.0.1"", ""pluggy==1.6.0"", ""polib==1.2.0"", ""colorama==0.4.6"", ""django==5.2.12"", ""pylint==4.0.5"", ""astroid==4.0.4"", ""pylint-django==2.7.0"", ""sqlparse==0.5.5"", ""tomlkit==0.14.0"", ""setuptools==82.0.0"", ""isort==8.0.1"", ""six==1.17.0"", ""python-discovery==1.1.1"", ""edx-lint==5.6.0"", ""mccabe==0.7.0"", ""pyyaml==6.0.3"", ""pylint-celery==0.3"", ""asgiref==3.11.1"", ""pycodestyle==2.14.0"", ""wheel==0.46.3"", ""ddt==1.7.2"", ""dill==0.4.1"", ""pytest-cov==7.0.0"", ""stevedore==5.7.0"", ""tox==4.49.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,32,"{""total_duration"": ""285 minutes 48 seconds"", ""checks"": [{""name"": ""python-tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""python-tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""python-tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2014-06-03 21:09:08,master,Tools to help with internationalization and localization of Open edX projects,406,35,True,False,False,False,False,False,False,2026-06-01 00:59:27,Apache License 2.0,13,True,0,0,0,0,2930,110653,0,False,True,False,True,True,False,True,,openedx,3,['https://travis-ci.com/edx/i18n-tools: 404'],False,"['https://www.transifex.com/', 'https://www.transifex.com', 'https://github.com/openedx/edx-platform/blob/master/conf/locale/config.yaml', 'https://travis-ci.com/edx/i18n-tools.svg?branch=master', 'https://coveralls.io/repos/edx/i18n-tools/badge.png', 'https://coveralls.io/r/edx/i18n-tools']",True,True,False,False,,,False,,,,False,False,False,True,,False,edx-i18n-tools,['3.12'],https://github.com/openedx/i18n-tools,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/django-config-models,,,,True,2026-06-01,True,True,False,False,107,0,[],0,,0,0,,,13,"[""pycparser==3.0"", ""click==8.3.3"", ""asgiref==3.11.1"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""sqlparse==0.5.5"", ""stevedore==5.7.0"", ""django-waffle==5.0.0"", ""djangorestframework==3.17.1"", ""psutil==7.2.2"", ""pynacl==1.6.2"", ""django==5.2.14"", ""edx-django-utils==8.0.1""]",107,"[""build==1.5.0"", ""sphinxcontrib-devhelp==2.0.0"", ""freezegun==1.5.5"", ""tox==4.53.1"", ""pydocstyle==6.3.0"", ""secretstorage==3.5.0"", ""pylint==4.0.5"", ""django==5.2.14"", ""keyring==25.7.0"", ""text-unidecode==1.3"", ""six==1.17.0"", ""sphinx==9.1.0"", ""babel==2.18.0"", ""code-annotations==3.0.0"", ""typing-extensions==4.15.0"", ""pip==26.1.1"", ""pygments==2.20.0"", ""setuptools==82.0.1"", ""urllib3==2.7.0"", ""pycparser==3.0"", ""pytest==9.0.3"", ""charset-normalizer==3.4.7"", ""pytest-django==4.12.0"", ""pydata-sphinx-theme==0.16.1"", ""lxml-html-clean==0.4.4"", ""iniconfig==2.3.0"", ""requests==2.33.1"", ""cachetools==7.1.1"", ""pylint-django==2.7.0"", ""dill==0.4.1"", ""pycodestyle==2.14.0"", ""astroid==4.0.4"", ""python-dateutil==2.9.0.post0"", ""certifi==2026.4.22"", ""cryptography==48.0.0"", ""docutils==0.22.4"", ""pyproject-api==1.10.0"", ""virtualenv==21.3.1"", ""more-itertools==11.0.2"", ""edx-i18n-tools==2.0.0"", ""path==16.16.0"", ""mccabe==0.7.0"", ""markdown-it-py==4.2.0"", ""djangorestframework==3.17.1"", ""sphinx-book-theme==1.2.0"", ""tomlkit==0.14.0"", ""colorama==0.4.6"", ""pyproject-hooks==1.2.0"", ""pylint-plugin-utils==0.9.0"", ""sphinxcontrib-jsmath==1.0.1"", ""lxml[html-clean]==6.1.0"", ""filelock==3.29.0"", ""django-waffle==5.0.0"", ""snowballstemmer==3.0.1"", ""imagesize==2.0.0"", ""rfc3986==2.0.0"", ""roman-numerals==4.1.0"", ""packaging==26.2"", ""accessible-pygments==0.0.5"", ""platformdirs==4.9.6"", ""pynacl==1.6.2"", ""polib==1.2.0"", ""cffi==2.0.0"", ""jaraco-context==6.1.2"", ""wheel==0.47.0"", ""pip-tools==7.5.3"", ""isort==8.0.1"", ""psutil==7.2.2"", ""readme-renderer==44.0"", ""alabaster==1.0.0"", ""mdurl==0.1.2"", ""jinja2==3.1.6"", ""edx-django-utils==8.0.1"", ""sphinxcontrib-applehelp==2.0.0"", ""django-crum==0.7.9"", ""jaraco-functools==4.4.0"", ""markupsafe==3.0.3"", ""pylint-celery==0.3"", ""asgiref==3.11.1"", ""pyyaml==6.0.3"", ""ddt==1.7.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""twine==6.2.0"", ""click==8.3.3"", ""python-slugify==8.0.4"", ""nh3==0.3.5"", ""edx-lint==6.1.0"", ""id==1.6.1"", ""click-log==0.4.0"", ""pluggy==1.6.0"", ""stevedore==5.7.0"", ""beautifulsoup4==4.14.3"", ""rich==15.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""idna==3.13"", ""python-discovery==1.3.0"", ""pytest-cov==7.1.0"", ""jeepney==0.9.0"", ""distlib==0.4.0"", ""requests-toolbelt==1.0.0"", ""sqlparse==0.5.5"", ""edx-django-release-util==1.5.0"", ""coverage[toml]==7.13.5"", ""jaraco-classes==3.4.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tomli-w==1.2.0"", ""soupsieve==2.8.3""]",8,"[""edx-django-release-util"", ""pytest-django"", ""djangorestframework"", ""edx-django-utils"", ""pylint-django"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations""]",9,"[""edx-django-release-util"", ""django-crum"", ""pytest-django"", ""djangorestframework"", ""edx-django-utils"", ""pylint-django"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations""]",5,"[""edx-django-release-util"", ""edx-django-utils"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,10,"{""total_duration"": ""2261 minutes 39 seconds"", ""checks"": [{""name"": ""upgrade_requirements / upgrade_requirements"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2016-10-06 17:42:39,master,Configuration models for Django allowing config management with auditing.,593,22,True,False,False,False,False,False,False,2026-06-01 04:35:19,GNU AGPLv3,4,True,0,0,662,0,3842,79643,0,False,True,False,False,True,False,False,,openedx,1,[],True,"['https://github.com/openedx/django-config-models/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/django-config-models/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/openedx/django-config-models/coverage.svg?branch=master', 'http://codecov.io/github/openedx/django-config-models?branch=master', 'https://img.shields.io/pypi/v/django-config-models.svg', 'https://pypi.python.org/pypi/django-config-models/', 'https://readthedocs.org/projects/django-config-models/badge/?version=latest', 'http://django-config-models.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/django-config-models.svg', 'https://img.shields.io/github/license/edx/django-config-models.svg', 'https://github.com/openedx/django-config-models/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://django-config-models.readthedocs.org', 'https://discuss.openedx.org', 'https://github.com/openedx/django-config-models', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/django-config-models']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,django-config-models,"['3', '3.12']",https://github.com/openedx/django-config-models,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/event-bus-kafka,,,,True,2026-06-01,True,True,False,False,126,0,[],0,,0,0,,,28,"[""code-annotations==2.3.0"", ""markupsafe==3.0.3"", ""jinja2==3.1.6"", ""psutil==7.1.1"", ""python-slugify==8.0.4"", ""text-unidecode==1.3"", ""edx-opaque-keys[django]==3.0.0"", ""fastavro==1.12.1"", ""django-waffle==5.0.0"", ""pyyaml==6.0.3"", ""dnspython==2.8.0"", ""django==4.2.25"", ""pycparser==2.23"", ""edx-ccx-keys==2.0.2"", ""attrs==25.4.0"", ""typing-extensions==4.15.0"", ""pymongo==4.15.3"", ""pynacl==1.6.0"", ""openedx-events==10.5.0"", ""asgiref==3.10.0"", ""edx-django-utils==8.0.1"", ""six==1.17.0"", ""stevedore==5.5.0"", ""click==8.3.0"", ""sqlparse==0.5.3"", ""edx-toggles==5.4.1"", ""django-crum==0.7.9"", ""cffi==2.0.0""]",126,"[""dill==0.4.0"", ""tomli==2.3.0"", ""edx-i18n-tools==1.9.0"", ""pydocstyle==6.3.0"", ""virtualenv==20.35.3"", ""psutil==7.1.1"", ""jeepney==0.9.0"", ""pylint-plugin-utils==0.9.0"", ""platformdirs==4.5.0"", ""python-slugify==8.0.4"", ""text-unidecode==1.3"", ""setuptools==80.9.0"", ""diff-cover==9.7.1"", ""pip==25.2"", ""avro==1.12.1"", ""httpcore==1.0.9"", ""sphinxcontrib-applehelp==2.0.0"", ""colorama==0.4.6"", ""confluent-kafka[avro,schema-registry]==2.12.0"", ""markdown-it-py==4.0.0"", ""h11==0.16.0"", ""pynacl==1.6.0"", ""iniconfig==2.3.0"", ""openedx-events==10.5.0"", ""alabaster==1.0.0"", ""stevedore==5.5.0"", ""click==8.3.0"", ""sqlparse==0.5.3"", ""sphinxcontrib-jsmath==1.0.1"", ""tomlkit==0.13.3"", ""readme-renderer==44.0"", ""pycodestyle==2.14.0"", ""requests-toolbelt==1.0.0"", ""backports-tarfile==1.2.0"", ""docutils==0.21.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sniffio==1.3.1"", ""jaraco-functools==4.3.0"", ""pytest-cov==7.0.0"", ""chardet==5.2.0"", ""nh3==0.3.1"", ""fastavro==1.12.1"", ""pyyaml==6.0.3"", ""distlib==0.4.0"", ""mdurl==0.1.2"", ""tox==4.31.0"", ""authlib==1.6.5"", ""click-log==0.4.0"", ""typing-extensions==4.15.0"", ""twine==6.2.0"", ""sphinxcontrib-qthelp==2.0.0"", ""asgiref==3.10.0"", ""sphinx==8.2.3"", ""edx-django-utils==8.0.1"", ""snowballstemmer==3.0.1"", ""cryptography==46.0.3"", ""six==1.17.0"", ""rfc3986==2.0.0"", ""lxml[html-clean]==6.0.2"", ""edx-toggles==5.4.1"", ""secretstorage==3.4.0"", ""jaraco-classes==3.4.0"", ""mccabe==0.7.0"", ""pluggy==1.6.0"", ""accessible-pygments==0.0.5"", ""pylint-django==2.6.1"", ""more-itertools==10.8.0"", ""code-annotations==2.3.0"", ""path==16.16.0"", ""jinja2==3.1.6"", ""sphinxcontrib-htmlhelp==2.1.0"", ""rich==14.2.0"", ""filelock==3.20.0"", ""wheel==0.45.1"", ""django-waffle==5.0.0"", ""build==1.3.0"", ""dnspython==2.8.0"", ""django==4.2.25"", ""idna==3.11"", ""pycparser==2.23"", ""edx-ccx-keys==2.0.2"", ""attrs==25.4.0"", ""pytest==8.4.2"", ""astroid==3.3.11"", ""charset-normalizer==3.4.4"", ""sphinxcontrib-devhelp==2.0.0"", ""lxml-html-clean==0.4.3"", ""zipp==3.23.0"", ""httpx==0.28.1"", ""importlib-metadata==8.7.0"", ""isort==6.1.0"", ""packaging==25.0"", ""beautifulsoup4==4.14.2"", ""certifi==2025.10.5"", ""pylint-celery==0.3"", ""roman-numerals-py==3.1.0"", ""pygments==2.19.2"", ""pyproject-hooks==1.2.0"", ""cffi==2.0.0"", ""urllib3==2.5.0"", ""id==1.5.0"", ""coverage[toml]==7.11.0"", ""edx-lint==5.6.0"", ""markupsafe==3.0.3"", ""keyring==25.6.0"", ""restructuredtext-lint==1.4.0"", ""babel==2.17.0"", ""anyio==4.11.0"", ""docutils==0.22.2"", ""requests==2.32.5"", ""polib==1.2.0"", ""edx-opaque-keys[django]==3.0.0"", ""jaraco-context==6.0.1"", ""soupsieve==2.8"", ""pymongo==4.15.3"", ""pylint==3.3.9"", ""pytest-django==4.11.1"", ""pip-tools==7.5.1"", ""imagesize==1.4.1"", ""sphinx-book-theme==1.1.4"", ""pydata-sphinx-theme==0.15.4"", ""doc8==2.0.0"", ""django-crum==0.7.9"", ""ddt==1.7.2"", ""pyproject-api==1.10.0"", ""cachetools==6.2.1""]",7,"[""edx-toggles"", ""edx-django-utils"", ""pytest-django"", ""edx-i18n-tools"", ""pylint-django"", ""django-waffle"", ""code-annotations""]",9,"[""edx-toggles"", ""edx-django-utils"", ""pytest-django"", ""django-crum"", ""edx-i18n-tools"", ""pylint-django"", ""authlib"", ""django-waffle"", ""code-annotations""]",5,"[""edx-toggles"", ""edx-django-utils"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations""]",True,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,12,"{""total_duration"": ""0 minutes 50 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 30 seconds""}]}",Other,2022-06-11 18:50:06,main,Kafka implementation for Open edX event bus,540,7,True,False,False,False,False,False,False,2026-05-30 15:24:17,GNU AGPLv3,7,True,0,0,662,0,4152,138701,0,True,True,False,False,True,False,False,,openedx,1,"['https://openedx-slack-invite.herokuapp.com/: 404', 'https://edx-event-bus-kafka.readthedocs.io/en/latest/: 404']",True,"['https://github.com/openedx/event-bus-kafka/blob/main/docs/decisions/0005-optional-import-of-confluent-kafka.rst', 'https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0052-arch-event-bus-architecture.html', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/edx-event-bus-kafka.svg', 'https://pypi.python.org/pypi/edx-event-bus-kafka/', 'https://github.com/openedx/event-bus-kafka/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/event-bus-kafka/actions', 'https://codecov.io/github/openedx/event-bus-kafka/coverage.svg?branch=main', 'https://codecov.io/github/openedx/event-bus-kafka?branch=main', 'https://readthedocs.org/projects/edx-event-bus-kafka/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-event-bus-kafka.svg', 'https://img.shields.io/github/license/openedx/event-bus-kafka.svg', 'https://github.com/openedx/event-bus-kafka/blob/main/LICENSE.txt']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx_event_bus_kafka,"['3', '3.12']",https://github.com/openedx/event-bus-kafka,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-template-site,,,,False,2026-06-01,False,False,False,False,8,0,,0,{},6,2,"{""@edx/browserslist-config"": ""^1.5.0"", ""turbo"": ""^2.8.16""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.3.0 || 0.0.0-dev"", ""@openedx/frontend-app-authn"": ""^1.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-app-learner-dashboard"": ""^1.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-app-instructor-dashboard"": ""^1.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-app-notifications"": ""^3.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-base"": ""^1.0.0-alpha || 0.0.0-dev""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1 minutes 8 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""1 minutes 8 seconds""}]}",Other,2025-06-27 13:43:21,main,This repository is a template for Open edX frontend sites.,453,4,True,False,False,False,False,False,False,2026-05-20 13:10:29,GNU AGPLv3,0,True,0,0,258,231,638,0,0,False,False,False,False,False,False,False,,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-site: 404', 'https://github.com/openedx/frontend-template-application/blob/main/LICENSE: 404']",False,"['https://github.com/nvm-sh/nvm', 'https://bindfs.org/', 'https://docs.npmjs.com/cli/using-npm/workspaces', 'https://github.com/semantic-release/semantic-release', 'https://turbo.build/', 'https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst', 'https://github.com/openedx/openedx-translations', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-template-application.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-template-application/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-template-application?branch=main']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/enterprise-catalog,,,,True,2026-06-01,True,True,False,False,204,0,[],0,,0,0,,,119,"[""semantic-version==2.10.0"", ""httpx==0.28.1"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""oauthlib==3.3.1"", ""httpcore==1.0.9"", ""billiard==4.2.4"", ""inflection==0.5.1"", ""python-memcached==1.62"", ""asgiref==3.11.0"", ""jsonschema==4.26.0"", ""monotonic==1.6"", ""simplejson==3.20.2"", ""python3-openid==3.2.0"", ""djangorestframework-xml==2.0.0"", ""edx-drf-extensions==10.6.0"", ""threadpoolctl==3.6.0"", ""rules==3.5"", ""prompt-toolkit==3.0.52"", ""edx-rbac==2.1.0"", ""requests-oauthlib==2.0.0"", ""django-crum==0.7.9"", ""social-auth-app-django==5.7.0"", ""vine==5.1.0"", ""algoliasearch==3.0.0"", ""django-extensions==4.1"", ""django-import-export==4.4.0"", ""charset-normalizer==3.4.4"", ""urllib3==2.6.3"", ""django-log-request-id==2.1.0"", ""greenlet==3.3.0"", ""edx-auth-backends==4.6.2"", ""django==5.2.10"", ""markupsafe==3.0.3"", ""tqdm==4.67.1"", ""django-clearcache==1.2.1"", ""pyjwt[crypto]==2.10.1"", ""djangoql==0.18.1"", ""tablib==3.9.0"", ""typing-extensions==4.15.0"", ""pycparser==2.23"", ""defusedxml==0.7.1"", ""text-unidecode==1.3"", ""edx-opaque-keys==3.0.0"", ""psutil==7.2.1"", ""celery==5.6.2"", ""django-simple-history==3.11.0"", ""python-dateutil==2.9.0.post0"", ""pytz==2025.2"", ""click==8.3.1"", ""edx-django-release-util==1.5.0"", ""h11==0.16.0"", ""wcwidth==0.2.14"", ""cffi==2.0.0"", ""django-model-utils==5.0.0"", ""numpy==2.4.1"", ""zope-interface==8.2"", ""requests==2.32.5"", ""django-celery-results==2.6.0"", ""jsonschema-specifications==2025.9.1"", ""backoff==1.10.0"", ""dnspython==2.8.0"", ""edx-django-utils==8.0.1"", ""tzlocal==5.3.1"", ""referencing==0.37.0"", ""anyio==4.12.1"", ""pynacl==1.6.2"", ""sniffio==1.3.1"", ""rpds-py==0.30.0"", ""zope-event==6.1"", ""ply==3.11"", ""edx-toggles==5.4.1"", ""gevent==25.9.1"", ""idna==3.11"", ""django-cors-headers==4.9.0"", ""django-waffle==5.0.0"", ""pydantic-core==2.41.5"", ""scipy==1.17.0"", ""packaging==25.0"", ""code-annotations==2.3.0"", ""analytics-python==1.4.post1"", ""drf-spectacular==0.29.0"", ""python-slugify==8.0.4"", ""jsonfield==3.2.0"", ""openai==1.13.3"", ""joblib==1.5.3"", ""cryptography==46.0.3"", ""annotated-types==0.7.0"", ""stevedore==5.6.0"", ""jsonfield2==4.0.0.post0"", ""tzdata==2025.3"", ""distro==1.9.0"", ""sqlparse==0.5.5"", ""edx-celeryutils==1.4.0"", ""social-auth-core==4.8.3"", ""drf-jwt==1.19.2"", ""gunicorn==23.0.0"", ""uritemplate==4.2.0"", ""certifi==2026.1.4"", ""diff-match-patch==20241021"", ""edx-rest-api-client==6.2.0"", ""scikit-learn==1.8.0"", ""django-config-models==2.9.0"", ""amqp==5.3.1"", ""pymongo==4.16.0"", ""mysqlclient==2.2.7"", ""typing-inspection==0.4.2"", ""pydantic==2.12.5"", ""click-plugins==1.1.1.2"", ""click-didyoumean==0.3.1"", ""attrs==25.4.0"", ""jinja2==3.1.6"", ""xlsxwriter==3.2.9"", ""click-repl==0.3.0"", ""zipp==3.23.0"", ""pymemcache==4.0.0"", ""redis==7.1.0"", ""kombu==5.6.2"", ""djangorestframework==3.16.1""]",204,"[""semantic-version==2.10.0"", ""httpx==0.28.1"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""filelock==3.20.3"", ""oauthlib==3.3.1"", ""httpcore==1.0.9"", ""billiard==4.2.4"", ""inflection==0.5.1"", ""python-memcached==1.62"", ""asgiref==3.11.0"", ""accessible-pygments==0.0.5"", ""roman-numerals==4.1.0"", ""jsonschema==4.26.0"", ""polib==1.2.0"", ""monotonic==1.6"", ""simplejson==3.20.2"", ""python3-openid==3.2.0"", ""packaging==21.3"", ""tomlkit==0.13.3"", ""djangorestframework-xml==2.0.0"", ""edx-drf-extensions==10.6.0"", ""edx-lint==5.6.0"", ""threadpoolctl==3.6.0"", ""rules==3.5"", ""prompt-toolkit==3.0.52"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-rbac==2.1.0"", ""snowballstemmer==3.0.1"", ""django-dynamic-fixture==4.0.1"", ""requests-oauthlib==2.0.0"", ""django-crum==0.7.9"", ""social-auth-app-django==5.7.0"", ""vine==5.1.0"", ""iniconfig==2.3.0"", ""algoliasearch==3.0.0"", ""pylint==4.0.4"", ""pytest-django==4.11.1"", ""django-extensions==4.1"", ""pluggy==1.6.0"", ""django-import-export==4.4.0"", ""responses==0.25.8"", ""sphinx==9.1.0"", ""six==1.16.0"", ""charset-normalizer==3.4.4"", ""urllib3==2.6.3"", ""pydocstyle==6.3.0"", ""pylint-plugin-utils==0.9.0"", ""django-log-request-id==2.1.0"", ""greenlet==3.3.0"", ""edx-auth-backends==4.6.2"", ""doc8==2.0.0"", ""django==5.2.10"", ""markupsafe==3.0.3"", ""tqdm==4.67.1"", ""django-clearcache==1.2.1"", ""pyjwt[crypto]==2.10.1"", ""djangoql==0.18.1"", ""diff-cover==4.0.0"", ""tablib==3.9.0"", ""pip==25.2"", ""django-debug-toolbar==6.1.0"", ""typing-extensions==4.15.0"", ""faker==40.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pycparser==2.23"", ""defusedxml==0.7.1"", ""text-unidecode==1.3"", ""jinja2-pluralize==0.3.0"", ""soupsieve==2.8.1"", ""beautifulsoup4==4.14.3"", ""edx-opaque-keys==3.0.0"", ""psutil==7.2.1"", ""celery==5.6.2"", ""django-simple-history==3.11.0"", ""python-dateutil==2.9.0.post0"", ""pytz==2025.2"", ""alabaster==1.0.0"", ""pydata-sphinx-theme==0.15.4"", ""click==8.3.1"", ""edx-django-release-util==1.5.0"", ""h11==0.16.0"", ""wcwidth==0.2.14"", ""cffi==2.0.0"", ""django-model-utils==5.0.0"", ""numpy==2.4.1"", ""pyproject-hooks==1.2.0"", ""zope-interface==8.2"", ""filelock==3.4.2"", ""pytest==9.0.2"", ""requests==2.32.5"", ""platformdirs==2.4.1"", ""wheel==0.45.1"", ""nh3==0.3.2"", ""django-celery-results==2.6.0"", ""jsonschema-specifications==2025.9.1"", ""backoff==1.10.0"", ""dill==0.4.0"", ""dnspython==2.8.0"", ""pylint-django==2.7.0"", ""tox==4.34.1"", ""pyparsing==3.0.7"", ""edx-django-utils==8.0.1"", ""tzlocal==5.3.1"", ""virtualenv==20.36.1"", ""referencing==0.37.0"", ""py==1.11.0"", ""anyio==4.12.1"", ""pynacl==1.6.2"", ""sniffio==1.3.1"", ""sphinxcontrib-applehelp==2.0.0"", ""distlib==0.3.4"", ""rpds-py==0.30.0"", ""zope-event==6.1"", ""edx-toggles==5.4.1"", ""ply==3.11"", ""isort==7.0.0"", ""distlib==0.4.0"", ""gevent==25.9.1"", ""virtualenv==20.13.1"", ""idna==3.11"", ""django-cors-headers==4.9.0"", ""toml==0.10.2"", ""tox-battery==0.6.1"", ""django-waffle==5.0.0"", ""factory-boy==3.3.3"", ""lxml-html-clean==0.4.3"", ""sphinxcontrib-jsmath==1.0.1"", ""pydantic-core==2.41.5"", ""scipy==1.17.0"", ""packaging==25.0"", ""pip-tools==7.5.2"", ""code-annotations==2.3.0"", ""analytics-python==1.4.post1"", ""cachetools==6.2.4"", ""drf-spectacular==0.29.0"", ""python-slugify==8.0.4"", ""build==1.4.0"", ""typeguard==4.4.4"", ""sphinx-book-theme==1.1.4"", ""jsonfield==3.2.0"", ""openai==1.13.3"", ""joblib==1.5.3"", ""cryptography==46.0.3"", ""pluggy==1.0.0"", ""mccabe==0.7.0"", ""annotated-types==0.7.0"", ""stevedore==5.6.0"", ""jsonfield2==4.0.0.post0"", ""tzdata==2025.3"", ""distro==1.9.0"", ""sqlparse==0.5.5"", ""edx-celeryutils==1.4.0"", ""docutils==0.21.2"", ""pytest-cov==7.0.0"", ""social-auth-core==4.8.3"", ""drf-jwt==1.19.2"", ""gunicorn==23.0.0"", ""uritemplate==4.2.0"", ""pyproject-api==1.10.0"", ""certifi==2026.1.4"", ""babel==2.17.0"", ""diff-match-patch==20241021"", ""path==16.16.0"", ""edx-rest-api-client==6.2.0"", ""scikit-learn==1.8.0"", ""edx-i18n-tools==1.9.0"", ""django-config-models==2.9.0"", ""amqp==5.3.1"", ""pymongo==4.16.0"", ""mysqlclient==2.2.7"", ""typing-inspection==0.4.2"", ""astroid==4.0.3"", ""chardet==5.2.0"", ""restructuredtext-lint==2.0.2"", ""pydantic==2.12.5"", ""ddt==1.7.2"", ""tox==3.24.5"", ""imagesize==1.4.1"", ""readme-renderer==44.0"", ""click-plugins==1.1.1.2"", ""coverage[toml]==7.13.1"", ""click-didyoumean==0.3.1"", ""attrs==25.4.0"", ""jinja2==3.1.6"", ""lxml[html-clean]==6.0.2"", ""xlsxwriter==3.2.9"", ""click-repl==0.3.0"", ""zipp==3.23.0"", ""pygments==2.19.2"", ""click-log==0.4.0"", ""colorama==0.4.6"", ""sphinxcontrib-serializinghtml==2.0.0"", ""more-itertools==10.8.0"", ""pymemcache==4.0.0"", ""pylint-celery==0.3"", ""pycodestyle==2.14.0"", ""inflect==7.5.0"", ""redis==7.1.0"", ""setuptools==80.9.0"", ""sphinxcontrib-devhelp==2.0.0"", ""kombu==5.6.2"", ""djangorestframework==3.16.1"", ""platformdirs==4.5.1""]",22,"[""pylint-django"", ""django-celery-results"", ""edx-opaque-keys"", ""edx-rbac"", ""edx-drf-extensions"", ""edx-rest-api-client"", ""edx-django-utils"", ""pytest-django"", ""django-extensions"", ""factory-boy"", ""edx-auth-backends"", ""social-auth-app-django"", ""djangorestframework"", ""django-debug-toolbar"", ""django-cors-headers"", ""django-config-models"", ""code-annotations"", ""edx-django-release-util"", ""edx-toggles"", ""edx-i18n-tools"", ""edx-celeryutils"", ""django-waffle""]",30,"[""pylint-django"", ""django-celery-results"", ""django-model-utils"", ""edx-opaque-keys"", ""edx-rbac"", ""edx-drf-extensions"", ""edx-rest-api-client"", ""edx-django-utils"", ""pytest-django"", ""django-simple-history"", ""django-extensions"", ""factory-boy"", ""edx-auth-backends"", ""social-auth-app-django"", ""djangorestframework"", ""django-debug-toolbar"", ""django-cors-headers"", ""django-config-models"", ""jsonfield"", ""django-dynamic-fixture"", ""djangorestframework-xml"", ""code-annotations"", ""edx-django-release-util"", ""edx-toggles"", ""drf-jwt"", ""edx-i18n-tools"", ""edx-celeryutils"", ""rules"", ""django-waffle"", ""django-crum""]",18,"[""django-cors-headers"", ""edx-django-release-util"", ""edx-toggles"", ""django-celery-results"", ""edx-opaque-keys"", ""edx-i18n-tools"", ""edx-celeryutils"", ""edx-rbac"", ""django-config-models"", ""edx-auth-backends"", ""django-extensions"", ""edx-drf-extensions"", ""edx-rest-api-client"", ""edx-django-utils"", ""social-auth-app-django"", ""django-waffle"", ""code-annotations"", ""django-debug-toolbar""]",False,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,False,True,True,True,True,True,83,"{""total_duration"": ""14313 minutes 22 seconds"", ""checks"": [{""name"": ""build (3.12, django52)"", ""duration"": ""5 minutes 32 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 59 seconds""}, {""name"": ""check migration for MySql8 (ubuntu-latest, 3.12)"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2019-12-10 15:58:48,master,"A Django-based microservice for handling Enterprise catalogs, associating enterprise customers with curated courses from the full course catalog.",48467,28,True,False,False,False,False,False,False,2026-04-30 15:38:34,GNU AGPLv3,20,True,0,0,0,0,8738,1433709,2528,True,True,False,False,True,False,False,,openedx,9,['https://travis-ci.com/edx/enterprise-catalog: 404'],False,"['https://travis-ci.com/edx/enterprise-catalog.svg?branch=master', 'http://codecov.io/github/edx/enterprise-catalog/coverage.svg?branch=master', 'http://codecov.io/github/edx/enterprise-catalog?branch=master', 'https://github.com/openedx/enterprise-catalog/blob/master/LICENSE', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://openedx.slack.com/messages/general/', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-proctoring,,,,True,2026-06-01,False,False,False,False,158,0,[],0,{},0,17,"{""babel-polyfill"": ""^6.26.0"", ""eslint"": ""^5.9.0"", ""eslint-config-edx"": ""^4.0.4"", ""eslint-config-edx-es5"": ""^4.0.1"", ""eslint-plugin-jsx-a11y"": ""^6.5.1"", ""gulp"": ""4.0.0"", ""gulp-karma"": ""0.0.1"", ""jasmine-core"": ""^2.8.0"", ""karma"": ""^0.13.0"", ""karma-chrome-launcher"": ""^0.2.0"", ""karma-coverage"": ""^1.1.1"", ""karma-jasmine"": ""^0.3.6"", ""karma-jasmine-jquery-2"": ""latest"", ""karma-phantomjs-launcher"": ""^1.0.4"", ""karma-sinon"": ""^1.0.5"", ""phantomjs-prebuilt"": ""^2.1.14"", ""sinon"": ""^3.2.1""}",{},73,"[""edx-rest-api-client==6.2.0"", ""click-plugins==1.1.1.2"", ""drf-jwt==1.19.2"", ""code-annotations==2.3.2"", ""tzdata==2025.3"", ""xblock==5.3.0"", ""prompt-toolkit==3.0.52"", ""python-dateutil==2.9.0.post0"", ""cryptography==46.0.5"", ""pyjwt[crypto]==2.12.0"", ""certifi==2026.2.25"", ""edx-ccx-keys==2.0.2"", ""idna==3.11"", ""six==1.17.0"", ""appdirs==1.4.4"", ""asgiref==3.11.1"", ""django-waffle==5.0.0"", ""fastavro==1.12.1"", ""event-tracking==3.3.0"", ""typing-extensions==4.15.0"", ""dnspython==2.8.0"", ""click==8.3.1"", ""edx-drf-extensions==10.6.0"", ""django-ipware==7.0.1"", ""fs==2.4.16"", ""markupsafe==3.0.3"", ""lxml==6.0.2"", ""edx-opaque-keys[django]==3.1.0"", ""pycparser==3.0"", ""django==5.2.12"", ""amqp==5.3.1"", ""pyyaml==6.0.3"", ""django-simple-history==3.11.0"", ""edx-django-utils==8.0.1"", ""mako==1.3.10"", ""billiard==4.2.4"", ""sqlparse==0.5.5"", ""django-webpack-loader==0.7.0"", ""django-model-utils==5.0.0"", ""text-unidecode==1.3"", ""django-crum==0.7.9"", ""pycryptodomex==3.23.0"", ""kombu==5.6.2"", ""charset-normalizer==3.4.5"", ""click-didyoumean==0.3.1"", ""edx-when==3.2.1"", ""packaging==26.0"", ""rules==3.5"", ""vine==5.1.0"", ""semantic-version==2.10.0"", ""stevedore==5.7.0"", ""jsonfield==3.2.0"", ""webob==1.8.9"", ""djangorestframework==3.16.1"", ""psutil==7.2.2"", ""pynacl==1.6.2"", ""celery==5.6.2"", ""cffi==2.0.0"", ""requests==2.32.5"", ""wcwidth==0.6.0"", ""openedx-events==10.5.0"", ""python-ipware==3.0.0"", ""attrs==25.4.0"", ""simplejson==3.20.2"", ""python-slugify==8.0.4"", ""web-fragments==4.0.0"", ""edx-toggles==5.4.1"", ""pytz==2026.1.post1"", ""jinja2==3.1.6"", ""urllib3==2.6.3"", ""tzlocal==5.3.1"", ""pymongo==4.16.0"", ""click-repl==0.3.0""]",141,"[""virtualenv==21.2.0"", ""drf-jwt==1.19.2"", ""python-discovery==1.1.3"", ""xblock==5.3.0"", ""prompt-toolkit==3.0.52"", ""python-dateutil==2.9.0.post0"", ""pyjwt[crypto]==2.12.0"", ""edx-ccx-keys==2.0.2"", ""django-waffle==5.0.0"", ""event-tracking==3.3.0"", ""django-ipware==7.0.1"", ""edx-lint==6.0.0"", ""pycparser==3.0"", ""platformdirs==4.9.4"", ""pyyaml==6.0.3"", ""mako==1.3.10"", ""billiard==4.2.4"", ""pydantic-core==2.41.5"", ""execnet==2.1.2"", ""coverage[toml]==7.13.4"", ""pynacl==1.6.2"", ""python-slugify==8.0.4"", ""pytest-xdist==3.8.0"", ""jinja2==3.1.6"", ""tzlocal==5.3.1"", ""pylint-django==2.7.0"", ""docutils==0.22.4"", ""httmock==1.4.0"", ""pylint-plugin-utils==0.9.0"", ""pycodestyle==2.14.0"", ""coverage==7.13.4"", ""certifi==2026.2.25"", ""diff-cover==10.2.0"", ""lxml-html-clean==0.4.4"", ""testfixtures==11.0.0"", ""fastavro==1.12.1"", ""typing-extensions==4.15.0"", ""build==1.4.0"", ""annotated-types==0.7.0"", ""django-simple-history==3.11.0"", ""edx-django-utils==8.0.1"", ""pymongo==4.16.0"", ""pytest-django==4.12.0"", ""isort==8.0.1"", ""django-model-utils==5.0.0"", ""click-didyoumean==0.3.1"", ""filelock==3.25.2"", ""semantic-version==2.10.0"", ""jsonfield==3.2.0"", ""wcwidth==0.6.0"", ""chardet==7.1.0"", ""attrs==25.4.0"", ""python-ipware==3.0.0"", ""path==16.16.0"", ""lxml[html-clean]==6.0.2"", ""pydantic==2.12.5"", ""mock==5.2.0"", ""web-fragments==4.0.0"", ""urllib3==2.6.3"", ""freezegun==1.5.5"", ""click-repl==0.3.0"", ""pluggy==1.6.0"", ""rstcheck==6.2.5"", ""tox==4.49.1"", ""edx-rest-api-client==6.2.0"", ""pylint==4.0.5"", ""rstcheck-core==1.2.2"", ""wheel==0.46.3"", ""click-plugins==1.1.1.2"", ""code-annotations==2.3.2"", ""tzdata==2025.3"", ""dill==0.4.1"", ""pytest-cov==7.0.0"", ""distlib==0.4.0"", ""ddt==1.7.2"", ""idna==3.11"", ""asgiref==3.11.1"", ""markdown-it-py==4.0.0"", ""astroid==4.0.4"", ""fs==2.4.16"", ""markupsafe==3.0.3"", ""edx-opaque-keys[django]==3.1.0"", ""annotated-doc==0.0.4"", ""colorama==0.4.6"", ""rich==14.3.3"", ""sqlparse==0.5.5"", ""django-webpack-loader==0.7.0"", ""django-crum==0.7.9"", ""kombu==5.6.2"", ""charset-normalizer==3.4.5"", ""edx-when==3.2.1"", ""rules==3.5"", ""packaging==26.0"", ""psutil==7.2.2"", ""cffi==2.0.0"", ""pydocstyle==6.3.0"", ""polib==1.2.0"", ""openedx-events==10.5.0"", ""edx-toggles==5.4.1"", ""httpretty==1.1.4"", ""mccabe==0.7.0"", ""faker==40.11.0"", ""mdurl==0.1.2"", ""tomli-w==1.2.0"", ""cachetools==7.0.5"", ""edx-i18n-tools==2.0.0"", ""typing-inspection==0.4.2"", ""cryptography==46.0.5"", ""six==1.17.0"", ""pyproject-hooks==1.2.0"", ""typer==0.24.1"", ""appdirs==1.4.4"", ""snowballstemmer==3.0.1"", ""click==8.3.1"", ""dnspython==2.8.0"", ""edx-drf-extensions==10.6.0"", ""lxml==6.0.2"", ""factory-boy==3.3.3"", ""django==5.2.12"", ""path-py==12.5.0"", ""pylint-celery==0.3"", ""amqp==5.3.1"", ""shellingham==1.5.4"", ""text-unidecode==1.3"", ""pycryptodomex==3.23.0"", ""vine==5.1.0"", ""pip-tools==7.5.3"", ""pytest==9.0.2"", ""webob==1.8.9"", ""responses==0.26.0"", ""stevedore==5.7.0"", ""pyproject-api==1.10.0"", ""pygments==2.19.2"", ""djangorestframework==3.16.1"", ""celery==5.6.2"", ""requests==2.32.5"", ""tomlkit==0.14.0"", ""simplejson==3.20.2"", ""pytz==2026.1.post1"", ""click-log==0.4.0"", ""iniconfig==2.3.0""]",16,"[""django-waffle"", ""xblock"", ""edx-when"", ""event-tracking"", ""factory-boy"", ""pytest-django"", ""django-webpack-loader"", ""pylint-django"", ""djangorestframework"", ""web-fragments"", ""edx-django-utils"", ""edx-rest-api-client"", ""edx-i18n-tools"", ""edx-toggles"", ""edx-drf-extensions"", ""code-annotations""]",23,"[""pytest-django"", ""factory-boy"", ""pylint-django"", ""web-fragments"", ""drf-jwt"", ""edx-toggles"", ""code-annotations"", ""edx-when"", ""django-webpack-loader"", ""django-crum"", ""django-simple-history"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""django-waffle"", ""xblock"", ""djangorestframework"", ""edx-django-utils"", ""django-model-utils"", ""jsonfield"", ""event-tracking"", ""edx-rest-api-client"", ""django-ipware"", ""rules""]",11,"[""django-waffle"", ""xblock"", ""edx-when"", ""event-tracking"", ""web-fragments"", ""edx-django-utils"", ""edx-rest-api-client"", ""edx-i18n-tools"", ""edx-toggles"", ""edx-drf-extensions"", ""code-annotations""]",False,,True,False,True,True,False,True,True,True,True,False,True,True,True,True,True,True,True,True,True,True,True,39,"{""total_duration"": ""1 minutes 21 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, 20, django42-drflatest)"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, django52-drflatest)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, quality)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, translations-django52)"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, translations-django42)"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, js_lint)"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, js_tests)"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Test (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, rst_validation)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, pii_check)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, version_check)"", ""duration"": ""0 minutes 34 seconds""}]}",Other,2015-06-08 13:38:04,master,,12053,95,True,False,False,False,False,False,False,2026-05-30 15:16:05,GNU AGPLv3,11,True,0,0,56727,235711,6736,1099322,0,True,True,True,True,True,True,True,@edx/edx-proctoring,openedx,6,['https://docs.openedx.org/en/latest/educators/concepts/proctored_exams/proctored_exams_overview.html: 404'],True,"['https://img.shields.io/pypi/v/edx-proctoring.svg', 'https://pypi.python.org/pypi/edx-proctoring/', 'https://github.com/openedx/edx-proctoring/workflows/Python%20CI/badge.svg', 'https://github.com/openedx/edx-proctoring/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/gh/edx/edx-proctoring/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/edx-proctoring', 'https://img.shields.io/pypi/pyversions/edx-proctoring.svg', 'https://img.shields.io/github/license/edx/django-component-views.svg', 'https://github.com/openedx/edx-proctoring/blob/master/LICENSE.txt', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help']",True,True,False,False,,,True,,,0,False,True,False,True,,False,edx-proctoring,['3.12'],https://github.com/openedx/edx-proctoring,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-filters,,,,True,2026-06-01,True,True,False,False,120,0,[],0,,0,0,,,8,"[""django==5.2.14"", ""stevedore==5.7.0"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""asgiref==3.11.1"", ""pymongo==4.17.0"", ""dnspython==2.8.0"", ""edx-opaque-keys[django]==4.0.0""]",120,"[""coverage[toml]==7.14.0"", ""sphinx-book-theme==1.2.0"", ""jeepney==0.9.0"", ""starlette==1.0.0"", ""pathspec==1.1.1"", ""ddt==1.7.2"", ""jinja2==3.1.6"", ""requests==2.33.1"", ""iniconfig==2.3.0"", ""cachetools==7.1.1"", ""dill==0.4.1"", ""imagesize==2.0.0"", ""nh3==0.3.5"", ""packaging==26.2"", ""pytest==9.0.3"", ""docutils==0.21.2"", ""cryptography==48.0.0"", ""build==1.5.0"", ""django==5.2.14"", ""isort==8.0.1"", ""mccabe==0.7.0"", ""secretstorage==3.5.0"", ""readme-renderer==44.0"", ""asgiref==3.11.1"", ""pytest-cov==7.1.0"", ""markupsafe==3.0.3"", ""python-slugify==8.0.4"", ""sphinxcontrib-htmlhelp==2.1.0"", ""platformdirs==4.9.6"", ""urllib3==2.7.0"", ""alabaster==1.0.0"", ""pylint==4.0.5"", ""sphinx-copybutton==0.5.2"", ""jaraco-classes==3.4.0"", ""pytest-django==4.12.0"", ""chardet==7.4.3"", ""h11==0.16.0"", ""six==1.17.0"", ""pycodestyle==2.14.0"", ""roman-numerals==4.1.0"", ""twine==6.2.0"", ""sphinxcontrib-mermaid==2.0.2"", ""attrs==26.1.0"", ""certifi==2026.4.22"", ""sphinx-autobuild==2025.8.25"", ""astroid==4.0.4"", ""tox==4.53.1"", ""pylint-plugin-utils==0.9.0"", ""filelock==3.29.0"", ""more-itertools==11.0.2"", ""cffi==2.0.0"", ""pluggy==1.6.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinx==9.1.0"", ""click-log==0.4.0"", ""django-stubs-ext==6.0.4"", ""restructuredtext-lint==2.0.2"", ""babel==2.18.0"", ""pydata-sphinx-theme==0.16.1"", ""uvicorn==0.46.0"", ""diff-cover==10.2.0"", ""setuptools==82.0.1"", ""soupsieve==2.8.3"", ""text-unidecode==1.3"", ""tomli-w==1.2.0"", ""scriv==1.8.0"", ""mdurl==0.1.2"", ""ast-serialize==0.3.0"", ""pyyaml==6.0.3"", ""sphinxcontrib-applehelp==2.0.0"", ""mypy==2.0.0"", ""snowballstemmer==3.0.1"", ""doc8==2.0.0"", ""beautifulsoup4==4.14.3"", ""idna==3.14"", ""pyproject-api==1.10.0"", ""pymongo==4.17.0"", ""pip-tools==7.5.3"", ""code-annotations==3.0.0"", ""dnspython==2.8.0"", ""charset-normalizer==3.4.7"", ""edx-opaque-keys[django]==4.0.0"", ""wheel==0.47.0"", ""markdown-it-py==4.2.0"", ""virtualenv==21.3.1"", ""rich==15.0.0"", ""accessible-pygments==0.0.5"", ""pyproject-hooks==1.2.0"", ""jaraco-functools==4.4.0"", ""django-stubs==6.0.4"", ""tomlkit==0.15.0"", ""requests-toolbelt==1.0.0"", ""edx-lint==6.1.0"", ""websockets==16.0"", ""sphinxcontrib-devhelp==2.0.0"", ""docutils==0.22.4"", ""id==1.6.1"", ""python-discovery==1.3.0"", ""watchfiles==1.1.1"", ""distlib==0.4.0"", ""mypy-extensions==1.1.0"", ""typing-extensions==4.15.0"", ""sqlparse==0.5.5"", ""pip==26.1.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""keyring==25.7.0"", ""colorama==0.4.6"", ""pylint-django==2.7.0"", ""pycparser==3.0"", ""anyio==4.13.0"", ""pylint-celery==0.3"", ""ruff==0.15.12"", ""stevedore==5.7.0"", ""click==8.3.3"", ""jaraco-context==6.1.2"", ""pygments==2.20.0"", ""types-pyyaml==6.0.12.20260510"", ""rfc3986==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""librt==0.11.0""]",3,"[""pytest-django"", ""code-annotations"", ""pylint-django""]",3,"[""pytest-django"", ""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,10,"{""total_duration"": ""2018 minutes 52 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, py311-django52)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, py311-django42)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2021-04-21 17:24:26,main,Open edX filters from the Hooks Extensions Framework ,496,26,True,False,False,False,False,False,False,2026-06-01 01:09:57,GNU AGPLv3,12,True,0,0,0,0,3421,139744,0,True,True,False,False,True,False,False,,openedx,0,[],True,"['https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://docs.openedx.org/projects/openedx-filters/en/latest/', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-filters/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-filters', 'https://img.shields.io/pypi/v/openedx-filters.svg', 'https://pypi.python.org/pypi/openedx-filters/', 'https://github.com/openedx/openedx-filters/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-filters/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-filters/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-filters?branch=main', 'https://readthedocs.org/projects/openedx-filters/badge/?version=latest', 'https://openedx-filters.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/openedx-filters.svg', 'https://img.shields.io/github/license/openedx/openedx-filters.svg', 'https://github.com/openedx/openedx-filters/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-filters,"['3', '3.12']",https://github.com/openedx/openedx-filters,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/django-wiki,,,,True,2026-06-01,True,True,False,False,62,0,[],0,,0,0,,,12,"[""bleach[css]==6.2.0"", ""sorl-thumbnail==12.11.0"", ""tinycss2==1.4.0"", ""sqlparse==0.5.3"", ""django-classy-tags==4.1.0"", ""webencodings==0.5.1"", ""django==4.2.21"", ""django-js-asset==3.1.2"", ""markdown==3.8"", ""django-sekizai==4.1.0"", ""asgiref==3.8.1"", ""django-mptt==0.17.0""]",62,"[""alabaster==1.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pyproject-hooks==1.2.0"", ""cachetools==5.5.2"", ""tox==4.25.0"", ""requests==2.32.3"", ""packaging==25.0"", ""coverage[toml]==7.8.0"", ""setuptools==80.4.0"", ""chardet==5.2.0"", ""soupsieve==2.7"", ""sorl-thumbnail==12.11.0"", ""sphinx-book-theme==1.1.4"", ""imagesize==1.4.1"", ""django-mptt==0.17.0"", ""asgiref==3.8.1"", ""typing-extensions==4.13.2"", ""iniconfig==2.1.0"", ""accessible-pygments==0.0.5"", ""jinja2==3.1.6"", ""sphinxcontrib-applehelp==2.0.0"", ""beautifulsoup4==4.13.4"", ""urllib3==2.2.3"", ""sphinx==8.2.3"", ""django-js-asset==3.1.2"", ""markupsafe==3.0.2"", ""pip==24.2"", ""babel==2.17.0"", ""docutils==0.21.2"", ""tinycss2==1.4.0"", ""click==8.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""colorama==0.4.6"", ""pytest-cov==6.1.1"", ""idna==3.10"", ""distlib==0.3.9"", ""django-classy-tags==4.1.0"", ""pytest-django==4.11.1"", ""webencodings==0.5.1"", ""snowballstemmer==3.0.1"", ""filelock==3.18.0"", ""sphinxcontrib-devhelp==2.0.0"", ""django-sekizai==4.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""roman-numerals-py==3.1.0"", ""wheel==0.45.1"", ""pluggy==1.5.0"", ""bleach[css]==6.2.0"", ""build==1.2.2.post1"", ""platformdirs==4.3.8"", ""pygments==2.19.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sqlparse==0.5.3"", ""virtualenv==20.31.2"", ""certifi==2025.4.26"", ""pydata-sphinx-theme==0.15.4"", ""pytest==8.3.5"", ""django==4.2.21"", ""charset-normalizer==3.4.2"", ""markdown==3.8"", ""pip-tools==7.4.1"", ""pyproject-api==1.9.1""]",4,"[""pytest-django"", ""django-js-asset"", ""django-sekizai"", ""django-classy-tags""]",6,"[""sorl-thumbnail"", ""pytest-django"", ""django-sekizai"", ""django-mptt"", ""django-js-asset"", ""django-classy-tags""]",2,"[""django-js-asset"", ""django-sekizai""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,5,"{""total_duration"": """", ""checks"": []}",Other,2012-08-25 16:00:34,edx_release,A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.,4377,28,True,False,False,False,True,False,False,2026-05-30 15:06:24,,2,True,15119,0,77767,56696,933,272038,0,False,False,False,False,False,False,False,,openedx,1,"['https://github.com/benjaoming/django-wiki/blob/master/TODO.md: 404', 'http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/: 403', 'https://upload.wikimedia.org/wikipedia/commons/8/88/MediaWiki_database_schema_1-19_%28r102798%29.png: 403', 'http://www.edxonline.org/: HTTPConnectionPool(host=\'www.edxonline.org\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'www.edxonline.org\', port=80): Failed to resolve \'www.edxonline.org\' ([Errno -2] Name or service not known)""))']",False,"['http://wiki.overtag.dk', 'http://code.google.com/p/django-simple-wiki/', 'http://www.djangoproject.com', 'http://south.aeracode.org/', 'https://github.com/waylan/Python-Markdown', 'https://github.com/django-mptt/django-mptt', 'https://github.com/ojii/django-sekizai/', 'https://github.com/sorl/sorl-thumbnail', 'https://github.com/divio/django-cms']",True,True,False,False,,,False,,,,False,True,False,True,,False,openedx-django-wiki,['3.12'],https://github.com/openedx/django-wiki,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/modular-learning,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""246131 minutes 30 seconds"", ""checks"": [{""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2022-11-15 22:03:32,main,,5,3,True,False,False,False,False,False,False,2024-12-16 20:07:52,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/orgs/openedx/projects/36', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575152670/Approach+Memo+Modular+Learning']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/wg-devops,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": """", ""checks"": []}",Other,2023-01-03 20:41:05,master,Issue repository for the DevOps Working Group,15,3,True,False,False,False,False,False,False,2025-10-30 15:18:16,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://discuss.openedx.org/c/working-groups/devops', 'https://app.slack.com/client/T02SNA1T6/C04J9GTLHH8', 'https://openedx.org/slack', 'https://github.com/orgs/openedx/projects/42', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3620044867/DevOps+Working+Group', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/46793351/Open+edX+Working+Groups', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/1022099494/Build-Test-Release+Working+Group', 'https://discuss.openedx.org/c/working-groups/build-test-release', 'https://github.com/orgs/openedx/projects/28/views/15', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3583016961/Developer+Experience+Working+Group', 'https://discuss.openedx.org/c/working-groups/dev-experience', 'https://github.com/orgs/openedx/projects/37', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3655008783/Large+Instances+-+DevOps+Sub-Working+Group', 'https://discuss.openedx.org/t/deploying-open-edx-on-kubernetes-using-helm/8771', 'https://discuss.openedx.org/c/operators/7', 'https://openedx.slack.com/channels/wg-devops', 'https://github.com/orgs/openedx/projects/42/views/2', 'https://github.com/openedx/openedx-k8s-harmony', 'https://github.com/overhangio/tutor/', 'https://docs.tutor.overhang.io/', 'https://github.com/orgs/overhangio/projects/4', 'https://discuss.openedx.org/tag/tutor', 'https://discuss.openedx.org/t/tutor-maintainers/7287', 'https://discuss.openedx.org', 'https://github.com/openedx/wg-devops/issues', 'https://github.com/openedx/wg-devops/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue', 'https://github.com/openedx/build-test-release-wg/issues?q=is%3Aopen+is%3Aissue+label%3Abug', 'https://github.com/openedx/wg-developer-experience/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue', 'https://github.com/orgs/openedx/projects/42/views/3', 'https://github.com/orgs/overhangio/projects/4/views/1?filterQuery=-label%3A%22good+first+issue%22', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-backstage,,,,False,2026-06-01,True,True,False,False,11,0,,0,{},0,11,"{""@backstage/cli"": ""^0.36.0"", ""@backstage/cli-defaults"": ""^0.1.0"", ""@backstage/e2e-test-utils"": ""^0.1.2"", ""@jest/environment-jsdom-abstract"": ""^30.0.0"", ""@playwright/test"": ""^1.32.3"", ""@types/jest"": ""^30.0.0"", ""jest"": ""^30.2.0"", ""jsdom"": ""^27.1.0"", ""node-gyp"": ""^10.0.0"", ""prettier"": ""^2.3.2"", ""typescript"": ""~5.8.0""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,True,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""80913 minutes 25 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 15 seconds""}]}",Other,2022-05-27 13:28:48,main,The openedx instance of Backstage for helping maintainers,1918,7,True,False,False,False,False,False,False,2026-03-25 15:11:48,Apache License 2.0,2,False,0,3257,1850,1005,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://backstage.io', 'https://github.com/nvm-sh/nvm']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/event-tracking,,,,True,2026-06-01,True,True,False,False,98,0,[],0,,0,0,,,43,"[""pytz==2026.2"", ""typing-extensions==4.15.0"", ""attrs==26.1.0"", ""edx-opaque-keys[django]==4.0.0"", ""python-dateutil==2.9.0.post0"", ""sqlparse==0.5.5"", ""click-plugins==1.1.1.2"", ""pyyaml==6.0.3"", ""edx-ccx-keys==2.0.2"", ""tzlocal==5.3.1"", ""click-repl==0.3.0"", ""code-annotations==3.0.0"", ""text-unidecode==1.3"", ""edx-django-utils==8.0.1"", ""psutil==7.2.2"", ""celery==5.6.3"", ""fastavro==1.12.2"", ""markupsafe==3.0.3"", ""kombu==5.6.2"", ""pynacl==1.6.2"", ""vine==5.1.0"", ""asgiref==3.11.1"", ""django==5.2.14"", ""django-waffle==5.0.0"", ""billiard==4.2.4"", ""stevedore==5.8.0"", ""wcwidth==0.7.0"", ""click-didyoumean==0.3.1"", ""edx-toggles==6.0.0"", ""openedx-events==11.2.0"", ""pycparser==3.0"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""jinja2==3.1.6"", ""prompt-toolkit==3.0.52"", ""packaging==26.2"", ""six==1.17.0"", ""python-slugify==8.0.4"", ""dnspython==2.8.0"", ""tzdata==2026.2"", ""amqp==5.3.1"", ""click==8.4.1"", ""pymongo==4.17.0""]",98,"[""idna==3.16"", ""pluggy==1.6.0"", ""urllib3==2.7.0"", ""platformdirs==4.9.6"", ""sqlparse==0.5.5"", ""docutils==0.22.4"", ""ddt==1.7.2"", ""tox==4.54.0"", ""tzlocal==5.3.1"", ""alabaster==1.0.0"", ""click-repl==0.3.0"", ""dill==0.4.1"", ""kombu==5.6.2"", ""sphinxcontrib-devhelp==2.0.0"", ""tomlkit==0.15.0"", ""django==5.2.14"", ""sphinxcontrib-htmlhelp==2.1.0"", ""mock==5.2.0"", ""click-didyoumean==0.3.1"", ""edx-toggles==6.0.0"", ""coverage==7.14.0"", ""pycparser==3.0"", ""cffi==2.0.0"", ""packaging==26.2"", ""python-slugify==8.0.4"", ""amqp==5.3.1"", ""pymongo==4.17.0"", ""pylint==4.0.5"", ""pyproject-api==1.10.0"", ""roman-numerals==4.1.0"", ""click-plugins==1.1.1.2"", ""pytest==9.0.3"", ""edx-ccx-keys==2.0.2"", ""filelock==3.29.0"", ""pylint-plugin-utils==0.9.0"", ""edx-django-utils==8.0.1"", ""pyproject-hooks==1.2.0"", ""markupsafe==3.0.3"", ""astroid==4.0.4"", ""certifi==2026.5.20"", ""wheel==0.47.0"", ""prompt-toolkit==3.0.52"", ""pylint-django==2.7.0"", ""tzdata==2026.2"", ""sphinxcontrib-jsmath==1.0.1"", ""isort==8.0.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""click-log==0.4.0"", ""python-dateutil==2.9.0.post0"", ""pip==26.1.1"", ""pycodestyle==2.14.0"", ""distlib==0.4.0"", ""code-annotations==3.0.0"", ""celery==5.6.3"", ""mccabe==0.7.0"", ""cachetools==7.1.4"", ""vine==5.1.0"", ""pynacl==1.6.2"", ""asgiref==3.11.1"", ""sphinxcontrib-qthelp==2.0.0"", ""django-waffle==5.0.0"", ""billiard==4.2.4"", ""python-discovery==1.3.1"", ""tomli-w==1.2.0"", ""django-crum==0.7.9"", ""jinja2==3.1.6"", ""six==1.17.0"", ""babel==2.18.0"", ""requests==2.34.2"", ""charset-normalizer==3.4.7"", ""pygments==2.20.0"", ""edx-lint==6.1.0"", ""pytz==2026.2"", ""typing-extensions==4.15.0"", ""attrs==26.1.0"", ""edx-opaque-keys[django]==4.0.0"", ""sphinx==9.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""setuptools==82.0.1"", ""imagesize==2.0.0"", ""pyyaml==6.0.3"", ""pylint-celery==0.3"", ""text-unidecode==1.3"", ""psutil==7.2.2"", ""fastavro==1.12.2"", ""virtualenv==21.3.3"", ""wcwidth==0.7.0"", ""openedx-events==11.2.0"", ""coverage[toml]==7.14.0"", ""iniconfig==2.3.0"", ""build==1.5.0"", ""dnspython==2.8.0"", ""pytest-cov==7.1.0"", ""snowballstemmer==3.1.0"", ""pip-tools==7.5.3"", ""click==8.4.1"", ""stevedore==5.8.0"", ""colorama==0.4.6""]",5,"[""pylint-django"", ""code-annotations"", ""edx-django-utils"", ""edx-toggles"", ""django-waffle""]",6,"[""pylint-django"", ""code-annotations"", ""edx-django-utils"", ""edx-toggles"", ""django-waffle"", ""django-crum""]",4,"[""django-waffle"", ""code-annotations"", ""edx-django-utils"", ""edx-toggles""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""4835 minutes 2 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, celery54-django52)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 15 seconds""}]}",Other,2013-09-16 17:57:22,master,a system for tracking events,559,39,True,False,False,False,False,False,False,2026-05-28 20:25:57,GNU AGPLv3,0,True,0,0,0,0,3410,108671,0,False,False,False,False,True,False,False,,openedx,2,"['http://www.edx.org/some/path/1: 404', 'http://www.edx.org/some/path/2: 404']",False,"['http://code.edx.org/', 'http://event-tracking.readthedocs.org/en/latest/', 'https://github.com/openedx/edx-platform/wiki/How-To-Contribute', 'https://groups.google.com/forum/', 'https://github.com/openedx/event-tracking/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/event-tracking/actions?query=workflow%3A%22Python+CI%22']",True,False,False,False,,,False,,,,False,True,False,True,,False,event-tracking,"['3', '3.12']",https://github.com/openedx/event-tracking,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-webhooks,,,,True,2026-06-01,True,True,False,False,118,0,[],0,,0,0,,,52,"[""click-plugins==1.1.1.2"", ""sentry-sdk[flask]==2.59.0"", ""requests-oauthlib==2.0.0"", ""jira==3.10.5"", ""markupsafe==3.0.3"", ""typing-extensions==4.15.0"", ""blinker==1.9.0"", ""billiard==4.2.4"", ""uritemplate==4.2.0"", ""boltons==25.0.0"", ""glom==25.12.0"", ""pyyaml==6.0.3"", ""celery[redis]==5.6.3"", ""click-repl==0.3.0"", ""defusedxml==0.7.1"", ""attrs==26.1.0"", ""tzlocal==5.3.1"", ""jinja2==3.1.6"", ""requests==2.33.1"", ""flask==3.1.3"", ""pycparser==3.0"", ""urllib3==2.7.0"", ""redis==6.4.0"", ""face==26.0.0"", ""cachetools==7.1.1"", ""cffi==2.0.0"", ""oauthlib[signedtoken]==3.3.1"", ""prompt-toolkit==3.0.52"", ""requests-toolbelt==1.0.0"", ""kombu[redis]==5.6.2"", ""itsdangerous==2.2.0"", ""werkzeug==3.1.8"", ""python-dateutil==2.9.0.post0"", ""github3-py==4.0.1"", ""tzdata==2026.2"", ""packaging==26.2"", ""urlobject==3.0.0"", ""gunicorn==26.0.0"", ""amqp==5.3.1"", ""vine==5.1.0"", ""arrow==1.4.0"", ""click-didyoumean==0.3.1"", ""click==8.3.3"", ""flask-sslify==0.1.5"", ""logging-tree==1.10"", ""cryptography==48.0.0"", ""wcwidth==0.7.0"", ""idna==3.14"", ""six==1.17.0"", ""charset-normalizer==3.4.7"", ""pyjwt[crypto]==2.12.1"", ""certifi==2026.4.22""]",118,"[""jira==3.10.5"", ""python-slugify==8.0.4"", ""sphinx==9.1.0"", ""coverage[toml]==7.14.0"", ""blinker==1.9.0"", ""tzlocal==5.3.1"", ""jinja2==3.1.6"", ""requests==2.33.1"", ""flask==3.1.3"", ""pycparser==3.0"", ""pathspec==1.1.1"", ""face==26.0.0"", ""code-annotations==3.0.0"", ""requests-toolbelt==1.0.0"", ""tzdata==2026.2"", ""stevedore==5.7.0"", ""gunicorn==26.0.0"", ""amqp==5.3.1"", ""snowballstemmer==3.0.1"", ""types-requests==2.33.0.20260508"", ""sphinxcontrib-applehelp==2.0.0"", ""mdurl==0.1.2"", ""pytest-cov==7.1.0"", ""click-plugins==1.1.1.2"", ""certifi==2026.4.22"", ""pytest-repeat==0.9.4"", ""readme-renderer==44.0"", ""mccabe==0.7.0"", ""pylint-plugin-utils==0.9.0"", ""pylint-pytest==1.1.8"", ""imagesize==2.0.0"", ""schema==0.7.8"", ""glom==25.12.0"", ""pyyaml==6.0.3"", ""celery[redis]==5.6.3"", ""click-repl==0.3.0"", ""pygments==2.20.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""wheel==0.47.0"", ""alabaster==1.0.0"", ""pytest==9.0.3"", ""pytz==2026.2"", ""cachetools==7.1.1"", ""cffi==2.0.0"", ""oauthlib[signedtoken]==3.3.1"", ""kombu[redis]==5.6.2"", ""ast-serialize==0.3.0"", ""itsdangerous==2.2.0"", ""pytest-mock==3.15.1"", ""werkzeug==3.1.8"", ""isort==8.0.1"", ""urlobject==3.0.0"", ""edx-lint==6.1.0"", ""markdown-it-py==4.2.0"", ""types-cachetools==7.0.0.20260503"", ""vine==5.1.0"", ""logging-tree==1.10"", ""click-didyoumean==0.3.1"", ""flask-sslify==0.1.5"", ""cryptography==48.0.0"", ""wcwidth==0.7.0"", ""six==1.17.0"", ""charset-normalizer==3.4.7"", ""sentry-sdk[flask]==2.59.0"", ""requests-oauthlib==2.0.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-httpdomain==2.0.0"", ""typing-extensions==4.15.0"", ""nh3==0.3.5"", ""defusedxml==0.7.1"", ""mypy==2.0.0"", ""roman-numerals==4.1.0"", ""types-pyyaml==6.0.12.20260510"", ""attrs==26.1.0"", ""iniconfig==2.3.0"", ""urllib3==2.7.0"", ""mypy-extensions==1.1.0"", ""redis==6.4.0"", ""setuptools==82.0.1"", ""python-dateutil==2.9.0.post0"", ""python-dotenv==1.2.2"", ""docutils==0.22.4"", ""build==1.5.0"", ""tomlkit==0.15.0"", ""pylint==4.0.5"", ""pytest==8.2.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""prompt-toolkit==3.0.52"", ""text-unidecode==1.3"", ""freezegun==1.5.5"", ""astroid==4.0.4"", ""pyproject-hooks==1.2.0"", ""scriv==1.8.0"", ""sphinxcontrib-jsmath==1.0.1"", ""platformdirs==4.9.6"", ""billiard==4.2.4"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinx-rtd-theme==3.1.0"", ""uritemplate==4.2.0"", ""boltons==25.0.0"", ""requests-mock==1.12.1"", ""click-log==0.4.0"", ""babel==2.18.0"", ""pluggy==1.6.0"", ""pip-tools==7.5.3"", ""dill==0.4.1"", ""github3-py==4.0.1"", ""pylint-django==2.7.0"", ""packaging==26.2"", ""librt==0.11.0"", ""sphinxcontrib-jquery==4.1"", ""arrow==1.4.0"", ""click==8.3.3"", ""pylint-celery==0.3"", ""idna==3.14"", ""pip==26.1.1"", ""pyjwt[crypto]==2.12.1""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",True,,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,True,False,False,True,True,True,3,"{""total_duration"": ""1992 minutes 29 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2014-07-09 17:08:56,master,Webhooks for the Open edX GitHub and JIRA,1625,21,True,False,False,False,False,False,False,2026-06-01 00:43:06,Apache License 2.0,2,True,0,825,4319,0,5296,213379,0,False,False,False,False,True,False,False,,openedx,0,"['https://openedx-webhooks.herokuapp.com: 401', 'https://git.heroku.com/openedx-webhooks-staging.git: 405', 'https://github.com/organizations/: 404', 'https://openedx-webhooks.herokuapp.com/github/hook-receiver: 405', 'https://openedx.org/cla: 403']",False,"['https://dashboard.heroku.com/apps/openedx-webhooks-staging/resources', 'https://github.com/openedx/repo-tools-data-schema', 'https://github.com/', 'https://github.com/openedx/openedx-webhooks/issues/277', 'https://github.com/openedx/openedx-webhooks/issues/279', 'https://github.com/openedx/openedx-webhooks/issues/280', 'https://github.com/openedx/openedx-webhooks/issues/227', 'https://github.com/openedx/repo-tools/tree/master/edx_repo_tools/repo_checks', 'http://openedx.org', 'http://heroku.com', 'https://devcenter.heroku.com/articles/heroku-command-line', 'https://devcenter.heroku.com/articles/pipelines', 'https://github.com/openedx/openedx-webhooks/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/openedx-webhooks/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/openedx-webhooks/coverage.svg?branch=master', 'http://codecov.io/github/edx/openedx-webhooks?branch=master', 'https://readthedocs.org/projects/openedx-webhooks/badge/?version=latest', 'http://openedx-webhooks.readthedocs.org/en/latest/']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,True,,False,openedx_webhooks,['3.12'],https://github.com/openedx/openedx_webhooks,False,False,False,False,False,False,False,False,False,[],[],"['python3.12-dev', 'language-pack-en', 'curl', 'python3-pip', 'libssl-dev', 'git-core', 'ca-certificates', 'gnupg', 'python3.12']",[] -openedx/crowdsourcehinter,,,,True,2026-06-01,True,True,False,False,31,0,[],0,,0,0,,,13,"[""markupsafe==3.0.3"", ""python-dateutil==2.9.0.post0"", ""xblock==5.3.0"", ""lxml==6.0.2"", ""pytz==2026.1.post1"", ""fs==2.4.16"", ""appdirs==1.4.4"", ""simplejson==3.20.2"", ""webob==1.8.9"", ""web-fragments==3.1.0"", ""mako==1.3.10"", ""six==1.17.0"", ""pyyaml==6.0.3""]",31,"[""pygments==2.19.2"", ""python-dateutil==2.9.0.post0"", ""xblock==5.3.0"", ""pyproject-hooks==1.2.0"", ""pip==26.0.1"", ""webob==1.8.9"", ""appdirs==1.4.4"", ""simplejson==3.20.2"", ""packaging==26.0"", ""pytest==9.0.2"", ""markupsafe==3.0.3"", ""pycodestyle==2.14.0"", ""pytz==2026.1.post1"", ""flake8==7.3.0"", ""pip-tools==7.5.3"", ""pytest-cov==7.0.0"", ""mako==1.3.10"", ""pyflakes==3.4.0"", ""iniconfig==2.3.0"", ""lxml==6.0.2"", ""wheel==0.46.3"", ""pyyaml==6.0.3"", ""pluggy==1.6.0"", ""build==1.4.0"", ""click==8.3.1"", ""coverage[toml]==7.13.4"", ""fs==2.4.16"", ""web-fragments==3.1.0"", ""mccabe==0.7.0"", ""setuptools==82.0.0"", ""six==1.17.0""]",2,"[""xblock"", ""web-fragments""]",2,"[""xblock"", ""web-fragments""]",2,"[""xblock"", ""web-fragments""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,False,True,False,False,True,False,False,27,"{""total_duration"": ""2116 minutes 31 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 6 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2019-03-08 19:22:50,master,Crowdsource hinter xblock,62889,9,True,False,False,False,False,False,False,2026-06-01 01:07:47,GNU AGPLv3,10,True,2484,0,7468,17676,2246,25891,33,False,True,False,True,True,False,True,,openedx,2,[],False,['https://github.com/openedx/edx-platform/wiki/Installing-a-new-XBlock'],True,True,False,False,,,False,,,,False,False,False,True,,False,crowdsourcehinter-xblock,"['3', '3.12']",https://github.com/openedx/crowdsourcehinter,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-enterprise-public-catalog,,,,False,2026-06-01,False,False,False,False,47,0,,0,{},36,11,"{""@edx/browserslist-config"": ""^1.5.0"", ""@openedx/frontend-build"": ""14.4.2"", ""@edx/typescript-config"": ""1.1.0"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""16.3.0"", ""@testing-library/user-event"": ""14.6.1"", ""glob"": ""7.2.3"", ""husky"": ""6.0.0"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""prettier"": ""2.8.8""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/brand-openedx"": ""^1.2.1"", ""@edx/frontend-component-footer"": ""14.7.1"", ""@edx/frontend-component-header"": ""6.4.0"", ""@edx/frontend-enterprise-catalog-search"": ""11.0.1"", ""@edx/frontend-enterprise-hotjar"": ""7.2.0"", ""@edx/frontend-enterprise-utils"": ""10.0.0"", ""@edx/frontend-platform"": ""^8.3.4"", ""@edx/openedx-atlas"": ""^0.6.2"", ""@openedx/paragon"": ""^22.17.0"", ""algoliasearch"": ""4.24.0"", ""axios"": ""^1.7.9"", ""babel-polyfill"": ""6.26.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.40.0"", ""file-saver"": ""^2.0.5"", ""history"": ""5.3.0"", ""lodash.debounce"": ""4.0.8"", ""lodash.escaperegexp"": ""4.1.2"", ""npm"": ""^8.19.4"", ""postcss-loader"": ""^8.1.1"", ""prop-types"": ""15.8.1"", ""query-string"": ""7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""6.1.0"", ""react-instantsearch-dom"": ""6.40.4"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.29.0"", ""react-router-dom"": ""6.29.0"", ""react-test-renderer"": ""18.3.1"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""2.13.9"", ""redux-logger"": ""3.0.6"", ""regenerator-runtime"": ""0.14.1"", ""style-loader"": ""^4.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,False,True,True,35,"{""total_duration"": ""16496 minutes 22 seconds"", ""checks"": [{""name"": ""build"", ""duration"": ""3 minutes 11 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}]}",Other,2021-03-02 20:49:57,main,"A site for public browsing of enterprise catalogs, also called the Explore Catalog",12673,18,True,False,False,False,False,False,False,2026-05-29 22:39:05,GNU AGPLv3,9,True,0,0,430,202718,1776,0,0,False,False,False,False,False,False,False,@edx/frontend-app-enterprise-public-catalog,openedx,0,"['https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404', 'https://travis-ci.com/edx/frontend-app-enterprise-public-catalog: 404']",False,"['https://explore-catalog.stage.edx.org/', 'https://github.com/openedx/frontend-app-enterprise-public-catalog/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://api.travis-ci.com/edx/frontend-app-enterprise-public-catalog.svg?branch=master', 'https://codecov.io/gh/edx/frontend-app-enterprise-public-catalog/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/frontend-app-enterprise-public-catalog', 'https://img.shields.io/npm/l/@edx/frontend-app-enterprise-public-catalog.svg']",True,True,False,False,,,True,2026-02-22,2025-02-04,2,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/wg-maintenance,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""4345 minutes 3 seconds"", ""checks"": [{""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""72 minutes 1 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""68 minutes 31 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""63 minutes 56 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}]}",Other,2026-04-03 14:53:13,main,A repository for use by the Maintenance working group.,4680,1,True,False,False,False,False,False,False,2026-05-31 06:42:45,,1,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xblock-skill-tagging,,,,True,2026-06-01,True,True,False,False,133,0,[],0,,0,0,,,34,"[""fastavro==1.12.1"", ""boto3==1.42.63"", ""urllib3==2.6.3"", ""django-model-utils==5.0.0"", ""django-crum==0.7.9"", ""sqlparse==0.5.5"", ""s3transfer==0.16.0"", ""openedx-events==10.5.0"", ""lazy==1.6"", ""click==8.3.1"", ""fs-s3fs==1.1.1"", ""pynacl==1.6.2"", ""attrs==25.4.0"", ""typing-extensions==4.15.0"", ""cffi==2.0.0"", ""appdirs==1.4.4"", ""pymongo==4.16.0"", ""openedx-django-pyfs==3.8.0"", ""django==5.2.12"", ""edx-django-utils==8.0.1"", ""jmespath==1.1.0"", ""edx-ccx-keys==2.0.2"", ""dnspython==2.8.0"", ""python-dateutil==2.9.0.post0"", ""pycparser==3.0"", ""edx-opaque-keys[django]==3.1.0"", ""six==1.17.0"", ""fs==2.4.16"", ""stevedore==5.7.0"", ""botocore==1.42.63"", ""openedx-filters==2.1.0"", ""asgiref==3.11.1"", ""psutil==7.2.2"", ""django-waffle==5.0.0""]",133,"[""build==1.4.0"", ""sphinxcontrib-applehelp==2.0.0"", ""iniconfig==2.3.0"", ""pygments==2.19.2"", ""twine==6.2.0"", ""roman-numerals==4.1.0"", ""mccabe==0.7.0"", ""sqlparse==0.5.5"", ""openedx-events==10.5.0"", ""docutils==0.21.2"", ""click==8.3.1"", ""web-fragments==3.1.0"", ""astroid==4.0.4"", ""idna==3.11"", ""platformdirs==4.9.4"", ""certifi==2026.2.25"", ""requests-toolbelt==1.0.0"", ""py==1.11.0"", ""simplejson==3.20.2"", ""appdirs==1.4.4"", ""pylint-celery==0.3"", ""markdown-it-py==4.0.0"", ""pymongo==4.16.0"", ""openedx-django-pyfs==3.8.0"", ""django==5.2.12"", ""doc8==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""alabaster==1.0.0"", ""dill==0.4.1"", ""dnspython==2.8.0"", ""babel==2.18.0"", ""jaraco-classes==3.4.0"", ""requests==2.32.5"", ""fs==2.4.16"", ""filelock==3.25.0"", ""pytz==2026.1.post1"", ""stevedore==5.7.0"", ""openedx-filters==2.1.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""isort==8.0.1"", ""sphinx==9.1.0"", ""virtualenv==21.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pylint-django==2.7.0"", ""fastavro==1.12.1"", ""boto3==1.42.63"", ""diff-cover==10.2.0"", ""edx-lint==5.6.0"", ""pytest-django==4.12.0"", ""tox==3.28.0"", ""cryptography==46.0.5"", ""tomlkit==0.14.0"", ""lazy==1.6"", ""pyproject-hooks==1.2.0"", ""snowballstemmer==3.0.1"", ""pluggy==1.6.0"", ""pydocstyle==6.3.0"", ""fs-s3fs==1.1.1"", ""binaryornot==0.5.0"", ""djangorestframework==3.16.1"", ""pypng==0.20220715.0"", ""arrow==1.4.0"", ""attrs==25.4.0"", ""pip==26.0.1"", ""xblock-sdk==0.13.0"", ""six==1.17.0"", ""pycparser==3.0"", ""lxml[html-clean]==6.0.2"", ""webob==1.8.9"", ""lxml-html-clean==0.4.4"", ""text-unidecode==1.3"", ""botocore==1.42.63"", ""coverage[toml]==7.13.4"", ""secretstorage==3.5.0"", ""asgiref==3.11.1"", ""more-itertools==10.8.0"", ""distlib==0.4.0"", ""mdurl==0.1.2"", ""keyring==25.7.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pylint==4.0.5"", ""polib==1.2.0"", ""wheel==0.46.3"", ""readme-renderer==44.0"", ""pynacl==1.6.2"", ""click-log==0.4.0"", ""typing-extensions==4.15.0"", ""cookiecutter==2.7.1"", ""pytest-cov==7.0.0"", ""cffi==2.0.0"", ""edx-ccx-keys==2.0.2"", ""xblock==5.3.0"", ""chardet==7.0.1"", ""code-annotations==2.3.2"", ""tox-battery==0.6.2"", ""django-waffle==5.0.0"", ""tzdata==2025.3"", ""jaraco-functools==4.4.0"", ""markupsafe==3.0.3"", ""rfc3986==2.0.0"", ""urllib3==2.6.3"", ""setuptools==82.0.0"", ""django-model-utils==5.0.0"", ""django-crum==0.7.9"", ""pyyaml==6.0.3"", ""s3transfer==0.16.0"", ""pytest==9.0.2"", ""id==1.6.1"", ""jeepney==0.9.0"", ""charset-normalizer==3.4.5"", ""lxml==6.0.2"", ""pip-tools==7.5.3"", ""edx-django-utils==8.0.1"", ""pycodestyle==2.14.0"", ""jmespath==1.1.0"", ""jaraco-context==6.1.1"", ""imagesize==2.0.0"", ""jinja2==3.1.6"", ""python-dateutil==2.9.0.post0"", ""edx-opaque-keys[django]==3.1.0"", ""packaging==26.0"", ""pylint-plugin-utils==0.9.0"", ""rich==14.3.3"", ""mako==1.3.10"", ""mock==5.2.0"", ""edx-i18n-tools==1.9.0"", ""restructuredtext-lint==2.0.2"", ""python-discovery==1.1.1"", ""python-slugify==8.0.4"", ""path==16.16.0"", ""nh3==0.3.3"", ""sphinxcontrib-jsmath==1.0.1"", ""psutil==7.2.2""]",10,"[""xblock-sdk"", ""edx-django-utils"", ""code-annotations"", ""pylint-django"", ""pytest-django"", ""web-fragments"", ""edx-i18n-tools"", ""django-waffle"", ""djangorestframework"", ""xblock""]",12,"[""xblock-sdk"", ""edx-django-utils"", ""code-annotations"", ""pylint-django"", ""pytest-django"", ""django-crum"", ""web-fragments"", ""edx-i18n-tools"", ""django-waffle"", ""djangorestframework"", ""django-model-utils"", ""xblock""]",7,"[""xblock-sdk"", ""edx-django-utils"", ""code-annotations"", ""web-fragments"", ""edx-i18n-tools"", ""django-waffle"", ""xblock""]",True,,True,True,True,True,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,21,"{""total_duration"": ""0 minutes 38 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 31 seconds""}]}",Other,2022-12-09 18:15:47,main,,214,16,True,False,False,False,False,False,False,2026-05-31 19:03:59,GNU AGPLv3,6,True,4841,0,3009,4882,4660,33180,0,True,True,False,False,True,False,False,,openedx,0,"['http://edx.devstack.discovery: HTTPConnectionPool(host=\'edx.devstack.discovery\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'edx.devstack.discovery\', port=80): Failed to resolve \'edx.devstack.discovery\' ([Errno -2] Name or service not known)""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/xblock-skill-tagging: 404', 'https://xblock-skill-tagging.readthedocs.io/en/latest/: 404']",True,"['https://user-images.githubusercontent.com/10894099/210078679-3cbac3d1-55a7-4fba-b841-7fb4468f32c5.png', 'https://user-images.githubusercontent.com/10894099/212285572-efa5cfd5-e9c5-411d-8d15-541c43445ec0.png', 'https://github.com/openedx/taxonomy-connector/blob/master/docs/decisions/0001-xblock-skill-tagging-design.rst', 'https://github.com/openedx/edx-platform', 'https://github.com/openedx/taxonomy-connector', 'https://github.com/openedx/course-discovery', 'https://github.com/openedx/xblock-skill-tagging/blob/main/skill_tagging/handlers.py', 'https://github.com/openedx/event-bus-kafka', 'https://github.com/openedx/event-bus-redis', 'https://openedx.atlassian.net/wiki/spaces/AC/pages/3508699151/How+to+start+using+the+Event+Bus', 'https://discuss.openedx.org', 'https://github.com/openedx/xblock-skill-tagging/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/skill_tagging.svg', 'https://pypi.python.org/pypi/skill_tagging/', 'https://github.com/openedx/xblock-skill-tagging/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/xblock-skill-tagging/actions', 'https://codecov.io/github/openedx/xblock-skill-tagging/coverage.svg?branch=main', 'https://codecov.io/github/openedx/xblock-skill-tagging?branch=main', 'https://readthedocs.org/projects/xblock-skill-tagging/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/skill_tagging.svg', 'https://img.shields.io/github/license/openedx/xblock-skill-tagging.svg', 'https://github.com/openedx/xblock-skill-tagging/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,skill_tagging,"['3', '3.12']",https://github.com/openedx/xblock-skill-tagging,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-rbac,,,,True,2026-06-01,True,True,False,False,107,0,[],0,,0,0,,,30,"[""six==1.17.0"", ""edx-drf-extensions==10.6.0"", ""pymongo==4.16.0"", ""django-waffle==5.0.0"", ""edx-django-utils==8.0.1"", ""idna==3.11"", ""asgiref==3.11.1"", ""sqlparse==0.5.5"", ""setuptools==82.0.0"", ""drf-jwt==1.19.2"", ""certifi==2026.2.25"", ""requests==2.32.5"", ""typing-extensions==4.15.0"", ""pyjwt[crypto]==2.11.0"", ""click==8.3.1"", ""django-model-utils==5.0.0"", ""pynacl==1.6.2"", ""charset-normalizer==3.4.5"", ""psutil==7.2.2"", ""dnspython==2.8.0"", ""django-crum==0.7.9"", ""semantic-version==2.10.0"", ""edx-opaque-keys==3.1.0"", ""pycparser==3.0"", ""urllib3==2.6.3"", ""stevedore==5.7.0"", ""djangorestframework==3.16.1"", ""django==5.2.12"", ""cffi==2.0.0"", ""cryptography==46.0.5""]",107,"[""sphinxcontrib-jsmath==1.0.1"", ""nh3==0.3.3"", ""idna==3.11"", ""ddt==1.7.2"", ""snowballstemmer==3.0.1"", ""pyproject-api==1.10.0"", ""drf-jwt==1.19.2"", ""typing-extensions==4.15.0"", ""polib==1.2.0"", ""more-itertools==10.8.0"", ""pyjwt[crypto]==2.11.0"", ""pylint-django==2.7.0"", ""charset-normalizer==3.4.5"", ""platformdirs==4.9.4"", ""psutil==7.2.2"", ""readme-renderer==44.0"", ""dnspython==2.8.0"", ""markupsafe==3.0.3"", ""virtualenv==21.1.0"", ""dill==0.4.1"", ""iniconfig==2.3.0"", ""pycparser==3.0"", ""urllib3==2.6.3"", ""pylint-plugin-utils==0.9.0"", ""astroid==4.0.4"", ""filelock==3.25.0"", ""pycodestyle==2.14.0"", ""pydocstyle==6.3.0"", ""tox==4.49.0"", ""edx-django-utils==8.0.1"", ""asgiref==3.11.1"", ""text-unidecode==1.3"", ""sphinxcontrib-devhelp==2.0.0"", ""certifi==2026.2.25"", ""sphinxcontrib-qthelp==2.0.0"", ""requests==2.32.5"", ""code-annotations==2.3.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pylint-celery==0.3"", ""pydata-sphinx-theme==0.15.4"", ""semantic-version==2.10.0"", ""pyproject-hooks==1.2.0"", ""sphinx==9.1.0"", ""sphinx-book-theme==1.1.4"", ""edx-opaque-keys==3.1.0"", ""jinja2==3.1.6"", ""colorama==0.4.6"", ""stevedore==5.7.0"", ""djangorestframework==3.16.1"", ""beautifulsoup4==4.14.3"", ""accessible-pygments==0.0.5"", ""click-log==0.4.0"", ""cffi==2.0.0"", ""imagesize==2.0.0"", ""edx-lint==5.6.0"", ""pylint==4.0.5"", ""six==1.17.0"", ""python-slugify==8.0.4"", ""pymongo==4.16.0"", ""docutils==0.21.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""django-waffle==5.0.0"", ""restructuredtext-lint==2.0.2"", ""typeguard==4.5.1"", ""pyyaml==6.0.3"", ""edx-i18n-tools==1.9.0"", ""pip-tools==7.5.3"", ""edx-django-release-util==1.5.0"", ""setuptools==82.0.0"", ""pytest==9.0.2"", ""pytest-cov==7.0.0"", ""soupsieve==2.8.3"", ""click==8.3.1"", ""pytest-django==4.12.0"", ""alabaster==1.0.0"", ""diff-cover==4.0.0"", ""pygments==2.19.2"", ""django-crum==0.7.9"", ""babel==2.18.0"", ""python-discovery==1.1.0"", ""pluggy==1.6.0"", ""path==16.16.0"", ""django==5.2.12"", ""packaging==26.0"", ""cachetools==7.0.3"", ""distlib==0.4.0"", ""doc8==2.0.0"", ""wheel==0.46.3"", ""jinja2-pluralize==0.3.0"", ""edx-drf-extensions==10.6.0"", ""coverage[toml]==7.13.4"", ""tomli-w==1.2.0"", ""sqlparse==0.5.5"", ""sphinxcontrib-applehelp==2.0.0"", ""mccabe==0.7.0"", ""inflect==7.5.0"", ""lxml-html-clean==0.4.4"", ""tomlkit==0.14.0"", ""roman-numerals==4.1.0"", ""django-model-utils==5.0.0"", ""lxml[html-clean]==6.0.2"", ""futures==3.1.1"", ""pynacl==1.6.2"", ""pip==26.0.1"", ""isort==8.0.1"", ""build==1.4.0"", ""cryptography==46.0.5""]",10,"[""edx-i18n-tools"", ""pylint-django"", ""code-annotations"", ""edx-django-release-util"", ""django-waffle"", ""edx-drf-extensions"", ""pytest-django"", ""djangorestframework"", ""edx-opaque-keys"", ""edx-django-utils""]",13,"[""edx-i18n-tools"", ""pylint-django"", ""code-annotations"", ""drf-jwt"", ""edx-django-release-util"", ""django-crum"", ""django-waffle"", ""edx-drf-extensions"", ""django-model-utils"", ""pytest-django"", ""djangorestframework"", ""edx-opaque-keys"", ""edx-django-utils""]",7,"[""edx-i18n-tools"", ""code-annotations"", ""edx-django-release-util"", ""django-waffle"", ""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils""]",True,,False,False,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,110,"{""total_duration"": ""2 minutes 55 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""2 minutes 45 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 26 seconds""}]}",Other,2019-02-28 16:27:01,master,Library to help managing role based access controls for django apps,556,12,True,False,False,False,False,False,False,2026-05-30 15:16:11,GNU AGPLv3,15,True,0,0,662,0,5286,81123,0,True,True,False,False,True,False,False,,openedx,4,"['https://github.com/openedx/edx-rbac/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 404', 'https://github.com/openedx/edx-rbac/blob/master/.github/ISSUE_TEMPLATE.md: 404', 'http://edx-rbac.readthedocs.io/en/latest/: 404']",True,"['https://github.com/openedx/edx-rbac/blob/master/docs/getting_started.rst', 'https://github.com/openedx/edx-rbac/blob/master/docs/how_to_guide.rst', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-rbac.svg', 'https://pypi.python.org/pypi/edx-rbac/', 'https://github.com/openedx/edx-rbac/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-rbac/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-rbac/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-rbac?branch=master', 'https://readthedocs.org/projects/edx-rbac/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-rbac.svg', 'https://img.shields.io/github/license/edx/edx-rbac.svg', 'https://github.com/openedx/edx-rbac/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-rbac,"['3', '3.12']",https://github.com/openedx/edx-rbac,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-android,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,14,"{""total_duration"": ""5 minutes 1 seconds"", ""checks"": [{""name"": ""Runs unit tests"", ""duration"": ""5 minutes 1 seconds""}, {""name"": ""Validate strings.xml"", ""duration"": ""0 minutes 9 seconds""}]}",Other,2023-03-13 09:14:43,main,The mobile app for Android for the Open EdX Platform.,7647,57,True,False,False,False,False,False,False,2026-05-30 15:28:17,Apache License 2.0,6,False,0,0,0,1129,867,17073,0,False,False,False,False,False,False,False,,openedx,0,"['https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403', 'https://app.transifex.com/open-edx/openedx-translations/openedx-app-android/: 404']",False,"['https://github.com/openedx/openedx-app-android.git', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://github.com/openedx/openedx-atlas', 'https://github.com/openedx/openedx-translations', 'https://github.com/openedx/openedx-translations/blob/04ccea36b8e6a9889646dfb5a5acb99686fa9ae0/translations/openedx-app-android/i18n/src/main/res/values-uk/strings.xml', 'https://github.com/openedx/openedx-atlas/issues/20', 'https://github.com/apps/transifex-integration', 'https://github.com/openedx/openedx-app-android/blob/main/LICENSE']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-base-compat,,,,False,2026-06-01,False,False,False,False,11,0,,0,{},0,11,"{""@openedx/frontend-base"": ""^1.0.0-alpha || 0.0.0-dev"", ""@testing-library/jest-dom"": ""^6.9.1"", ""@testing-library/react"": ""^16.3.0"", ""@types/jest"": ""^29.5.14"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""jest"": ""^29"", ""nodemon"": ""^3.1.14"", ""react"": ""^18"", ""react-dom"": ""^18"", ""tsc-alias"": ""^1.8.16""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""0 minutes 59 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 5 seconds""}]}",Other,2026-05-02 22:17:10,main,Compatibility shim that lets legacy frontend-plugin-framework env.config.jsx files run on top of @openedx/frontend-base.,275,2,True,False,False,False,False,False,False,2026-05-20 13:22:04,GNU AGPLv3,0,True,0,0,0,893,157,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/frontend-base', 'https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/mfe_config_api/views.py']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-component-cookie-policy-banner,,,,False,2026-06-01,False,False,False,False,55,0,,0,{},8,47,"{""@babel/cli"": ""7.25.6"", ""@babel/core"": ""7.25.2"", ""@babel/preset-env"": ""7.25.4"", ""@babel/preset-react"": ""7.24.7"", ""@commitlint/cli"": ""13.2.1"", ""@commitlint/config-angular"": ""13.2.0"", ""@commitlint/prompt"": ""13.2.1"", ""@commitlint/prompt-cli"": ""13.2.1"", ""@edx/eslint-config"": ""^4.0.0"", ""@storybook/addon-a11y"": ""7.0.23"", ""@storybook/addon-actions"": ""6.1.16"", ""@storybook/addon-centered"": ""5.3.21"", ""@storybook/addon-console"": ""1.2.3"", ""@storybook/addon-info"": ""5.3.21"", ""@storybook/addon-options"": ""5.3.21"", ""@storybook/addon-storyshots"": ""6.1.16"", ""@storybook/addons"": ""6.1.16"", ""@storybook/react"": ""6.1.16"", ""@storybook/storybook-deployer"": ""2.8.10"", ""@testing-library/react"": ""12.1.5"", ""@testing-library/user-event"": ""^13.5.0"", ""@testing-library/jest-dom"": ""5.16.5"", ""copyfiles"": ""2.4.1"", ""es-check"": ""6.1.1"", ""eslint"": ""^8.18.0"", ""eslint-config-airbnb"": ""19.0.4"", ""eslint-plugin-import"": ""^2.26.0"", ""eslint-plugin-jsx-a11y"": ""^6.5.1"", ""eslint-plugin-react"": ""^7.30.0"", ""eslint-plugin-react-hooks"": ""^4.6.0"", ""husky"": ""7.0.4"", ""jest"": ""29.7.0"", ""jest-environment-jsdom"": ""29.7.0"", ""jest-environment-jsdom-global"": ""4.0.0"", ""node-sass"": ""9.0.0"", ""node-sass-import"": ""2.0.1"", ""react"": ""17.0.2"", ""react-dev-utils"": ""11.0.4"", ""react-dom"": ""17.0.2"", ""sass-loader"": ""16.0.2 "", ""semantic-release"": ""17.4.7"", ""source-map-loader"": ""3.0.0"", ""style-loader"": ""3.3.1"", ""travis-deploy-once"": ""5.0.11"", ""webpack"": ""5.61.0"", ""webpack-build-notifier"": ""2.3.0"", ""webpack-cli"": ""4.9.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@openedx/paragon"": ""^21.13.1"", ""babel-preset-minify"": ""^0.5.0"", ""classnames"": ""^2.3.1"", ""identity-obj-proxy"": ""^3.0.0"", ""prop-types"": ""^15.6.1"", ""type-fest"": ""^2.14.0"", ""universal-cookie"": ""^4.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,True,True,False,False,False,False,False,False,True,True,True,568,"{""total_duration"": ""1 minutes 45 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 38 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2018-04-03 13:28:37,master,The edX cookie policy banner component implemented in React.,28131,18,True,False,False,False,False,False,False,2026-05-20 13:21:13,GNU AGPLv3,2,True,0,0,0,20725,0,0,0,False,False,False,False,False,False,False,@edx/frontend-component-cookie-policy-banner,openedx,0,"['https://www.npmjs.com/package/@edx/frontend-component-cookie-policy-banner: 403', 'https://github.com/openedx/frontend-component-cookie-policy-banner.svg/blob/master/LICENSE: 404', 'https://imgur.com/mZct2v5.png: 429']",False,"['https://badges.greenkeeper.io/edx/frontend-component-cookie-policy-banner.svg', 'https://greenkeeper.io/', 'https://img.shields.io/npm/v/@edx/frontend-component-cookie-policy-banner.svg', 'https://img.shields.io/npm/dt/@edx/frontend-component-cookie-policy-banner.svg', 'https://img.shields.io/npm/l/@edx/frontend-component-cookie-policy-banner.svg', 'https://github.com/semantic-release/semantic-release', 'https://github.com/openedx/frontend-component-cookie-policy-banner', 'https://github.com/storybooks/storybook', 'https://open.edx.org/code-of-conduct/']",True,True,False,False,,,True,2021-12-07,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-bulk-grades,,,,True,2026-06-01,False,False,False,False,132,0,[],0,,0,0,,,43,"[""slumber==0.7.1"", ""pymongo==4.16.0"", ""certifi==2026.2.25"", ""psutil==7.2.2"", ""asgiref==3.11.1"", ""wcwidth==0.6.0"", ""pynacl==1.6.2"", ""billiard==4.2.4"", ""edx-django-utils==8.0.1"", ""celery==5.6.2"", ""django-waffle==5.0.0"", ""djangorestframework==3.16.1"", ""charset-normalizer==3.4.5"", ""tzlocal==5.3.1"", ""vine==5.1.0"", ""cffi==2.0.0"", ""amqp==5.3.1"", ""kombu==5.6.2"", ""django==5.2.12"", ""python-dateutil==2.9.0.post0"", ""requests==2.32.5"", ""edx-opaque-keys==3.1.0"", ""sqlparse==0.5.5"", ""simplejson==3.20.2"", ""tzdata==2025.3"", ""urllib3==2.6.3"", ""click-plugins==1.1.1.2"", ""django-crum==0.7.9"", ""idna==3.11"", ""click-repl==0.3.0"", ""pycparser==3.0"", ""edx-celeryutils==1.4.0"", ""dnspython==2.8.0"", ""packaging==26.0"", ""jsonfield==3.2.0"", ""stevedore==5.7.0"", ""typing-extensions==4.15.0"", ""django-model-utils==5.0.0"", ""click-didyoumean==0.3.1"", ""prompt-toolkit==3.0.52"", ""click==8.3.1"", ""super-csv==4.1.0"", ""six==1.17.0""]",132,"[""pylint-django==2.7.0"", ""imagesize==2.0.0"", ""tomlkit==0.14.0"", ""pynacl==1.6.2"", ""billiard==4.2.4"", ""lxml[html-clean]==6.0.2"", ""mock==5.2.0"", ""polib==1.2.0"", ""snowballstemmer==3.0.1"", ""django-waffle==5.0.0"", ""path==16.16.0"", ""tomli-w==1.2.0"", ""soupsieve==2.8.3"", ""kombu==5.6.2"", ""cachetools==7.0.5"", ""sphinxcontrib-serializinghtml==2.0.0"", ""jaraco-classes==3.4.0"", ""pydocstyle==6.3.0"", ""chardet==7.0.1"", ""restructuredtext-lint==2.0.2"", ""build==1.4.0"", ""ddt==1.7.2"", ""dnspython==2.8.0"", ""typing-extensions==4.15.0"", ""jsonfield==3.2.0"", ""stevedore==5.7.0"", ""django-model-utils==5.0.0"", ""text-unidecode==1.3"", ""pylint==4.0.5"", ""super-csv==4.1.0"", ""jinja2==3.1.6"", ""slumber==0.7.1"", ""cryptography==46.0.5"", ""psutil==7.2.2"", ""click-log==0.4.0"", ""coverage==7.13.4"", ""twine==6.2.0"", ""distlib==0.4.0"", ""edx-django-utils==8.0.1"", ""code-annotations==2.3.2"", ""platformdirs==4.9.4"", ""tzlocal==5.3.1"", ""sphinxcontrib-devhelp==2.0.0"", ""sqlparse==0.5.5"", ""setuptools==82.0.1"", ""pylint-celery==0.3"", ""simplejson==3.20.2"", ""tzdata==2025.3"", ""jeepney==0.9.0"", ""pytest-django==4.12.0"", ""click-plugins==1.1.1.2"", ""pluggy==1.6.0"", ""pygments==2.19.2"", ""django-crum==0.7.9"", ""babel==2.18.0"", ""secretstorage==3.5.0"", ""markdown-it-py==4.0.0"", ""rich==14.3.3"", ""pycparser==3.0"", ""more-itertools==10.8.0"", ""pytest-cov==7.0.0"", ""iniconfig==2.3.0"", ""readme-renderer==44.0"", ""sphinx==9.1.0"", ""prompt-toolkit==3.0.52"", ""pyyaml==6.0.3"", ""click==8.3.1"", ""pyproject-hooks==1.2.0"", ""pycodestyle==2.14.0"", ""pip==26.0.1"", ""tox==4.49.1"", ""certifi==2026.2.25"", ""wcwidth==0.6.0"", ""celery==5.6.2"", ""charset-normalizer==3.4.5"", ""vine==5.1.0"", ""python-dateutil==2.9.0.post0"", ""id==1.6.1"", ""mdurl==0.1.2"", ""pydata-sphinx-theme==0.16.1"", ""coverage[toml]==7.13.4"", ""jaraco-functools==4.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""lxml-html-clean==0.4.4"", ""sphinxcontrib-applehelp==2.0.0"", ""beautifulsoup4==4.14.3"", ""diff-cover==10.2.0"", ""docutils==0.21.2"", ""idna==3.11"", ""mccabe==0.7.0"", ""astroid==4.0.4"", ""click-repl==0.3.0"", ""dill==0.4.1"", ""edx-celeryutils==1.4.0"", ""pip-tools==7.5.3"", ""requests-toolbelt==1.0.0"", ""pyproject-api==1.10.0"", ""virtualenv==21.2.0"", ""edx-i18n-tools==2.0.0"", ""wheel==0.46.3"", ""sphinx-book-theme==1.2.0"", ""six==1.17.0"", ""colorama==0.4.6"", ""roman-numerals==4.1.0"", ""jaraco-context==6.1.1"", ""pymongo==4.16.0"", ""alabaster==1.0.0"", ""asgiref==3.11.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-lint==5.6.0"", ""djangorestframework==3.16.1"", ""markupsafe==3.0.3"", ""pylint-plugin-utils==0.9.0"", ""cffi==2.0.0"", ""amqp==5.3.1"", ""requests==2.32.5"", ""django==5.2.12"", ""edx-opaque-keys==3.1.0"", ""nh3==0.3.3"", ""sphinxcontrib-qthelp==2.0.0"", ""urllib3==2.6.3"", ""python-slugify==8.0.4"", ""doc8==2.0.0"", ""accessible-pygments==0.0.5"", ""keyring==25.7.0"", ""rfc3986==2.0.0"", ""packaging==26.0"", ""pytest==9.0.2"", ""isort==8.0.1"", ""click-didyoumean==0.3.1"", ""python-discovery==1.1.3"", ""filelock==3.25.1""]",10,"[""code-annotations"", ""edx-django-utils"", ""edx-celeryutils"", ""edx-i18n-tools"", ""djangorestframework"", ""pytest-django"", ""django-waffle"", ""super-csv"", ""pylint-django"", ""edx-opaque-keys""]",13,"[""django-crum"", ""code-annotations"", ""edx-django-utils"", ""edx-celeryutils"", ""edx-i18n-tools"", ""djangorestframework"", ""pytest-django"", ""django-model-utils"", ""django-waffle"", ""super-csv"", ""pylint-django"", ""jsonfield"", ""edx-opaque-keys""]",7,"[""code-annotations"", ""edx-django-utils"", ""edx-celeryutils"", ""edx-i18n-tools"", ""django-waffle"", ""super-csv"", ""edx-opaque-keys""]",True,,True,False,True,True,False,True,True,True,True,False,True,False,True,True,True,True,True,True,True,True,True,10,"{""total_duration"": ""0 minutes 45 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52-celery55)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42-celery55)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}]}",Other,2019-05-28 13:29:49,master,,410,11,True,False,False,False,False,False,False,2026-05-30 15:07:20,GNU AGPLv3,5,True,0,0,662,0,5356,110667,0,True,True,False,False,True,False,False,,openedx,2,"['https://travis-ci.com/edx/edx-bulk-grades: 404', 'http://edx-bulk-grades.readthedocs.io/en/latest/: 404']",True,"['https://github.com/openedx/devstack', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-bulk-grades/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-bulk-grades/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-bulk-grades.svg', 'https://pypi.python.org/pypi/edx-bulk-grades/', 'https://travis-ci.com/edx/edx-bulk-grades.svg?branch=master', 'http://codecov.io/github/edx/edx-bulk-grades/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-bulk-grades?branch=master', 'https://readthedocs.org/projects/edx-bulk-grades/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-bulk-grades.svg', 'https://img.shields.io/github/license/edx/edx-bulk-grades.svg', 'https://github.com/openedx/edx-bulk-grades/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-bulk-grades,"['3', '3.12']",https://github.com/openedx/edx-bulk-grades,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-enterprise-data,,,,True,2026-06-01,True,True,False,False,154,0,[],0,,0,0,,,81,"[""asgiref==3.11.1"", ""idna==3.14"", ""pyasn1==0.6.3"", ""pytz==2026.2"", ""django-fernet-fields-v2==0.9"", ""stevedore==5.7.0"", ""edx-opaque-keys==4.0.0"", ""requests==2.33.1"", ""vine==5.1.0"", ""invoke==3.0.3"", ""snowflake-connector-python==4.4.0"", ""typing-extensions==4.15.0"", ""rsa==4.7.2"", ""django==4.2.30"", ""click-plugins==1.1.1.2"", ""amqp==5.3.1"", ""kombu==5.6.2"", ""sortedcontainers==2.4.0"", ""pyyaml==6.0.3"", ""djangorestframework-csv==3.0.2"", ""edx-rest-api-client==7.0.0"", ""mysql-connector-python==9.5.0"", ""django-crum==0.7.9"", ""rules==3.5"", ""charset-normalizer==3.4.7"", ""tomlkit==0.15.0"", ""docutils==0.19"", ""factory-boy==3.3.3"", ""pyminizip==0.2.6"", ""cryptography==48.0.0"", ""pynacl==1.6.2"", ""packaging==26.2"", ""drf-jwt==1.19.2"", ""paramiko==5.0.0"", ""boto3==1.43.6"", ""django-model-utils==5.0.0"", ""certifi==2026.4.22"", ""botocore==1.43.6"", ""interchange==2021.0.4"", ""pygments==2.20.0"", ""bcrypt==5.0.0"", ""django-waffle==5.0.0"", ""awscli==1.45.6"", ""pyjwt[crypto]==2.12.1"", ""click==8.3.3"", ""python-dateutil==2.9.0.post0"", ""edx-drf-extensions==10.6.0"", ""sqlparse==0.5.5"", ""psutil==7.2.2"", ""jmespath==1.1.0"", ""click-didyoumean==0.3.1"", ""pycparser==3.0"", ""vertica-python==1.4.0"", ""filelock==3.29.0"", ""click-repl==0.3.0"", ""semantic-version==2.10.0"", ""celery==5.3.6"", ""wcwidth==0.7.0"", ""pansi==2024.11.0"", ""pymongo==4.17.0"", ""djangorestframework==3.17.1"", ""s3transfer==0.17.0"", ""pillow==12.2.0"", ""cffi==2.0.0"", ""edx-rbac==3.0.0"", ""urllib3==2.7.0"", ""monotonic==1.6"", ""tzdata==2026.2"", ""edx-django-utils==8.0.1"", ""unicodecsv==0.14.1"", ""dnspython==2.8.0"", ""django-filter==25.1"", ""platformdirs==4.9.6"", ""pyopenssl==26.2.0"", ""prompt-toolkit==3.0.52"", ""asn1crypto==1.5.1"", ""faker==40.15.0"", ""billiard==4.2.4"", ""six==1.17.0"", ""pgpy==0.6.0"", ""colorama==0.4.6""]",154,"[""asgiref==3.11.1"", ""idna==3.14"", ""pyasn1==0.6.3"", ""pytz==2026.2"", ""django-fernet-fields-v2==0.9"", ""tomli-w==1.2.0"", ""pytest-django==4.12.0"", ""stevedore==5.7.0"", ""edx-opaque-keys==4.0.0"", ""requests==2.33.1"", ""pyproject-hooks==1.2.0"", ""code-annotations==3.0.0"", ""pbr==7.0.3"", ""testfixtures==11.0.0"", ""pytest==8.0.2"", ""vine==5.1.0"", ""rich==15.0.0"", ""mock==2.0.0"", ""invoke==3.0.3"", ""setuptools==82.0.1"", ""snowflake-connector-python==4.4.0"", ""markdown-it-py==4.2.0"", ""typing-extensions==4.15.0"", ""coverage[toml]==7.14.0"", ""pylint-django==2.7.0"", ""rsa==4.7.2"", ""django==4.2.30"", ""click-plugins==1.1.1.2"", ""amqp==5.3.1"", ""build==1.5.0"", ""kombu==5.6.2"", ""sortedcontainers==2.4.0"", ""tox==4.53.1"", ""edx-lint==6.1.0"", ""iniconfig==2.3.0"", ""pyyaml==6.0.3"", ""wheel==0.47.0"", ""jeepney==0.9.0"", ""pylint-plugin-utils==0.9.0"", ""twine==6.2.0"", ""dill==0.4.1"", ""ddt==1.1.2"", ""djangorestframework-csv==3.0.2"", ""edx-rest-api-client==7.0.0"", ""pydocstyle==6.3.0"", ""mysql-connector-python==9.5.0"", ""django-crum==0.7.9"", ""rules==3.5"", ""readme-renderer==43.0"", ""ddt==1.7.2"", ""charset-normalizer==3.4.7"", ""tomlkit==0.15.0"", ""id==1.6.1"", ""pyjwt==2.12.1"", ""lxml[html-clean]==6.1.0"", ""docutils==0.19"", ""chardet==7.4.3"", ""nh3==0.3.5"", ""factory-boy==3.3.3"", ""flaky==3.8.1"", ""pyminizip==0.2.6"", ""cryptography==48.0.0"", ""pynacl==1.6.2"", ""packaging==26.2"", ""mock==5.2.0"", ""drf-jwt==1.19.2"", ""paramiko==5.0.0"", ""boto3==1.43.6"", ""jaraco-functools==4.4.0"", ""django-model-utils==5.0.0"", ""certifi==2026.4.22"", ""text-unidecode==1.3"", ""botocore==1.43.6"", ""interchange==2021.0.4"", ""mccabe==0.7.0"", ""pycodestyle==2.14.0"", ""pygments==2.20.0"", ""jaraco-classes==3.4.0"", ""keyring==25.7.0"", ""bcrypt==5.0.0"", ""pluggy==1.6.0"", ""lxml-html-clean==0.4.4"", ""pytest==9.0.3"", ""django-waffle==5.0.0"", ""awscli==1.45.6"", ""pyjwt[crypto]==2.12.1"", ""click==8.3.3"", ""path==16.16.0"", ""markupsafe==3.0.3"", ""python-slugify==8.0.4"", ""python-dateutil==2.9.0.post0"", ""distlib==0.4.0"", ""jaraco-context==6.1.2"", ""responses==0.26.0"", ""more-itertools==11.0.2"", ""pip==26.1.1"", ""pylint-celery==0.3"", ""edx-drf-extensions==10.6.0"", ""sqlparse==0.5.5"", ""psutil==7.2.2"", ""mdurl==0.1.2"", ""astroid==4.0.4"", ""jmespath==1.1.0"", ""click-didyoumean==0.3.1"", ""pip-tools==7.5.3"", ""pycparser==3.0"", ""vertica-python==1.4.0"", ""virtualenv==21.3.1"", ""click-log==0.4.0"", ""rfc3986==2.0.0"", ""filelock==3.29.0"", ""pytest-cov==7.1.0"", ""secretstorage==3.5.0"", ""diff-cover==10.2.0"", ""requests-toolbelt==1.0.0"", ""edx-i18n-tools==2.0.0"", ""click-repl==0.3.0"", ""pytest-cov==4.1.0"", ""pylint==4.0.5"", ""semantic-version==2.10.0"", ""celery==5.3.6"", ""wcwidth==0.7.0"", ""pansi==2024.11.0"", ""pymongo==4.17.0"", ""djangorestframework==3.17.1"", ""cachetools==7.1.1"", ""s3transfer==0.17.0"", ""pillow==12.2.0"", ""cffi==2.0.0"", ""jinja2==3.1.6"", ""edx-rbac==3.0.0"", ""urllib3==2.7.0"", ""freezegun==1.5.5"", ""coverage==7.14.0"", ""monotonic==1.6"", ""tzdata==2026.2"", ""unicodecsv==0.14.1"", ""edx-django-utils==8.0.1"", ""dnspython==2.8.0"", ""python-discovery==1.3.0"", ""isort==8.0.1"", ""django-filter==25.1"", ""platformdirs==4.9.6"", ""pyopenssl==26.2.0"", ""prompt-toolkit==3.0.52"", ""polib==1.2.0"", ""asn1crypto==1.5.1"", ""faker==40.15.0"", ""billiard==4.2.4"", ""six==1.17.0"", ""pyproject-api==1.10.0"", ""snowballstemmer==3.0.1"", ""pgpy==0.6.0"", ""colorama==0.4.6""]",13,"[""code-annotations"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-rest-api-client"", ""pylint-django"", ""pytest-django"", ""edx-django-utils"", ""djangorestframework"", ""factory-boy"", ""django-waffle"", ""edx-rbac"", ""django-filter"", ""edx-i18n-tools""]",18,"[""code-annotations"", ""django-model-utils"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-rest-api-client"", ""pylint-django"", ""pytest-django"", ""edx-django-utils"", ""djangorestframework-csv"", ""djangorestframework"", ""factory-boy"", ""django-crum"", ""django-waffle"", ""edx-rbac"", ""drf-jwt"", ""rules"", ""django-filter"", ""edx-i18n-tools""]",9,"[""code-annotations"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-rest-api-client"", ""edx-django-utils"", ""django-waffle"", ""edx-rbac"", ""django-filter"", ""edx-i18n-tools""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,47,"{""total_duration"": ""2081 minutes 9 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, data-django42)"", ""duration"": ""1 minutes 45 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, reporting-django42)"", ""duration"": ""1 minutes 28 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2017-10-04 19:19:49,master,The edX Enterprise Data repo is the home to tools and products related to providing access to Enterprise related data.,1530,21,True,False,False,False,False,False,False,2026-06-01 03:12:57,GNU AGPLv3,10,True,0,0,0,0,3657,731723,974,False,False,False,False,True,False,False,,openedx,4,[],False,"['https://github.com/openedx/edx-analytics-data-api/', 'https://github.com/openedx/edx-drf-extensions/blob/4569b9bf7e54a917d4acdd545b10c058c960dd1a/edx_rest_framework_extensions/auth/jwt/authentication.py', 'https://github.com/openedx/devstack', 'https://github.com/openedx/frontend-app-admin-portal/']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-enterprise-data,"['3', '3.12']",https://github.com/openedx/edx-enterprise-data,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-firebase-analytics-android,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2024-10-11 09:09:27,main,,118,2,True,False,False,False,False,False,False,2026-05-30 15:28:46,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://jitpack.io'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/codejail,,,,True,2026-06-01,True,True,False,False,34,0,[],0,,0,0,,,16,"[""isort==8.0.1"", ""astroid==4.0.4"", ""pylint==4.0.5"", ""packaging==26.2"", ""pycodestyle==2.14.0"", ""pluggy==1.6.0"", ""mccabe==0.7.0"", ""django==5.2.14"", ""pytest==9.0.3"", ""asgiref==3.11.1"", ""pygments==2.20.0"", ""sqlparse==0.5.5"", ""platformdirs==4.9.6"", ""dill==0.4.1"", ""tomlkit==0.15.0"", ""iniconfig==2.3.0""]",34,"[""setuptools==82.0.1"", ""packaging==26.2"", ""pytest==9.0.3"", ""distlib==0.4.0"", ""sqlparse==0.5.5"", ""pyproject-api==1.10.0"", ""wheel==0.47.0"", ""astroid==4.0.4"", ""tox==4.54.0"", ""cachetools==7.1.4"", ""mccabe==0.7.0"", ""django==5.2.14"", ""asgiref==3.11.1"", ""six==1.17.0"", ""tomli-w==1.2.0"", ""numpy==2.4.6"", ""pip-tools==7.5.3"", ""tomlkit==0.15.0"", ""isort==8.0.1"", ""click==8.4.1"", ""colorama==0.4.6"", ""pylint==4.0.5"", ""pycodestyle==2.14.0"", ""pluggy==1.6.0"", ""filelock==3.29.0"", ""virtualenv==21.3.3"", ""build==1.5.0"", ""pyproject-hooks==1.2.0"", ""iniconfig==2.3.0"", ""python-discovery==1.3.1"", ""pygments==2.20.0"", ""pip==26.1.1"", ""platformdirs==4.9.6"", ""dill==0.4.1""]",0,[],0,[],0,[],False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,13,"{""total_duration"": ""1992 minutes 53 seconds"", ""checks"": [{""name"": ""tests (3.12, 22.04, django52)"", ""duration"": ""2 minutes 7 seconds""}, {""name"": ""tests (3.12, 22.04, django42)"", ""duration"": ""1 minutes 53 seconds""}, {""name"": ""tests (3.12, 24.04, django42)"", ""duration"": ""1 minutes 48 seconds""}, {""name"": ""tests (3.12, 24.04, django52)"", ""duration"": ""1 minutes 39 seconds""}, {""name"": ""tests (quality, 24.04, 3.12)"", ""duration"": ""1 minutes 29 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2013-04-26 20:48:06,master,Secure code execution,441,82,True,False,False,False,False,False,False,2026-06-01 00:18:41,Apache License 2.0,3,True,0,3814,0,0,2084,77642,0,False,True,False,False,True,False,False,,openedx,2,[],False,[],True,True,False,False,,,False,,,,False,True,False,True,,False,edx-codejail,"['3', '3.12']",https://github.com/openedx/codejail,True,True,True,False,False,False,False,False,False,[],[],"['software-properties-common', 'vim', 'git', 'sudo', 'python${python_version}-dev', 'curl', 'make', 'build-essential', 'python${python_version}', 'python3-distutils', 'python${python_version}-venv']",[] -openedx/xblocks-extra,,,,True,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,True,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": ""9484 minutes 37 seconds"", ""checks"": [{""name"": ""release"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Test (Python 3.12, Django 4.2)"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""run_ci / Test (Python 3.12, Django 4.2)"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Test (Python 3.12, Django 5.2)"", ""duration"": ""0 minutes 15 seconds""}, {""name"": ""run_ci / Test (Python 3.12, Django 5.2)"", ""duration"": ""0 minutes 15 seconds""}, {""name"": ""run_ci / Lint"", ""duration"": ""0 minutes 11 seconds""}, {""name"": ""Lint"", ""duration"": ""0 minutes 7 seconds""}, {""name"": ""publish_to_pypi"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2025-04-17 17:54:17,main,,949,4,True,False,False,False,False,False,False,2026-05-25 11:29:11,GNU AGPLv3,3,True,6275,0,22844,19303,2183,145041,0,False,False,False,False,True,False,False,,openedx,0,[],False,"['https://github.com/openedx-unsupported/AudioXBlock', 'https://github.com/openedx/FeedbackXBlock', 'https://github.com/openedx-unsupported/xblock-image-modal', 'https://github.com/openedx-unsupported/xblock-qualtrics-survey', 'https://github.com/openedx/xblock-sql-grader', 'https://github.com/openedx-unsupported/xblock-submit-and-compare', 'https://github.com/openedx/xblocks-extra.git', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://github.com/openedx/openedx-translations', 'https://openedx.org/contributor-guidelines']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/wg-frontend,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""90718 minutes 11 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}]}",Other,2021-07-23 18:16:35,main,Open edX Frontend Working Group,18,2,True,False,False,False,False,False,False,2025-10-30 15:16:42,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://openedx.atlassian.net/wiki/spaces/FEDX/pages/3090056949/Frontend+Working+Group', 'https://github.com/orgs/openedx/projects/29']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xblock-drag-and-drop-v2,,,,True,2026-06-01,True,True,False,False,91,0,[],0,,0,0,,,29,"[""asgiref==3.11.1"", ""xblock[django]==6.1.0"", ""fs-s3fs==1.1.1"", ""urllib3==2.7.0"", ""jmespath==1.1.0"", ""sqlparse==0.5.5"", ""lazy==1.6"", ""botocore==1.43.14"", ""simplejson==4.1.1"", ""markupsafe==3.0.3"", ""pytz==2026.2"", ""web-fragments==4.0.0"", ""fs==2.4.16"", ""boto3==1.43.14"", ""pyyaml==6.0.3"", ""django==5.2.14"", ""s3transfer==0.17.0"", ""webob==1.8.9"", ""appdirs==1.4.4"", ""bleach[css]==6.3.0"", ""lxml==6.1.1"", ""webencodings==0.5.1"", ""six==1.17.0"", ""python-dateutil==2.9.0.post0"", ""tinycss2==1.4.0"", ""django-statici18n==2.7.1"", ""mako==1.3.12"", ""openedx-django-pyfs==4.0.0"", ""django-appconf==1.2.0""]",91,"[""asgiref==3.11.1"", ""colorama==0.4.6"", ""fs-s3fs==1.1.1"", ""tomli-w==1.2.0"", ""xblock-sdk==0.14.0"", ""rich==15.0.0"", ""jmespath==1.1.0"", ""simplejson==4.1.1"", ""edx-lint==6.1.0"", ""markupsafe==3.0.3"", ""pytz==2026.2"", ""packaging==26.2"", ""idna==3.16"", ""pyproject-hooks==1.2.0"", ""django==5.2.14"", ""mock==5.2.0"", ""pylint-celery==0.3"", ""tomlkit==0.15.0"", ""iniconfig==2.3.0"", ""tinycss2==1.4.0"", ""django-statici18n==2.7.1"", ""tox==4.54.0"", ""isort==8.0.1"", ""charset-normalizer==3.4.7"", ""mccabe==0.7.0"", ""polib==1.2.0"", ""web-fragments==4.0.0"", ""pylint-django==2.7.0"", ""binaryornot==0.6.0"", ""s3transfer==0.17.0"", ""astroid==4.0.4"", ""pypng==0.20220715.0"", ""bleach[css]==6.3.0"", ""lxml==6.1.1"", ""pytest-cov==7.1.0"", ""six==1.17.0"", ""cachetools==7.1.4"", ""python-discovery==1.3.1"", ""mdurl==0.1.2"", ""pycodestyle==2.14.0"", ""dill==0.4.1"", ""mako==1.3.12"", ""ddt==1.7.2"", ""openedx-django-pyfs==4.0.0"", ""xblock[django]==6.1.0"", ""click-log==0.4.0"", ""pytest-django==4.12.0"", ""requests==2.34.2"", ""lazy==1.6"", ""setuptools==82.0.1"", ""fs==2.4.16"", ""pylint-plugin-utils==0.9.0"", ""pip-tools==7.5.3"", ""python-slugify==8.0.4"", ""boto3==1.43.14"", ""pyyaml==6.0.3"", ""tzdata==2026.2"", ""platformdirs==4.9.6"", ""webob==1.8.9"", ""lxml[html-clean]==6.1.1"", ""text-unidecode==1.3"", ""python-dateutil==2.9.0.post0"", ""sqlparse==0.5.5"", ""jinja2==3.1.6"", ""urllib3==2.7.0"", ""cookiecutter==2.7.1"", ""coverage[toml]==7.14.0"", ""botocore==1.43.14"", ""arrow==1.4.0"", ""distlib==0.4.0"", ""markdown-it-py==4.2.0"", ""pyproject-api==1.10.0"", ""virtualenv==21.3.3"", ""pluggy==1.6.0"", ""stevedore==5.8.0"", ""click==8.4.1"", ""pytest==9.0.3"", ""edx-i18n-tools==2.0.0"", ""build==1.5.0"", ""pylint==4.0.5"", ""pygments==2.20.0"", ""pip==26.1.1"", ""code-annotations==3.0.0"", ""appdirs==1.4.4"", ""certifi==2026.5.20"", ""lxml-html-clean==0.4.5"", ""webencodings==0.5.1"", ""path==16.16.0"", ""wheel==0.47.0"", ""django-appconf==1.2.0"", ""filelock==3.29.0""]",7,"[""edx-i18n-tools"", ""pytest-django"", ""web-fragments"", ""code-annotations"", ""xblock-sdk"", ""pylint-django"", ""django-appconf""]",8,"[""edx-i18n-tools"", ""django-statici18n"", ""pytest-django"", ""web-fragments"", ""code-annotations"", ""xblock-sdk"", ""pylint-django"", ""django-appconf""]",5,"[""edx-i18n-tools"", ""web-fragments"", ""code-annotations"", ""xblock-sdk"", ""django-appconf""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,29,"{""total_duration"": ""9986 minutes 42 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, translations)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2014-06-30 15:30:30,master,,3538,72,True,False,False,False,False,False,False,2026-06-01 00:44:25,GNU AGPLv3,1,True,30354,0,24507,393085,4385,154530,0,True,False,False,False,True,False,False,,openedx,0,[],False,"['https://docs.openedx.org/en/latest/educators/references/course_development/problem_settings.html', 'https://github.com/open-craft/demo-courses/archive/drag-and-drop-v2.tar.gz', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html', 'https://github.com/openedx/i18n-tools', 'https://github.com/openedx/openedx-translations']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-drag-and-drop-v2,['3.12'],https://github.com/openedx/xblock-drag-and-drop-v2,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/wg-translations,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],,,False,False,False,False,False,False,False,False,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""123 minutes 47 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2023-05-03 15:17:51,main,Repository for Translation Working Group docs and issues.,7,1,True,False,False,False,False,False,False,2025-10-30 15:16:07,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,,,,,,,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-catalog,,,,False,2026-06-01,False,False,False,False,34,0,,0,{},25,9,"{""@edx/browserslist-config"": ""^1.5.0"", ""@edx/stylelint-config-edx"": ""2.3.3"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/lodash.capitalize"": ""^4.2.9"", ""glob"": ""13.0.6""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.7.1"", ""@edx/frontend-component-header"": ""^8.0.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.18.1"", ""@tanstack/react-query"": ""5.96.2"", ""classnames"": ""^2.5.1"", ""core-js"": ""3.49.0"", ""lodash.capitalize"": ""^4.2.1"", ""lodash.debounce"": ""^4.0.8"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""regenerator-runtime"": ""0.14.1"", ""ts-node"": ""^10.9.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""3 minutes 16 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""3 minutes 15 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2025-05-05 20:11:00,master,,34782,14,True,False,False,False,False,False,False,2026-05-20 13:25:36,GNU AGPLv3,5,True,0,0,369,976,1538,0,0,False,False,False,False,False,False,False,@edx/frontend-app-catalog,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-catalog: 404']",True,"['https://img.shields.io/github/license/openedx/frontend-app-catalog.svg', 'https://github.com/openedx/frontend-app-catalog/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://codecov.io/github/openedx/frontend-app-catalog/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-catalog?branch=master', 'https://docs.openedx.org/en/latest/community/release_notes/ulmo/ulmo_catalog.html', 'https://github.com/openedx/frontend-app-catalog.git', 'https://github.com/openedx/edx-search/releases/tag/v4.4.0', 'https://github.com/openedx/openedx-platform/pull/37948', 'https://github.com/openedx/openedx-platform/pull/37949', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://github.com/openedx/frontend-plugin-framework', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://github.com/openedx/frontend-app-catalog/issues', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2025-12-19,4,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/wg-governance,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""21277 minutes 9 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 16 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2021-02-19 13:34:48,main,,17,2,True,False,False,False,False,False,False,2026-04-10 19:00:06,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/community-wg/projects', 'https://discuss.openedx.org/c/community/13', 'https://discuss.openedx.org/t/community-wg-vs-core-contributors/9306/18']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/axim-engineering,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""9206 minutes 36 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Create weekly issues"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""tag_and_notify"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2021-11-22 21:14:16,main,GitHub Issue repository for the Axim engineering team,4869,3,True,False,False,False,False,False,False,2026-05-15 10:30:24,,1,False,0,0,0,0,1475,3425,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://openedx.atlassian.net/wiki/spaces/COMM/pages/3241640370/Axim+Collaborative+Engineering+Team', 'https://github.com/openedx/axim-engineering/issues/new/choose']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/super-csv,,,,True,2026-06-01,True,True,False,False,134,0,[],0,,0,0,,,32,"[""prompt-toolkit==3.0.52"", ""cffi==2.0.0"", ""edx-django-utils==8.0.1"", ""pynacl==1.6.2"", ""tzdata==2026.2"", ""django==5.2.14"", ""python-dateutil==2.9.0.post0"", ""vine==5.1.0"", ""django-crum==0.7.9"", ""billiard==4.2.4"", ""amqp==5.3.1"", ""pycparser==3.0"", ""wcwidth==0.7.0"", ""stevedore==5.8.0"", ""tzlocal==5.3.1"", ""click-didyoumean==0.3.1"", ""asgiref==3.11.1"", ""sqlparse==0.5.5"", ""simplejson==4.1.1"", ""celery==5.6.3"", ""click-repl==0.3.0"", ""django-model-utils==5.0.0"", ""psutil==7.2.2"", ""djangorestframework==3.17.1"", ""edx-celeryutils==2.0.0"", ""jsonfield==3.2.0"", ""kombu==5.6.2"", ""click==8.4.0"", ""packaging==26.2"", ""django-waffle==5.0.0"", ""six==1.17.0"", ""click-plugins==1.1.1.2""]",134,"[""sphinxcontrib-htmlhelp==2.1.0"", ""prompt-toolkit==3.0.52"", ""edx-django-utils==8.0.1"", ""polib==1.2.0"", ""pynacl==1.6.2"", ""jaraco-functools==4.5.0"", ""sqlalchemy==2.0.49"", ""rfc3986==2.0.0"", ""billiard==4.2.4"", ""id==1.6.1"", ""jaraco-context==6.1.2"", ""coverage[toml]==7.14.0"", ""tzlocal==5.3.1"", ""babel==2.18.0"", ""dill==0.4.1"", ""click-didyoumean==0.3.1"", ""asgiref==3.11.1"", ""cryptography==48.0.0"", ""alabaster==1.0.0"", ""beautifulsoup4==4.14.3"", ""pycodestyle==2.14.0"", ""platformdirs==4.9.6"", ""python-slugify==8.0.4"", ""sphinx-book-theme==1.2.0"", ""djangorestframework==3.17.1"", ""path==16.16.0"", ""click-log==0.4.0"", ""snowballstemmer==3.0.1"", ""sphinxcontrib-applehelp==2.0.0"", ""colorama==0.4.6"", ""mock==5.2.0"", ""pylint-django==2.7.0"", ""mdurl==0.1.2"", ""diff-cover==10.2.0"", ""mccabe==0.7.0"", ""vine==5.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pytest==9.0.3"", ""requests==2.34.2"", ""pycparser==3.0"", ""urllib3==2.7.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""roman-numerals==4.1.0"", ""pydata-sphinx-theme==0.16.1"", ""requests-toolbelt==1.0.0"", ""pylint==4.0.5"", ""chardet==7.4.3"", ""pytest-django==4.12.0"", ""simplejson==4.1.1"", ""readme-renderer==44.0"", ""click-repl==0.3.0"", ""celery==5.3.6"", ""code-annotations==3.0.0"", ""pylint-celery==0.3"", ""click==8.4.0"", ""django-waffle==5.0.0"", ""click-plugins==1.1.1.2"", ""markupsafe==3.0.3"", ""nh3==0.3.5"", ""jeepney==0.9.0"", ""pip-tools==7.5.3"", ""virtualenv==21.3.3"", ""wheel==0.47.0"", ""edx-lint==6.1.0"", ""django-crum==0.7.9"", ""pyproject-hooks==1.2.0"", ""pyyaml==6.0.3"", ""more-itertools==11.0.2"", ""imagesize==2.0.0"", ""tomli-w==1.2.0"", ""accessible-pygments==0.0.5"", ""doc8==2.0.0"", ""freezegun==1.5.5"", ""python-discovery==1.3.1"", ""typing-extensions==4.15.0"", ""lxml[html-clean]==6.1.1"", ""keyring==25.7.0"", ""iniconfig==2.3.0"", ""pip==26.1.1"", ""celery==5.6.3"", ""certifi==2026.4.22"", ""kombu==5.3.5"", ""pydocstyle==6.3.0"", ""ddt==1.7.2"", ""cachetools==7.1.3"", ""build==1.5.0"", ""edx-celeryutils==2.0.0"", ""click==8.1.6"", ""jinja2==3.1.6"", ""sphinxcontrib-serializinghtml==2.0.0"", ""packaging==26.2"", ""billiard==4.2.0"", ""restructuredtext-lint==2.0.2"", ""markdown-it-py==4.2.0"", ""charset-normalizer==3.4.7"", ""cffi==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""tzdata==2026.2"", ""django==5.2.14"", ""python-dateutil==2.9.0.post0"", ""filelock==3.29.0"", ""secretstorage==3.5.0"", ""amqp==5.3.1"", ""wcwidth==0.7.0"", ""idna==3.15"", ""pyproject-api==1.10.0"", ""distlib==0.4.0"", ""astroid==4.0.4"", ""stevedore==5.8.0"", ""tomlkit==0.15.0"", ""docutils==0.21.2"", ""twine==6.2.0"", ""sqlparse==0.5.5"", ""sphinx==9.1.0"", ""tox==4.54.0"", ""greenlet==3.5.0"", ""isort==8.0.1"", ""edx-i18n-tools==2.0.0"", ""lxml-html-clean==0.4.4"", ""pygments==2.20.0"", ""django-model-utils==5.0.0"", ""psutil==7.2.2"", ""jaraco-classes==3.4.0"", ""jsonfield==3.2.0"", ""rich==15.0.0"", ""kombu==5.6.2"", ""amqp==5.2.0"", ""six==1.17.0"", ""setuptools==82.0.1"", ""pluggy==1.6.0"", ""pytest-cov==7.1.0"", ""soupsieve==2.8.3"", ""text-unidecode==1.3""]",8,"[""edx-celeryutils"", ""edx-django-utils"", ""code-annotations"", ""django-waffle"", ""djangorestframework"", ""pytest-django"", ""edx-i18n-tools"", ""pylint-django""]",11,"[""edx-celeryutils"", ""edx-django-utils"", ""code-annotations"", ""django-waffle"", ""djangorestframework"", ""pytest-django"", ""django-model-utils"", ""django-crum"", ""edx-i18n-tools"", ""jsonfield"", ""pylint-django""]",5,"[""edx-celeryutils"", ""edx-django-utils"", ""code-annotations"", ""django-waffle"", ""edx-i18n-tools""]",True,,True,False,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,10,"{""total_duration"": ""15081 minutes 18 seconds"", ""checks"": [{""name"": ""update-pip-graph"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-celery53-drflatest)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 17 seconds""}]}",Other,2019-05-15 20:16:52,master,Generic CSV Processor,449,11,True,False,False,False,False,False,False,2026-05-21 18:32:58,Apache License 2.0,0,True,0,0,662,0,5175,48164,0,True,True,False,False,True,False,False,,openedx,4,['http://super-csv.readthedocs.io/en/latest/: 404'],True,"['https://github.com/openedx/super-csv/blob/master/super_csv/csv_processor.py', 'https://github.com/openedx/devstack', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/super-csv/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/super-csv/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/super-csv.svg', 'https://pypi.python.org/pypi/super-csv/', 'https://github.com/openedx/super-csv/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/super-csv/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/super-csv/coverage.svg?branch=master', 'http://codecov.io/github/edx/super-csv?branch=master', 'https://readthedocs.org/projects/super-csv/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/super-csv.svg', 'https://img.shields.io/github/license/edx/super-csv.svg', 'https://github.com/openedx/super-csv/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,super-csv,"['3', '3.12']",https://github.com/openedx/super-csv,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-enterprise,,,,False,2026-06-01,False,False,False,False,4,0,,0,{},0,4,"{""@commitlint/config-conventional"": ""17.8.1"", ""conventional-changelog-conventionalcommits"": ""^5.0.0"", ""husky"": ""6.0.0"", ""lerna"": ""6.6.2""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,True,False,False,False,False,False,False,False,False,True,62,"{""total_duration"": ""1 minutes 24 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-09-17 19:51:18,master,Frontend utilities for enterprise features.,10229,13,True,False,False,False,False,False,False,2026-05-15 04:57:14,GNU AGPLv3,8,True,0,0,0,174788,2529,0,0,False,False,False,False,False,False,False,@edx/frontend-enterprise,openedx,0,[],False,"['https://github.com/openedx/frontend-build', 'https://github.com/conventional-changelog/commitlint', 'https://github.com/openedx/frontend-enterprise/actions/workflows/publish-from-package.yml', 'https://github.com/openedx/frontend-enterprise/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/frontend-enterprise/actions', 'https://codecov.io/gh/edx/frontend-enterprise/branch/master/graph/badge.svg?token=lBHoe5P4Q3', 'https://codecov.io/gh/edx/frontend-enterprise']",True,True,False,False,,,True,2025-12-15,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-profile,,,,False,2026-06-01,True,True,False,False,44,0,,0,{},35,9,"{""@commitlint/cli"": ""19.8.1"", ""@commitlint/config-angular"": ""19.8.1"", ""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""6.9.1"", ""@testing-library/react"": ""14.3.1"", ""glob"": ""11.1.0"", ""jest-environment-jsdom"": ""^30.3.0"", ""redux-mock-store"": ""1.5.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-regular-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@pact-foundation/pact"": ""^11.0.2"", ""@redux-devtools/extension"": ""3.3.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.48.0"", ""history"": ""5.3.0"", ""lodash.camelcase"": ""4.3.0"", ""lodash.get"": ""4.4.2"", ""lodash.pick"": ""4.4.0"", ""lodash.snakecase"": ""4.1.1"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""redux"": ""4.2.1"", ""redux-logger"": ""3.0.6"", ""redux-saga"": ""1.4.2"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""0.14.1"", ""reselect"": ""5.1.1"", ""universal-cookie"": ""4.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,45,"{""total_duration"": ""20162 minutes 53 seconds"", ""checks"": [{""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 36 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 34 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2019-01-10 17:55:59,master,Open edX micro-frontend application for managing user profile information.,23471,153,True,False,False,False,False,False,False,2026-05-29 15:43:33,GNU AGPLv3,16,True,0,0,387,191644,1972,0,0,False,False,False,False,True,False,False,@edx/frontend-app-profile,openedx,0,"['https://github.com/openedx/frontend-app-profile/blob/main/LICENSE: 404', 'https://backstage.herokuapp.com/catalog/default/component/frontend-app-profile: 502']",True,"['https://img.shields.io/github/license/openedx/frontend-app-profile.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-profile/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-profile/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-profile/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-profile?branch=main', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-profile.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-profile/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2025-07-21,8,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-tutor-plugins,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": """", ""checks"": []}",Other,2023-05-31 16:33:08,main,A set of Tutor plugins maintained by the Open edX community.,178,15,True,False,False,False,False,False,False,2026-05-17 01:02:12,GNU AGPLv3,3,False,0,196,0,0,4316,39661,3277,False,False,False,False,False,False,False,,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-tutor-plugins: 404'],True,"['https://img.shields.io/github/license/openedx/openedx-tutor-plugins.svg', 'https://github.com/openedx/openedx-tutor-plugins/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://docs.tutor.overhang.io/install.html', 'https://github.com/overhangio/cookiecutter-tutor-plugin', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-tutor-plugins/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/CGE253B7V', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-enterprise-subsidy-client,,,,True,2026-06-01,True,True,False,False,103,0,[],0,,0,0,,,19,"[""psutil==7.2.2"", ""pynacl==1.6.2"", ""edx-django-utils==8.0.1"", ""cffi==2.0.0"", ""urllib3==2.6.3"", ""certifi==2026.4.22"", ""django-waffle==5.0.0"", ""idna==3.13"", ""django==5.2.13"", ""edx-rest-api-client==7.0.0"", ""pycparser==3.0"", ""requests==2.33.1"", ""asgiref==3.11.1"", ""pyjwt==2.12.1"", ""sqlparse==0.5.5"", ""stevedore==5.7.0"", ""charset-normalizer==3.4.7"", ""django-crum==0.7.9"", ""click==8.3.3""]",103,"[""pynacl==1.6.2"", ""pylint==4.0.5"", ""sphinx==9.1.0"", ""sphinx-book-theme==1.2.0"", ""pylint-django==2.7.0"", ""pytest==9.0.3"", ""soupsieve==2.8.3"", ""isort==8.0.1"", ""accessible-pygments==0.0.5"", ""build==1.5.0"", ""python-discovery==1.2.2"", ""requests-toolbelt==1.0.0"", ""typing-extensions==4.15.0"", ""docutils==0.21.2"", ""asgiref==3.11.1"", ""sphinxcontrib-jsmath==1.0.1"", ""tomli-w==1.2.0"", ""charset-normalizer==3.4.7"", ""click-log==0.4.0"", ""snowballstemmer==3.0.1"", ""doc8==2.0.0"", ""keyring==25.7.0"", ""coverage[toml]==7.13.5"", ""platformdirs==4.9.6"", ""id==1.6.1"", ""pydocstyle==6.3.0"", ""roman-numerals==4.1.0"", ""rich==15.0.0"", ""mdurl==0.1.2"", ""restructuredtext-lint==2.0.2"", ""dill==0.4.1"", ""pygments==2.20.0"", ""pylint-celery==0.3"", ""diff-cover==10.2.0"", ""jaraco-classes==3.4.0"", ""certifi==2026.4.22"", ""idna==3.13"", ""markupsafe==3.0.3"", ""pyyaml==6.0.3"", ""readme-renderer==44.0"", ""nh3==0.3.5"", ""six==1.17.0"", ""sqlparse==0.5.5"", ""setuptools==82.0.1"", ""code-annotations==3.0.0"", ""pydata-sphinx-theme==0.16.1"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""mccabe==0.7.0"", ""edx-lint==6.1.0"", ""twine==6.2.0"", ""cryptography==47.0.0"", ""click==8.3.3"", ""pip-tools==7.5.3"", ""babel==2.18.0"", ""docutils==0.22.4"", ""sphinxcontrib-htmlhelp==2.1.0"", ""jaraco-functools==4.4.0"", ""imagesize==2.0.0"", ""wheel==0.47.0"", ""virtualenv==21.3.0"", ""edx-django-utils==8.0.1"", ""cffi==2.0.0"", ""distlib==0.4.0"", ""sphinxcontrib-qthelp==2.0.0"", ""secretstorage==3.5.0"", ""pip==26.1"", ""colorama==0.4.6"", ""tomlkit==0.14.0"", ""pyjwt==2.12.1"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""cachetools==7.1.1"", ""jinja2==3.1.6"", ""pyproject-api==1.10.0"", ""iniconfig==2.3.0"", ""chardet==7.4.3"", ""markdown-it-py==4.0.0"", ""pylint-plugin-utils==0.9.0"", ""pluggy==1.6.0"", ""psutil==7.2.2"", ""pytest-cov==7.1.0"", ""rfc3986==2.0.0"", ""jeepney==0.9.0"", ""astroid==4.0.4"", ""beautifulsoup4==4.14.3"", ""jaraco-context==6.1.2"", ""urllib3==2.6.3"", ""django-waffle==5.0.0"", ""more-itertools==11.0.2"", ""python-slugify==8.0.4"", ""django==5.2.13"", ""edx-rest-api-client==7.0.0"", ""pycparser==3.0"", ""requests==2.33.1"", ""text-unidecode==1.3"", ""filelock==3.29.0"", ""packaging==26.2"", ""stevedore==5.7.0"", ""pycodestyle==2.14.0"", ""alabaster==1.0.0"", ""tox==4.53.1"", ""django-crum==0.7.9""]",5,"[""django-waffle"", ""pylint-django"", ""code-annotations"", ""edx-django-utils"", ""edx-rest-api-client""]",6,"[""django-waffle"", ""pylint-django"", ""django-crum"", ""code-annotations"", ""edx-django-utils"", ""edx-rest-api-client""]",4,"[""edx-django-utils"", ""edx-rest-api-client"", ""django-waffle"", ""code-annotations""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,22,"{""total_duration"": ""13922 minutes 27 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, unittests)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2022-12-21 21:19:15,main,Client for making requests to edx-enterprise-subsidy.,246,5,True,False,False,False,False,False,False,2026-06-01 03:03:24,GNU AGPLv3,3,True,0,0,0,0,3529,34065,0,False,True,False,False,True,False,False,,openedx,0,"['https://docs.openedx.org/projects/edx-enterprise-subsidy-client/how-tos/how-to-deploy-this-component.html: 404', 'https://docs.openedx.org/projects/edx-enterprise-subsidy-client: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/edx-enterprise-subsidy-client: 404', 'https://edx-enterprise-subsidy-client.readthedocs.io/en/latest/: 404']",True,"['https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/edx-enterprise-subsidy-client/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/edx-enterprise-subsidy-client.svg', 'https://pypi.python.org/pypi/edx-enterprise-subsidy-client/', 'https://github.com/openedx/edx-enterprise-subsidy-client/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/edx-enterprise-subsidy-client/actions', 'https://codecov.io/github/openedx/edx-enterprise-subsidy-client/coverage.svg?branch=main', 'https://codecov.io/github/openedx/edx-enterprise-subsidy-client?branch=main', 'https://readthedocs.org/projects/edx-enterprise-subsidy-client/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-enterprise-subsidy-client.svg', 'https://img.shields.io/github/license/openedx/edx-enterprise-subsidy-client.svg', 'https://github.com/openedx/edx-enterprise-subsidy-client/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,True,,False,edx-enterprise-subsidy-client,"['3', '3.12']",https://github.com/openedx/edx-enterprise-subsidy-client,False,True,True,False,False,False,False,False,False,[],[],,[] -openedx/xapi-db-load,,,,True,2026-06-01,True,True,False,False,117,0,[],0,,0,0,,,35,"[""charset-normalizer==3.4.7"", ""chdb==4.1.8"", ""requests==2.34.2"", ""certifi==2026.5.20"", ""frozenlist==1.8.0"", ""clickhouse-connect[async]==1.0.1"", ""lz4==4.4.5"", ""propcache==0.5.2"", ""attrs==26.1.0"", ""yarl==1.24.2"", ""chdb-core==26.3.0"", ""pandas==3.0.3"", ""botocore==1.43.14"", ""aiohttp==3.13.5"", ""s3transfer==0.17.0"", ""urllib3==2.7.0"", ""smart-open[s3]==7.6.1"", ""urwid==4.0.0"", ""typing-extensions==4.15.0"", ""click==8.4.1"", ""six==1.17.0"", ""pyyaml==6.0.3"", ""aiohappyeyeballs==2.6.2"", ""zstandard==0.25.0"", ""boto3==1.43.14"", ""pyarrow==24.0.0"", ""wcwidth==0.7.0"", ""wrapt==2.2.1"", ""numpy==2.4.6"", ""python-dateutil==2.9.0.post0"", ""multidict==6.7.1"", ""idna==3.16"", ""uvloop==0.22.1"", ""jmespath==1.1.0"", ""aiosignal==1.4.0""]",117,"[""keyring==25.7.0"", ""isort==8.0.1"", ""sphinxcontrib-applehelp==2.0.0"", ""charset-normalizer==3.4.7"", ""chdb==4.1.8"", ""certifi==2026.5.20"", ""packaging==26.2"", ""readme-renderer==44.0"", ""rich==15.0.0"", ""twine==6.2.0"", ""pydocstyle==6.3.0"", ""pyproject-hooks==1.2.0"", ""chardet==7.4.3"", ""virtualenv==21.3.3"", ""setuptools==82.0.1"", ""aiohttp==3.13.5"", ""s3transfer==0.17.0"", ""urllib3==2.7.0"", ""tomlkit==0.15.0"", ""jaraco-functools==4.5.0"", ""cffi==2.0.0"", ""python-discovery==1.3.1"", ""docutils==0.22.4"", ""cryptography==48.0.0"", ""zstandard==0.25.0"", ""sphinxcontrib-qthelp==2.0.0"", ""alabaster==1.0.0"", ""wrapt==2.2.1"", ""pygments==2.20.0"", ""roman-numerals==4.1.0"", ""pip-tools==7.5.3"", ""mccabe==0.7.0"", ""id==1.6.1"", ""edx-lint==6.1.0"", ""frozenlist==1.8.0"", ""pylint-django==2.7.0"", ""tox==4.54.0"", ""pydata-sphinx-theme==0.16.1"", ""imagesize==2.0.0"", ""tomli-w==1.2.0"", ""filelock==3.29.0"", ""jmespath==1.1.0"", ""pytest-asyncio==1.3.0"", ""nh3==0.3.5"", ""smart-open[s3]==7.6.1"", ""distlib==0.4.0"", ""code-annotations==3.0.0"", ""pyyaml==6.0.3"", ""more-itertools==11.1.0"", ""markdown-it-py==4.2.0"", ""wheel==0.47.0"", ""pytest-cov==7.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""python-dateutil==2.9.0.post0"", ""snowballstemmer==3.1.0"", ""uvloop==0.22.1"", ""text-unidecode==1.3"", ""aiosignal==1.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""platformdirs==4.9.6"", ""requests==2.34.2"", ""lz4==4.4.5"", ""propcache==0.5.2"", ""pytest==9.0.3"", ""requests-toolbelt==1.0.0"", ""yarl==1.24.2"", ""click-log==0.4.0"", ""pycodestyle==2.14.0"", ""typing-extensions==4.15.0"", ""click==8.4.1"", ""rfc3986==2.0.0"", ""jinja2==3.1.6"", ""build==1.5.0"", ""jeepney==0.9.0"", ""pip==26.1.1"", ""iniconfig==2.3.0"", ""pyarrow==24.0.0"", ""secretstorage==3.5.0"", ""colorama==0.4.6"", ""numpy==2.4.6"", ""markupsafe==3.0.3"", ""python-slugify==8.0.4"", ""sphinx==9.1.0"", ""coverage[toml]==7.14.0"", ""pluggy==1.6.0"", ""diff-cover==10.2.1"", ""dill==0.4.1"", ""clickhouse-connect[async]==1.0.1"", ""soupsieve==2.8.4"", ""attrs==26.1.0"", ""mdurl==0.1.2"", ""sphinxcontrib-devhelp==2.0.0"", ""jaraco-classes==3.4.0"", ""babel==2.18.0"", ""pylint-plugin-utils==0.9.0"", ""chdb-core==26.3.0"", ""pandas==3.0.3"", ""cachetools==7.1.4"", ""botocore==1.43.14"", ""accessible-pygments==0.0.5"", ""pylint-celery==0.3"", ""urwid==4.0.0"", ""stevedore==5.8.0"", ""six==1.17.0"", ""pycparser==3.0"", ""astroid==4.0.4"", ""jaraco-context==6.1.2"", ""pyproject-api==1.10.0"", ""aiohappyeyeballs==2.6.2"", ""sphinx-book-theme==1.2.0"", ""boto3==1.43.14"", ""wcwidth==0.7.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""multidict==6.7.1"", ""idna==3.16"", ""beautifulsoup4==4.14.3"", ""pylint==4.0.5""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,10,"{""total_duration"": ""9645 minutes 31 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""tests (3.12)"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2022-11-21 15:37:46,main,,5910,6,True,False,False,False,False,False,False,2026-06-01 00:39:05,GNU AGPLv3,2,True,0,0,0,0,3008,188454,0,True,True,False,False,True,False,False,,openedx,0,"['http://ralph.tutor-nightly-local.orb.local/xAPI/statements: HTTPConnectionPool(host=\'ralph.tutor-nightly-local.orb.local\', port=80): Max retries exceeded with url: /xAPI/statements (Caused by NameResolutionError(""HTTPConnection(host=\'ralph.tutor-nightly-local.orb.local\', port=80): Failed to resolve \'ralph.tutor-nightly-local.orb.local\' ([Errno -3] Temporary failure in name resolution)""))', 'https://openedx-aspects-loadtest.s3.amazonaws.com/logs/large_test/: 403', 'https://docs.openedx.org/projects/xapi-db-load: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/xapi-db-load: 404']",True,"['https://github.com/openedx/xapi-db-load/issues', 'https://pypi.org/project/smart-open/', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,True,"{ +openedx/public-engineering,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""1211 minutes 52 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2021-11-22 21:15:52,main,General public issue repository for the Open edX engineering community,16,4,True,False,False,False,False,False,False,2025-03-05 16:20:54,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-lib-special-exams,,,,False,2026-06-08,False,False,False,False,30,0,,0,{},8,22,"{""@edx/frontend-platform"": ""^8.3.0"", ""@openedx/frontend-build"": ""^14.3.3"", ""@openedx/paragon"": ""^23.3.0"", ""@reduxjs/toolkit"": ""^1.5.1"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""5.10.1"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""axios-mock-adapter"": ""1.18.2"", ""es-check"": ""5.1.4"", ""glob"": ""7.1.6"", ""husky"": ""3.1.0"", ""jest"": ""29.7.0"", ""prop-types"": ""^15.7.2"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-redux"": ""^7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""redux"": ""4.0.5"", ""rosie"": ""2.0.1"", ""semantic-release"": ""^20.1.3""}","{""@fortawesome/fontawesome-svg-core"": ""1.2.34"", ""@fortawesome/free-brands-svg-icons"": ""5.11.2"", ""@fortawesome/free-regular-svg-icons"": ""5.11.2"", ""@fortawesome/free-solid-svg-icons"": ""5.11.2"", ""@fortawesome/react-fontawesome"": ""0.1.14"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""babel-polyfill"": ""6.26.0"", ""eventemitter3"": ""^4.0.7""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,True,False,False,False,False,False,True,False,False,True,12,"{""total_duration"": ""2 minutes 12 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 12 seconds""}, {""name"": ""Release"", ""duration"": ""2 minutes 2 seconds""}]}",Other,2021-04-07 21:02:17,main,Frontend component library for displaying special exams on the edx platform,2966,25,True,False,False,False,False,False,False,2026-05-20 13:20:43,,3,True,0,0,0,426898,1750,0,0,False,False,False,False,False,False,False,@edx/frontend-lib-special-exams,openedx,0,"['https://github.com/edx/frontend-lib-special-exams.git: 504', 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://github.com/edx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 504', 'https://github.com/openedx/frontend-plugin-framework: 504']",False,"['https://github.com/nvm-sh/nvm', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-lib-special-exams/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-build,,,,False,2026-06-08,False,False,False,False,73,0,,0,{},70,3,"{""@babel/preset-typescript"": ""^7.18.6"", ""@types/react"": ""^18.3.18"", ""@types/react-dom"": ""^18.3.5""}","{""@babel/cli"": ""^7.24.8"", ""@babel/core"": ""^7.24.9"", ""@babel/eslint-parser"": ""^7.28.6"", ""@babel/plugin-proposal-class-properties"": ""^7.18.6"", ""@babel/plugin-proposal-object-rest-spread"": ""^7.20.7"", ""@babel/plugin-syntax-dynamic-import"": ""^7.8.3"", ""@babel/preset-env"": ""^7.24.8"", ""@babel/preset-react"": ""^7.26.3"", ""@edx/eslint-config"": ""^4.3.0"", ""@edx/new-relic-source-map-webpack-plugin"": ""^2.1.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@formatjs/cli"": ""^6.0.3"", ""@fullhuman/postcss-purgecss"": ""^5.0.0"", ""@pmmmwh/react-refresh-webpack-plugin"": ""^0.5.15"", ""@svgr/webpack"": ""^8.1.0"", ""@types/jest"": ""^29.5.12"", ""@typescript-eslint/eslint-plugin"": ""^5.58.0"", ""@typescript-eslint/parser"": ""^5.58.0"", ""autoprefixer"": ""^10.4.27"", ""babel-jest"": ""^29.7.0"", ""babel-loader"": ""^9.2.1"", ""babel-plugin-formatjs"": ""^10.4.0"", ""babel-plugin-transform-imports"": ""^2.0.0"", ""babel-polyfill"": ""^6.26.0"", ""chalk"": ""^4.1.2"", ""clean-webpack-plugin"": ""^4.0.0"", ""css-loader"": ""^5.2.7"", ""cssnano"": ""^6.0.3"", ""dotenv"": ""^8.6.0"", ""dotenv-webpack"": ""^8.0.1"", ""eslint"": ""^8.57.1"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-config-airbnb-typescript"": ""^17.0.0"", ""eslint-import-resolver-typescript"": ""^4.2.1"", ""eslint-plugin-formatjs"": ""^4.12.2"", ""eslint-plugin-import"": ""^2.32.0"", ""eslint-plugin-jsx-a11y"": ""^6.10.2"", ""eslint-plugin-react"": ""^7.37.5"", ""eslint-plugin-react-hooks"": ""^4.6.2"", ""express"": ""^4.18.2"", ""file-loader"": ""^6.2.0"", ""html-webpack-plugin"": ""^5.6.3"", ""identity-obj-proxy"": ""^3.0.0"", ""image-minimizer-webpack-plugin"": ""^4.1.4"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""mini-css-extract-plugin"": ""^1.6.2"", ""parse5"": ""^7.1.2"", ""postcss"": ""^8.4.49"", ""postcss-custom-media"": ""^10.0.8"", ""postcss-loader"": ""^7.3.4"", ""postcss-rtlcss"": ""^5.7.1"", ""react-dev-utils"": ""^12.0.1"", ""react-refresh"": ""^0.16.0"", ""resolve-url-loader"": ""^5.0.0"", ""sass"": ""^1.85.1"", ""sass-loader"": ""^13.3.3"", ""sharp"": ""^0.34.3"", ""source-map-loader"": ""^4.0.2"", ""style-loader"": ""^3.3.4"", ""ts-jest"": ""^29.1.4"", ""tsconfig-paths-webpack-plugin"": ""^4.2.0"", ""typescript"": ""^4.9.5"", ""url-loader"": ""^4.1.1"", ""webpack"": ""^5.97.1"", ""webpack-bundle-analyzer"": ""^4.10.1"", ""webpack-cli"": ""^5.1.4"", ""webpack-dev-server"": ""^4.15.1"", ""webpack-merge"": ""^5.10.0"", ""webpack-remove-empty-scripts"": ""^1.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,True,True,False,False,False,False,False,False,True,True,True,32,"{""total_duration"": ""2 minutes 0 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 0 seconds""}, {""name"": ""Release"", ""duration"": ""1 minutes 45 seconds""}, {""name"": ""Syncing branches"", ""duration"": ""0 minutes 15 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2019-09-23 13:41:45,master,Common build scripts and tooling for Open edX micro-frontends.,17128,40,True,False,False,False,False,False,False,2026-05-20 13:13:27,GNU AGPLv3,11,True,0,0,224,84076,0,0,267,False,False,False,False,False,False,False,,openedx,0,"['https://travis-ci.com/edx/frontend-build: 415', 'https://github.com/edx-unsupported/frontend-base/blob/master/LICENSE: 504', 'https://github.com/openedx/frontend-build.git: 504']",False,"['https://api.travis-ci.com/edx/frontend-build.svg?branch=master', 'https://img.shields.io/npm/v/@openedx/frontend-build.svg', 'https://img.shields.io/codecov/c/github/edx/frontend-build', 'https://codecov.io/gh/edx/frontend-build', 'https://img.shields.io/npm/l/@openedx/frontend-build.svg', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/devstack/tree/master/docs/decisions/0005-frontend-package-mounts.rst', 'https://webpack.js.org/configuration/resolve/', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://github.com/openedx/frontend-build/issues', 'https://openedx.org/community/connect', 'https://developer.chrome.com/docs/lighthouse/overview/', 'https://github.com/openedx/wg-frontend/issues/138']",True,True,False,False,,,True,2026-03-27,2026-01-31,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-ora2,,,,True,2026-06-08,True,True,False,False,208,0,[],0,{},14,27,"{""@babel/polyfill"": ""^7.12.1"", ""@testing-library/react"": ""^12.1.2"", ""dotenv-expand"": ""^5.1.0"", ""dotenvi"": ""^0.9.1"", ""eslint-config-google"": ""^0.14.0"", ""fetch-mock"": ""^9.11.0"", ""jasmine"": ""4.6.0"", ""jasmine-core"": ""4.6.0"", ""jshint"": ""^2.13.1"", ""karma"": ""^6.3.9"", ""karma-chrome-launcher"": ""^2.2.0"", ""karma-coverage"": ""^2.1.0"", ""karma-firefox-launcher"": ""^2.1.3"", ""karma-jasmine"": ""4.0.0"", ""karma-jasmine-html-reporter"": ""~0.2"", ""karma-jasmine-jquery"": ""git+https://github.com/nkoder/karma-jasmine-jquery.git#be1566e6a069c867812b3845a46c9c6ca73b1e9f"", ""karma-phantomjs-launcher"": ""^1.0.4"", ""karma-sinon"": ""^1.0.5"", ""karma-spec-reporter"": ""^0.0.31"", ""karma-webpack"": ""^4.0.2"", ""phantomjs-prebuilt"": ""^2.1.14"", ""postcss-loader"": ""4.2.0"", ""sinon"": ""^7.5.0"", ""webpack"": ""^4.46.0"", ""webpack-cli"": ""^4.10.0"", ""webpack-dev-server"": ""^4.15.1"", ""webpack-manifest-plugin"": ""^4.0.2""}","{""@edx/frontend-build"": ""8.0.6"", ""@openedx/paragon"": ""^21.5.7"", ""backbone"": ""1.2.3"", ""backgrid"": ""~0.3.8"", ""dotenv-webpack"": ""^7.0.3"", ""edx-ui-toolkit"": ""^1.5.4"", ""moment"": ""^2.29.1"", ""moment-timezone"": ""^0.5.34"", ""prop-types"": ""^15.7.2"", ""react"": ""^17.0.2"", ""react-dom"": ""^17.0.2"", ""react-intl"": ""^5.25.1"", ""requirejs"": ""^2.3.6"", ""underscore"": ""1.13.2""}",67,"[""path==16.16.0"", ""lazy==1.6"", ""html5lib==1.1"", ""lxml-html-clean==0.4.5"", ""psutil==7.2.2"", ""web-fragments==4.0.0"", ""djangorestframework==3.17.1"", ""xblock==6.1.0"", ""edx-submissions==4.0.0"", ""django-model-utils==5.0.0"", ""path-py==12.5.0"", ""webencodings==0.5.1"", ""edx-opaque-keys[django]==4.0.0"", ""pymongo==4.17.0"", ""s3transfer==0.18.0"", ""charset-normalizer==3.4.7"", ""python-slugify==8.0.4"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5"", ""django-crum==0.7.9"", ""pycparser==3.0"", ""django-waffle==5.0.0"", ""openedx-filters==3.4.1"", ""webob==1.8.10"", ""code-annotations==3.0.0"", ""edx-i18n-tools==2.0.0"", ""appdirs==1.4.4"", ""edx-django-release-util==1.5.0"", ""pyyaml==6.0.3"", ""asgiref==3.11.1"", ""text-unidecode==1.3"", ""python-dateutil==2.9.0.post0"", ""idna==3.18"", ""jmespath==1.1.0"", ""jinja2==3.1.6"", ""polib==1.2.0"", ""urllib3==2.7.0"", ""voluptuous==0.16.0"", ""edx-django-utils==8.0.1"", ""dnspython==2.8.0"", ""fs==2.4.16"", ""simplejson==4.1.1"", ""attrs==26.1.0"", ""edx-ccx-keys==2.0.2"", ""botocore==1.43.22"", ""edx-toggles==6.0.0"", ""defusedxml==0.7.1"", ""certifi==2026.5.20"", ""django==5.2.15"", ""typing-extensions==4.15.0"", ""bleach==6.3.0"", ""requests==2.34.2"", ""fastavro==1.12.2"", ""pynacl==1.6.2"", ""setuptools==82.0.1"", ""boto3==1.43.22"", ""jsonfield==3.2.0"", ""six==1.17.0"", ""mako==1.3.12"", ""cffi==2.0.0"", ""python-swiftclient==4.10.0"", ""stevedore==5.8.0"", ""lxml[html-clean]==6.1.1"", ""django-simple-history==3.11.0"", ""click==8.4.1"", ""openedx-events==11.2.0"", ""pytz==2026.2""]",167,"[""amqp==5.3.1"", ""sphinxcontrib-mermaid==2.0.2"", ""tomlkit==0.15.0"", ""pygments==2.20.0"", ""edx-submissions==4.0.0"", ""path-py==12.5.0"", ""kombu==5.6.2"", ""edx-opaque-keys[django]==4.0.0"", ""markdown-it-py==4.2.0"", ""webencodings==0.5.1"", ""isort==6.1.0"", ""snowballstemmer==3.1.1"", ""iniconfig==2.3.0"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""click-repl==0.3.0"", ""pyyaml==6.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""imagesize==2.0.0"", ""celery==5.6.3"", ""jmespath==1.1.0"", ""astroid==3.3.11"", ""dnspython==2.8.0"", ""freezegun==0.3.14"", ""shellingham==1.5.4"", ""edx-toggles==6.0.0"", ""colorama==0.4.6"", ""websockets==16.0"", ""docutils==0.22.4"", ""fastavro==1.12.2"", ""pluggy==1.6.0"", ""boto3==1.43.22"", ""sphinx-autobuild==2025.8.25"", ""accessible-pygments==0.0.5"", ""uvicorn==0.49.0"", ""path==16.16.0"", ""lazy==1.6"", ""html5lib==1.1"", ""web-fragments==4.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""djangorestframework==3.17.1"", ""sphinx==9.1.0"", ""pymongo==4.17.0"", ""charset-normalizer==3.4.7"", ""pytest-cov==7.1.0"", ""django-crum==0.7.9"", ""webob==1.8.10"", ""vine==5.1.0"", ""code-annotations==3.0.0"", ""edx-django-release-util==1.5.0"", ""watchfiles==1.2.0"", ""build==1.5.0"", ""text-unidecode==1.3"", ""cachetools==7.1.4"", ""babel==2.18.0"", ""sphinxcontrib-jsmath==1.0.1"", ""click-log==0.4.0"", ""polib==1.2.0"", ""arrow==1.4.0"", ""pylint-django==2.5.5"", ""voluptuous==0.16.0"", ""starlette==1.2.1"", ""tzdata==2026.2"", ""attrs==26.1.0"", ""tox==4.55.1"", ""mock==5.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""wcwidth==0.7.0"", ""xblock-sdk==0.14.0"", ""django==5.2.15"", ""setuptools==82.0.1"", ""platformdirs==4.10.0"", ""dill==0.4.1"", ""pip-tools==7.5.3"", ""click-plugins==1.1.1.2"", ""stevedore==5.8.0"", ""psutil==7.2.2"", ""pytz==2026.2"", ""lxml-html-clean==0.4.5"", ""factory-boy==3.3.3"", ""pytest-django==4.12.0"", ""xblock==6.1.0"", ""django-model-utils==5.0.0"", ""virtualenv==21.4.2"", ""s3transfer==0.18.0"", ""markupsafe==3.0.3"", ""rich==15.0.0"", ""sqlparse==0.5.5"", ""soupsieve==2.8.4"", ""appdirs==1.4.4"", ""beautifulsoup4==4.14.3"", ""filelock==3.29.1"", ""python-dateutil==2.9.0.post0"", ""idna==3.18"", ""urllib3==2.7.0"", ""tzlocal==5.3.1"", ""edx-django-utils==8.0.1"", ""fs==2.4.16"", ""simplejson==4.1.1"", ""coveralls==4.1.0"", ""edx-ccx-keys==2.0.2"", ""certifi==2026.5.20"", ""typing-extensions==4.15.0"", ""bleach==6.3.0"", ""pylint==3.3.9"", ""pynacl==1.6.2"", ""mdurl==0.1.2"", ""billiard==4.2.4"", ""python-swiftclient==4.10.0"", ""packaging==26.2"", ""responses==0.26.1"", ""lxml[html-clean]==6.1.1"", ""django-simple-history==3.11.0"", ""mccabe==0.7.0"", ""cryptography==48.0.0"", ""openedx-events==11.2.0"", ""alabaster==1.0.0"", ""pydata-sphinx-theme==0.16.1"", ""pylint-plugin-utils==0.9.0"", ""h11==0.16.0"", ""tomli-w==1.2.0"", ""distlib==0.4.1"", ""sphinx-copybutton==0.5.2"", ""python-discovery==1.4.0"", ""moto==4.2.14"", ""sphinx-book-theme==1.2.0"", ""werkzeug==3.1.8"", ""pylint-celery==0.3"", ""testfixtures==12.0.0"", ""python-slugify==8.0.4"", ""pypng==0.20220715.0"", ""pyinstrument==5.1.2"", ""pycparser==3.0"", ""ddt==1.0.0"", ""django-waffle==5.0.0"", ""openedx-filters==3.4.1"", ""pytest==9.0.3"", ""edx-i18n-tools==2.0.0"", ""cookiecutter==2.7.1"", ""sphinxcontrib-qthelp==2.0.0"", ""asgiref==3.11.1"", ""faker==40.21.0"", ""prompt-toolkit==3.0.52"", ""jinja2==3.1.6"", ""more-itertools==11.1.0"", ""typer==0.26.7"", ""coverage[toml]==7.14.1"", ""botocore==1.43.22"", ""pyproject-api==1.10.1"", ""click-didyoumean==0.3.1"", ""xmltodict==1.0.4"", ""defusedxml==0.7.1"", ""wheel==0.47.0"", ""requests==2.34.2"", ""edx-lint==6.1.0"", ""roman-numerals==4.1.0"", ""pycodestyle==2.14.0"", ""jsonfield==3.2.0"", ""six==1.17.0"", ""mako==1.3.12"", ""cffi==2.0.0"", ""annotated-doc==0.0.4"", ""anyio==4.13.0"", ""binaryornot==0.6.0"", ""fs-s3fs==1.1.1"", ""click==8.4.1"", ""pip==26.1.2""]",14,"[""djangorestframework"", ""edx-django-utils"", ""pytest-django"", ""edx-submissions"", ""code-annotations"", ""edx-toggles"", ""web-fragments"", ""factory-boy"", ""django-waffle"", ""edx-django-release-util"", ""xblock-sdk"", ""xblock"", ""pylint-django"", ""edx-i18n-tools""]",18,"[""djangorestframework"", ""edx-django-utils"", ""django-simple-history"", ""edx-submissions"", ""code-annotations"", ""edx-toggles"", ""pytest-django"", ""web-fragments"", ""factory-boy"", ""django-model-utils"", ""django-waffle"", ""django-crum"", ""edx-django-release-util"", ""xblock-sdk"", ""xblock"", ""jsonfield"", ""pylint-django"", ""edx-i18n-tools""]",10,"[""edx-django-utils"", ""edx-submissions"", ""code-annotations"", ""edx-toggles"", ""web-fragments"", ""django-waffle"", ""edx-django-release-util"", ""xblock-sdk"", ""xblock"", ""edx-i18n-tools""]",False,,True,False,True,False,False,False,True,True,True,True,True,True,True,True,True,True,True,True,True,True,True,160,"{""total_duration"": ""6 minutes 18 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, js)"", ""duration"": ""6 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""3 minutes 51 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""3 minutes 27 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""2 minutes 53 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2013-12-23 20:54:54,master,Open Response Assessment Suite,162111,215,True,False,False,False,False,False,False,2026-06-05 05:00:55,GNU AGPLv3,62,True,5382,0,238118,687718,7611,2287759,4574,False,True,False,False,True,True,True,,openedx,7,['https://open.edx.org/getting-help: 403'],True,"['https://github.com/openedx/edx-platform', 'https://docs.openedx.org/en/latest/educators/concepts/exercise_tools/about_OpenResponseAssessments.html', 'https://openedx.atlassian.net/wiki/spaces/EDUCATOR/pages/9765004/ORA+Developer+Guide', 'https://github.com/openedx/devstack', 'https://github.com/openedx/edx-ora2/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-ora2/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/edx/edx-ora2/badge.png?branch=master', 'https://coveralls.io/r/edx/edx-ora2?branch=master']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,ora2,"['3', '3.12']",http://github.com/openedx/edx-ora2,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-plugin-framework,,,,False,2026-06-08,True,True,False,False,21,0,,0,{},5,16,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/frontend-platform"": ""^8.3.0"", ""@openedx/frontend-build"": ""^14.3.1"", ""@openedx/paragon"": ""^23.3.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^6.1.4"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""glob"": ""7.2.3"", ""husky"": ""7.0.4"", ""jest"": ""29.7.0"", ""prop-types"": ""^15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.0.13"", ""semantic-release"": ""^22.0.12""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""classnames"": ""^2.3.2"", ""core-js"": ""3.37.1"", ""react-redux"": ""8.1.1"", ""redux"": ""4.2.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,True,True,True,True,21,"{""total_duration"": ""26618 minutes 7 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 53 seconds""}, {""name"": ""test"", ""duration"": ""1 minutes 41 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2023-11-02 19:50:48,master,An experimental framework for micro-frontend plugins.,1334,27,True,False,False,False,False,False,False,2026-06-01 16:49:14,GNU AGPLv3,12,True,0,0,1175,99350,2240,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml/badge.svg: 504', 'https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml: 504', 'https://github.com/openedx/frontend-platform/blob/master/src/config.js: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-framework: 404']",True,"['https://img.shields.io/github/license/openedx/frontend-plugin-framework.svg', 'https://github.com/openedx/frontend-plugin-framework/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://codecov.io/github/openedx/frontend-plugin-framework/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-plugin-framework?branch=master', 'https://github.com/openedx/frontend-platform/blob/master/docs/decisions/0007-javascript-file-configuration.rst', 'https://github.com/openedx/frontend-platform/blob/master/src/react/ErrorBoundary.jsx', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-plugin-framework/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2025-11-24,2024-05-20,10,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/event-bus-redis,,,,True,2026-06-08,True,True,False,False,115,0,[],0,,0,0,,,30,"[""text-unidecode==1.3"", ""edx-django-utils==8.0.1"", ""pyyaml==6.0.3"", ""fastavro==1.12.2"", ""attrs==26.1.0"", ""psutil==7.2.2"", ""python-slugify==8.0.4"", ""sqlparse==0.5.5"", ""django-waffle==5.0.0"", ""pymongo==4.17.0"", ""typing-extensions==4.15.0"", ""markupsafe==3.0.3"", ""openedx-events==11.2.0"", ""cffi==2.0.0"", ""jinja2==3.1.6"", ""walrus==0.9.8"", ""django==5.2.14"", ""edx-opaque-keys[django]==4.0.0"", ""edx-ccx-keys==2.0.2"", ""six==1.17.0"", ""django-crum==0.7.9"", ""dnspython==2.8.0"", ""redis==8.0.0"", ""code-annotations==3.0.0"", ""pycparser==3.0"", ""pynacl==1.6.2"", ""click==8.4.1"", ""stevedore==5.8.0"", ""asgiref==3.11.1"", ""edx-toggles==6.0.0""]",115,"[""pydata-sphinx-theme==0.16.1"", ""sphinx==9.1.0"", ""diff-cover==10.3.0"", ""packaging==26.2"", ""attrs==26.1.0"", ""iniconfig==2.3.0"", ""psutil==7.2.2"", ""django-waffle==5.0.0"", ""chardet==7.4.3"", ""filelock==3.29.0"", ""requests==2.34.2"", ""jaraco-classes==3.4.0"", ""colorama==0.4.6"", ""typing-extensions==4.15.0"", ""pylint-django==2.7.0"", ""markupsafe==3.0.3"", ""roman-numerals==4.1.0"", ""openedx-events==11.2.0"", ""certifi==2026.5.20"", ""docutils==0.22.4"", ""walrus==0.9.8"", ""dill==0.4.1"", ""imagesize==2.0.0"", ""alabaster==1.0.0"", ""more-itertools==11.1.0"", ""redis==8.0.0"", ""beautifulsoup4==4.14.3"", ""accessible-pygments==0.0.5"", ""lxml[html-clean]==6.1.1"", ""pycparser==3.0"", ""pylint-plugin-utils==0.9.0"", ""asgiref==3.11.1"", ""edx-toggles==6.0.0"", ""tox==4.55.0"", ""sphinxcontrib-qthelp==2.0.0"", ""build==1.5.0"", ""urllib3==2.7.0"", ""id==1.6.1"", ""edx-i18n-tools==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""lxml-html-clean==0.4.5"", ""pygments==2.20.0"", ""keyring==25.7.0"", ""tomlkit==0.15.0"", ""click-log==0.4.0"", ""twine==6.2.0"", ""nh3==0.3.5"", ""cffi==2.0.0"", ""platformdirs==4.10.0"", ""edx-opaque-keys[django]==4.0.0"", ""rich==15.0.0"", ""tomli-w==1.2.0"", ""django-crum==0.7.9"", ""dnspython==2.8.0"", ""jaraco-functools==4.5.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""click==8.4.1"", ""virtualenv==21.4.2"", ""text-unidecode==1.3"", ""babel==2.18.0"", ""edx-django-utils==8.0.1"", ""sphinx-book-theme==1.2.0"", ""snowballstemmer==3.1.0"", ""pyyaml==6.0.3"", ""fastavro==1.12.2"", ""pip==26.1.2"", ""polib==1.2.0"", ""python-slugify==8.0.4"", ""sqlparse==0.5.5"", ""distlib==0.4.0"", ""pymongo==4.17.0"", ""sphinxcontrib-applehelp==2.0.0"", ""mdurl==0.1.2"", ""path==16.16.0"", ""pylint==4.0.5"", ""coverage[toml]==7.14.1"", ""setuptools==82.0.1"", ""mccabe==0.7.0"", ""python-discovery==1.4.0"", ""markdown-it-py==4.2.0"", ""idna==3.17"", ""pluggy==1.6.0"", ""wheel==0.47.0"", ""charset-normalizer==3.4.7"", ""edx-ccx-keys==2.0.2"", ""isort==8.0.1"", ""six==1.17.0"", ""pycodestyle==2.14.0"", ""astroid==4.0.4"", ""cachetools==7.1.4"", ""pytest==9.0.3"", ""pynacl==1.6.2"", ""stevedore==5.8.0"", ""rfc3986==2.0.0"", ""pydocstyle==6.3.0"", ""requests-toolbelt==1.0.0"", ""pyproject-api==1.10.1"", ""pytest-cov==7.1.0"", ""soupsieve==2.8.4"", ""readme-renderer==44.0"", ""pylint-celery==0.3"", ""jaraco-context==6.1.2"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""jinja2==3.1.6"", ""sphinxcontrib-jsmath==1.0.1"", ""django==5.2.14"", ""cryptography==48.0.0"", ""ddt==1.7.2"", ""code-annotations==3.0.0"", ""secretstorage==3.5.0"", ""jeepney==0.9.0"", ""pytest-django==4.12.0"", ""pip-tools==7.5.3"", ""edx-lint==6.1.0""]",7,"[""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""pytest-django"", ""edx-toggles"", ""django-waffle""]",8,"[""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""django-crum"", ""pytest-django"", ""edx-toggles"", ""django-waffle""]",5,"[""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""edx-toggles"", ""django-waffle""]",True,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,12,"{""total_duration"": ""9781 minutes 54 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""tests (3.12, docs)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (3.12, quality)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""tests (3.12, django42)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""tests (3.12, django52)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""tests (3.12, pii_check)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-02-22 16:22:16,main,Redis Streams implementation for the Open edX event bus.,585,11,True,False,False,False,False,False,False,2026-06-08 07:06:15,GNU AGPLv3,2,True,0,0,0,0,6984,91972,0,True,True,False,False,True,False,False,,openedx,0,"['https://docs.openedx.org/projects/event-bus-redis: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/event-bus-redis: 404', 'https://event-bus-redis.readthedocs.io/en/latest/: 404']",True,"['https://redis.readthedocs.io/en/stable/examples/ssl_connection_examples.html', 'https://github.com/openedx/openedx-events/blob/06635f3642cee4020d6787df68bba694bd1233fe/openedx_events/event_bus/__init__.py', 'https://redis.io/commands/xread/', 'https://openedx.atlassian.net/wiki/spaces/AC/pages/3508699151/How+to+start+using+the+Event+Bus', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/event-bus-redis/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/edx-event-bus-redis.svg', 'https://pypi.python.org/pypi/edx-event-bus-redis/', 'https://github.com/openedx/event-bus-redis/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/event-bus-redis/actions', 'https://codecov.io/github/openedx/event-bus-redis/coverage.svg?branch=main', 'https://codecov.io/github/openedx/event-bus-redis?branch=main', 'https://readthedocs.org/projects/edx-event-bus-redis/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-event-bus-redis.svg', 'https://pypi.python.org/pypi/event-bus-redis/', 'https://img.shields.io/github/license/openedx/event-bus-redis.svg', 'https://github.com/openedx/event-bus-redis/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx_event_bus_redis,"['3', '3.12']",https://github.com/openedx/event-bus-redis,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-when,,,,True,2026-06-08,False,False,False,False,134,0,[],0,,0,0,,,41,"[""pynacl==1.6.2"", ""django-crum==0.7.9"", ""pycparser==3.0"", ""charset-normalizer==3.4.7"", ""requests==2.33.1"", ""web-fragments==4.0.0"", ""cryptography==46.0.6"", ""drf-jwt==1.19.2"", ""psutil==7.2.2"", ""sqlparse==0.5.5"", ""djangorestframework==3.17.1"", ""asgiref==3.11.1"", ""edx-opaque-keys==4.0.0"", ""django-waffle==5.0.0"", ""xblock==6.0.0"", ""pyjwt[crypto]==2.12.1"", ""mako==1.3.10"", ""pymongo==4.16.0"", ""six==1.17.0"", ""edx-django-utils==8.0.1"", ""simplejson==3.20.2"", ""markupsafe==3.0.3"", ""click==8.3.2"", ""lxml==6.0.2"", ""typing-extensions==4.15.0"", ""pytz==2026.1.post1"", ""idna==3.11"", ""certifi==2026.2.25"", ""django-model-utils==5.0.0"", ""webob==1.8.9"", ""python-dateutil==2.9.0.post0"", ""appdirs==1.4.4"", ""django==5.2.13"", ""urllib3==2.6.3"", ""dnspython==2.8.0"", ""edx-drf-extensions==10.6.0"", ""stevedore==5.7.0"", ""fs==2.4.16"", ""pyyaml==6.0.3"", ""cffi==2.0.0"", ""semantic-version==2.10.0""]",134,"[""mock==5.2.0"", ""secretstorage==3.5.0"", ""diff-cover==4.0.0"", ""pycparser==3.0"", ""charset-normalizer==3.4.7"", ""text-unidecode==1.3"", ""web-fragments==4.0.0"", ""readme-renderer==44.0"", ""coverage[toml]==7.13.5"", ""keyring==25.7.0"", ""sqlparse==0.5.5"", ""colorama==0.4.6"", ""djangorestframework==3.17.1"", ""pydocstyle==6.3.0"", ""jaraco-classes==3.4.0"", ""tomlkit==0.14.0"", ""edx-opaque-keys==4.0.0"", ""astroid==4.0.4"", ""jinja2==3.1.6"", ""sphinx==9.1.0"", ""isort==8.0.1"", ""mako==1.3.10"", ""six==1.17.0"", ""simplejson==3.20.2"", ""click==8.3.2"", ""lxml==6.0.2"", ""docutils==0.21.2"", ""restructuredtext-lint==2.0.2"", ""platformdirs==4.9.4"", ""virtualenv==21.2.0"", ""python-dateutil==2.9.0.post0"", ""django==5.2.13"", ""python-discovery==1.2.1"", ""beautifulsoup4==4.14.3"", ""pip-tools==7.5.3"", ""path-py==11.5.0"", ""pytest-django==4.12.0"", ""soupsieve==2.8.3"", ""pyproject-api==1.10.0"", ""coverage==7.13.5"", ""inflect==7.5.0"", ""tox==4.52.0"", ""rfc3986==2.0.0"", ""setuptools==69.5.1"", ""mccabe==0.7.0"", ""pygments==2.20.0"", ""tomli-w==1.2.0"", ""cachetools==7.0.5"", ""importlib-metadata==9.0.0"", ""jaraco-functools==4.4.0"", ""packaging==26.0"", ""ddt==1.7.2"", ""accessible-pygments==0.0.5"", ""pytz==2026.1.post1"", ""lxml-html-clean==0.4.4"", ""appdirs==1.4.4"", ""babel==2.18.0"", ""urllib3==2.6.3"", ""dnspython==2.8.0"", ""wheel==0.46.3"", ""pytest-cov==7.1.0"", ""code-annotations==3.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""fs==2.4.16"", ""mdurl==0.1.2"", ""codecov==2.1.13"", ""pynacl==1.6.2"", ""typeguard==4.5.1"", ""pycodestyle==2.14.0"", ""django-crum==0.7.9"", ""sphinxcontrib-devhelp==2.0.0"", ""distlib==0.4.0"", ""psutil==7.2.2"", ""jaraco-context==6.1.2"", ""django-waffle==5.0.0"", ""path==16.16.0"", ""roman-numerals==4.1.0"", ""filelock==3.25.2"", ""xblock==6.0.0"", ""pymongo==4.16.0"", ""edx-django-utils==8.0.1"", ""pydata-sphinx-theme==0.16.1"", ""id==1.6.1"", ""iniconfig==2.3.0"", ""markdown-it-py==4.0.0"", ""idna==3.11"", ""alabaster==1.0.0"", ""pylint-celery==0.3"", ""sphinx-book-theme==1.2.0"", ""requests-toolbelt==1.0.0"", ""webob==1.8.9"", ""pylint-django==2.7.0"", ""zipp==3.23.0"", ""stevedore==5.7.0"", ""pyyaml==6.0.3"", ""build==1.4.2"", ""pip==26.0.1"", ""click-log==0.4.0"", ""typing-extensions==4.15.0"", ""pylint-plugin-utils==0.9.0"", ""sphinxcontrib-jsmath==1.0.1"", ""rich==14.3.3"", ""requests==2.33.1"", ""lxml[html-clean]==6.0.2"", ""cryptography==46.0.6"", ""drf-jwt==1.19.2"", ""doc8==2.0.0"", ""polib==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""imagesize==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""asgiref==3.11.1"", ""edx-i18n-tools==2.0.0"", ""pyproject-hooks==1.2.0"", ""jeepney==0.9.0"", ""edx-lint==6.0.0"", ""twine==6.2.0"", ""python-slugify==8.0.4"", ""pyjwt[crypto]==2.12.1"", ""markupsafe==3.0.3"", ""snowballstemmer==3.0.1"", ""jinja2-pluralize==0.3.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pylint==4.0.5"", ""dill==0.4.1"", ""certifi==2026.2.25"", ""django-model-utils==5.0.0"", ""nh3==0.3.4"", ""pluggy==1.6.0"", ""edx-drf-extensions==10.6.0"", ""cffi==2.0.0"", ""pytest==9.0.2"", ""more-itertools==11.0.1"", ""semantic-version==2.10.0""]",11,"[""djangorestframework"", ""edx-opaque-keys"", ""code-annotations"", ""pytest-django"", ""xblock"", ""edx-i18n-tools"", ""django-waffle"", ""web-fragments"", ""edx-django-utils"", ""pylint-django"", ""edx-drf-extensions""]",14,"[""djangorestframework"", ""edx-opaque-keys"", ""code-annotations"", ""pytest-django"", ""drf-jwt"", ""django-crum"", ""xblock"", ""edx-i18n-tools"", ""django-waffle"", ""django-model-utils"", ""web-fragments"", ""edx-django-utils"", ""pylint-django"", ""edx-drf-extensions""]",8,"[""edx-opaque-keys"", ""code-annotations"", ""xblock"", ""edx-i18n-tools"", ""django-waffle"", ""web-fragments"", ""edx-django-utils"", ""edx-drf-extensions""]",True,,True,False,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,True,True,True,True,24,"{""total_duration"": ""4410 minutes 5 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42, mysql)"", ""duration"": ""1 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality, postgres)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42, postgres)"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52, postgres)"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality, mysql)"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs, postgres)"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs, mysql)"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check, postgres)"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52, mysql)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check, mysql)"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2019-03-07 18:43:09,master,,497,14,True,False,False,False,False,False,False,2026-06-02 16:50:54,GNU AGPLv3,9,True,0,0,662,0,4637,105414,0,True,True,False,False,True,False,False,,openedx,5,['http://edx-when.readthedocs.io/en/latest/: 404'],True,"['https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/course_date_signals/handlers.py', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-when/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-when/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-when.svg', 'https://pypi.python.org/pypi/edx-when/', 'https://github.com/openedx/edx-when/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-when/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-when/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-when?branch=master', 'https://readthedocs.org/projects/edx-when/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-when.svg', 'https://img.shields.io/github/license/edx/edx-when.svg', 'https://github.com/openedx/edx-when/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-when,"['3', '3.12']",https://github.com/openedx/edx-when,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/event-routing-backends,,,,True,2026-06-08,True,True,False,False,147,0,[],0,,0,0,,,64,"[""event-tracking==4.0.2"", ""click-didyoumean==0.3.1"", ""packaging==26.2"", ""tzlocal==5.3.1"", ""django-config-models==3.0.0"", ""apache-libcloud==3.9.1"", ""django-fernet-fields-v2==0.9"", ""vine==5.1.0"", ""tincan==1.0.0"", ""cryptography==48.0.0"", ""idna==3.18"", ""stevedore==5.8.0"", ""tzdata==2026.2"", ""prompt-toolkit==3.0.52"", ""edx-celeryutils==2.0.0"", ""dnspython==2.8.0"", ""redis==7.4.0"", ""requests==2.34.2"", ""charset-normalizer==3.4.7"", ""fasteners==0.20"", ""psutil==7.2.2"", ""openedx-events==11.2.0"", ""edx-ccx-keys==2.0.2"", ""djangorestframework==3.17.1"", ""isodate==0.7.2"", ""click==8.4.1"", ""django-redis==6.0.0"", ""django-waffle==5.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""pynacl==1.6.2"", ""pyyaml==6.0.3"", ""markupsafe==3.0.3"", ""amqp==5.3.1"", ""fastavro==1.12.2"", ""python-dateutil==2.9.0.post0"", ""six==1.17.0"", ""wcwidth==0.7.0"", ""attrs==26.1.0"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""django-model-utils==5.0.0"", ""celery==5.6.3"", ""certifi==2026.5.20"", ""typing-extensions==4.15.0"", ""urllib3==2.7.0"", ""asgiref==3.11.1"", ""jinja2==3.1.6"", ""pycparser==3.0"", ""billiard==4.2.4"", ""pymongo==4.17.0"", ""edx-toggles==6.0.0"", ""jsonfield==3.2.0"", ""cffi==2.0.0"", ""edx-django-utils==8.0.1"", ""click-repl==0.3.0"", ""kombu==5.6.2"", ""sqlparse==0.5.5"", ""aniso8601==10.0.1"", ""django-crum==0.7.9"", ""click-plugins==1.1.1.2"", ""pytz==2026.2"", ""code-annotations==3.0.0"", ""django==5.2.14"", ""openedx-filters==3.4.1""]",147,"[""tzlocal==5.3.1"", ""apache-libcloud==3.9.1"", ""dill==0.4.1"", ""jaraco-classes==3.4.0"", ""accessible-pygments==0.0.5"", ""charset-normalizer==3.4.7"", ""djangorestframework==3.17.1"", ""ddt==1.7.2"", ""edx-opaque-keys[django]==4.0.0"", ""pygments==2.20.0"", ""click-log==0.4.0"", ""amqp==5.3.1"", ""cachetools==7.1.4"", ""doc8==2.0.0"", ""colorama==0.4.6"", ""pycodestyle==2.14.0"", ""restructuredtext-lint==2.0.2"", ""mccabe==0.7.0"", ""lxml[html-clean]==6.1.1"", ""secretstorage==3.5.0"", ""soupsieve==2.8.4"", ""text-unidecode==1.3"", ""beautifulsoup4==4.14.3"", ""sphinxcontrib-serializinghtml==2.0.0"", ""certifi==2026.5.20"", ""pytest==9.0.3"", ""python-discovery==1.4.0"", ""babel==2.18.0"", ""requests-toolbelt==1.0.0"", ""platformdirs==4.10.0"", ""click-repl==0.3.0"", ""kombu==5.6.2"", ""aniso8601==10.0.1"", ""pytz==2026.2"", ""filelock==3.29.0"", ""django==5.2.14"", ""openedx-filters==3.4.1"", ""event-tracking==4.0.2"", ""nh3==0.3.5"", ""django-fernet-fields-v2==0.9"", ""tincan==1.0.0"", ""build==1.5.0"", ""cryptography==48.0.0"", ""pyproject-hooks==1.2.0"", ""faker==40.21.0"", ""dnspython==2.8.0"", ""requests==2.34.2"", ""wheel==0.47.0"", ""python-dateutil==2.9.0.post0"", ""fasteners==0.20"", ""factory-boy==3.3.3"", ""distlib==0.4.1"", ""pytest-django==4.12.0"", ""click==8.4.1"", ""django-redis==6.0.0"", ""django-waffle==5.0.0"", ""jaraco-functools==4.5.0"", ""more-itertools==11.1.0"", ""pyyaml==6.0.3"", ""markupsafe==3.0.3"", ""sphinxcontrib-qthelp==2.0.0"", ""isort==8.0.1"", ""wcwidth==0.7.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tomlkit==0.15.0"", ""keyring==25.7.0"", ""rich==15.0.0"", ""pydocstyle==6.3.0"", ""iniconfig==2.3.0"", ""sphinx-book-theme==1.2.0"", ""asgiref==3.11.1"", ""edx-lint==6.1.0"", ""pylint-plugin-utils==0.9.0"", ""pyproject-api==1.10.1"", ""astroid==4.0.4"", ""django-crum==0.7.9"", ""click-plugins==1.1.1.2"", ""polib==1.2.0"", ""pydata-sphinx-theme==0.16.1"", ""diff-cover==10.3.0"", ""chardet==7.4.3"", ""edx-ccx-keys==2.0.2"", ""code-annotations==3.0.0"", ""id==1.6.1"", ""packaging==26.2"", ""sphinxcontrib-applehelp==2.0.0"", ""coverage[toml]==7.14.1"", ""idna==3.18"", ""setuptools==82.0.1"", ""tzdata==2026.2"", ""path==16.16.0"", ""pip-tools==7.5.3"", ""docutils==0.21.2"", ""redis==7.4.0"", ""openedx-events==11.2.0"", ""pluggy==1.6.0"", ""mdurl==0.1.2"", ""alabaster==1.0.0"", ""rfc3986==2.0.0"", ""six==1.17.0"", ""sphinx==9.1.0"", ""twine==6.2.0"", ""sphinxcontrib-jsmath==1.0.1"", ""markdown-it-py==4.2.0"", ""django-model-utils==5.0.0"", ""urllib3==2.7.0"", ""tomli-w==1.2.0"", ""roman-numerals==4.1.0"", ""pymongo==4.17.0"", ""pylint-django==2.7.0"", ""pip==26.1.2"", ""edx-toggles==6.0.0"", ""pylint-celery==0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""edx-django-utils==8.0.1"", ""imagesize==2.0.0"", ""jaraco-context==6.1.2"", ""virtualenv==21.4.2"", ""click-didyoumean==0.3.1"", ""django-config-models==3.0.0"", ""pytest-cov==7.1.0"", ""stevedore==5.8.0"", ""edx-i18n-tools==2.0.0"", ""prompt-toolkit==3.0.52"", ""edx-celeryutils==2.0.0"", ""psutil==7.2.2"", ""vine==5.1.0"", ""isodate==0.7.2"", ""pynacl==1.6.2"", ""fastavro==1.12.2"", ""pylint==4.0.5"", ""mock==5.2.0"", ""attrs==26.1.0"", ""python-slugify==8.0.4"", ""typing-extensions==4.15.0"", ""celery==5.6.3"", ""readme-renderer==44.0"", ""jinja2==3.1.6"", ""pycparser==3.0"", ""billiard==4.2.4"", ""jsonfield==3.2.0"", ""snowballstemmer==3.1.1"", ""lxml-html-clean==0.4.5"", ""cffi==2.0.0"", ""sqlparse==0.5.5"", ""tox==4.55.0"", ""jeepney==0.9.0""]",12,"[""edx-django-utils"", ""edx-celeryutils"", ""pytest-django"", ""event-tracking"", ""djangorestframework"", ""factory-boy"", ""django-config-models"", ""django-waffle"", ""code-annotations"", ""edx-i18n-tools"", ""edx-toggles"", ""pylint-django""]",15,"[""edx-django-utils"", ""edx-celeryutils"", ""pytest-django"", ""event-tracking"", ""djangorestframework"", ""factory-boy"", ""jsonfield"", ""django-config-models"", ""django-model-utils"", ""django-waffle"", ""code-annotations"", ""edx-i18n-tools"", ""django-crum"", ""edx-toggles"", ""pylint-django""]",8,"[""edx-django-utils"", ""edx-celeryutils"", ""event-tracking"", ""django-config-models"", ""django-waffle"", ""code-annotations"", ""edx-i18n-tools"", ""edx-toggles""]",True,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,19,"{""total_duration"": ""1 minutes 5 seconds"", ""checks"": [{""name"": ""tests (3.12, quality, ubuntu-24.04)"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""tests (3.12, docs, ubuntu-24.04)"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django52)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django42)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""tests (3.12, pii_check, ubuntu-24.04)"", ""duration"": ""0 minutes 31 seconds""}]}",Other,2020-09-22 20:33:20,master,Consume edx tracking events and transform/transmit them to other LRSs.,1193,23,True,False,False,False,False,False,False,2026-06-03 14:48:53,GNU AGPLv3,1,True,0,0,232,812,4813,345358,0,True,True,False,False,True,False,False,,openedx,0,[],True,"['https://github.com/openedx/event-tracking', 'https://open-edx-proposals.readthedocs.io/en/latest/oep-0026-arch-realtime-events.html', 'https://event-routing-backends.readthedocs.io/en/latest/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://img.shields.io/pypi/v/event-routing-backends.svg', 'https://pypi.python.org/pypi/event-routing-backends/', 'https://github.com/openedx/event-routing-backends/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/event-routing-backends/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/edx/event-routing-backends/coverage.svg?branch=master', 'https://codecov.io/github/edx/event-routing-backends?branch=master', 'https://readthedocs.org/projects/event-routing-backends/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/event-routing-backends.svg', 'https://img.shields.io/github/license/edx/event-routing-backends.svg', 'https://github.com/openedx/event-routing-backends/blob/master/LICENSE.txt']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-event-routing-backends,"['3', '3.12']",https://github.com/openedx/event-routing-backends,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/completion,,,,True,2026-06-08,True,True,False,False,149,0,[],0,,0,0,,,65,"[""lxml==6.1.1"", ""jinja2==3.1.6"", ""tzlocal==5.3.1"", ""django-model-utils==5.0.0"", ""certifi==2026.5.20"", ""edx-ccx-keys==2.0.2"", ""pyjwt[crypto]==2.13.0"", ""web-fragments==4.0.0"", ""urllib3==2.7.0"", ""psutil==7.2.2"", ""setuptools==82.0.1"", ""celery==5.6.3"", ""drf-jwt==1.19.2"", ""charset-normalizer==3.4.7"", ""fs==2.4.16"", ""kombu==5.6.2"", ""stevedore==5.8.0"", ""billiard==4.2.4"", ""djangorestframework==3.17.1"", ""wcwidth==0.7.0"", ""dnspython==2.8.0"", ""packaging==26.2"", ""six==1.17.0"", ""django-crum==0.7.9"", ""typing-extensions==4.15.0"", ""django-waffle==5.0.0"", ""tzdata==2026.2"", ""asgiref==3.11.1"", ""vine==5.1.0"", ""edx-drf-extensions==10.6.0"", ""event-tracking==4.0.2"", ""pycparser==3.0"", ""semantic-version==2.10.0"", ""edx-opaque-keys[django]==4.0.0"", ""python-dateutil==2.9.0.post0"", ""edx-django-utils==8.0.1"", ""xblock==6.1.0"", ""idna==3.18"", ""markupsafe==3.0.3"", ""text-unidecode==1.3"", ""cryptography==48.0.0"", ""code-annotations==3.0.0"", ""pymongo==4.17.0"", ""pytz==2026.2"", ""python-slugify==8.0.4"", ""click-repl==0.3.0"", ""appdirs==1.4.4"", ""simplejson==4.1.1"", ""cffi==2.0.0"", ""amqp==5.3.1"", ""edx-toggles==6.0.0"", ""webob==1.8.9"", ""prompt-toolkit==3.0.52"", ""click==8.4.1"", ""requests==2.34.2"", ""attrs==26.1.0"", ""click-didyoumean==0.3.1"", ""sqlparse==0.5.5"", ""pyyaml==6.0.3"", ""fastavro==1.12.2"", ""mako==1.3.12"", ""openedx-events==11.2.0"", ""pynacl==1.6.2"", ""django==5.2.14"", ""click-plugins==1.1.1.2""]",149,"[""pytest-cov==7.1.0"", ""certifi==2026.5.20"", ""sphinxcontrib-devhelp==2.0.0"", ""psutil==7.2.2"", ""pylint-celery==0.3"", ""drf-jwt==1.19.2"", ""polib==1.2.0"", ""stevedore==5.8.0"", ""babel==2.18.0"", ""wcwidth==0.7.0"", ""sphinxcontrib-qthelp==2.0.0"", ""cachetools==7.1.4"", ""colorama==0.4.6"", ""jaraco-context==6.1.2"", ""edx-drf-extensions==10.6.0"", ""more-itertools==11.1.0"", ""jaraco-functools==4.5.0"", ""pycparser==3.0"", ""edx-opaque-keys[django]==4.0.0"", ""xblock==6.1.0"", ""edx-django-utils==8.0.1"", ""pip==26.1.2"", ""python-discovery==1.4.0"", ""cryptography==48.0.0"", ""freezegun==1.5.5"", ""pytest-django==4.12.0"", ""path==16.16.0"", ""pymongo==4.17.0"", ""dill==0.4.1"", ""tox==4.55.0"", ""snowballstemmer==3.1.0"", ""beautifulsoup4==4.14.3"", ""factory-boy==3.3.3"", ""rich==15.0.0"", ""webob==1.8.9"", ""edx-toggles==6.0.0"", ""prompt-toolkit==3.0.52"", ""imagesize==2.0.0"", ""attrs==26.1.0"", ""click-didyoumean==0.3.1"", ""jaraco-classes==3.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""doc8==2.0.0"", ""restructuredtext-lint==2.0.2"", ""django==5.2.14"", ""lxml[html-clean]==6.1.1"", ""roman-numerals==4.1.0"", ""lxml==6.1.1"", ""isort==8.0.1"", ""pyjwt[crypto]==2.13.0"", ""id==1.6.1"", ""virtualenv==21.4.2"", ""mdurl==0.1.2"", ""docutils==0.23"", ""fs==2.4.16"", ""filelock==3.29.0"", ""kombu==5.6.2"", ""billiard==4.2.4"", ""secretstorage==3.5.0"", ""djangorestframework==3.17.1"", ""build==1.5.0"", ""packaging==26.2"", ""idna==3.18"", ""text-unidecode==1.3"", ""sphinx==9.1.0"", ""pip-tools==7.5.3"", ""code-annotations==3.0.0"", ""pytz==2026.2"", ""pytest==9.0.3"", ""alabaster==1.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""diff-cover==10.3.0"", ""accessible-pygments==0.0.5"", ""astroid==4.0.4"", ""sqlparse==0.5.5"", ""pluggy==1.6.0"", ""pyyaml==6.0.3"", ""docutils==0.21.2"", ""fastavro==1.12.2"", ""nh3==0.3.5"", ""rfc3986==2.0.0"", ""edx-lint==6.1.0"", ""click-plugins==1.1.1.2"", ""django-model-utils==5.0.0"", ""web-fragments==4.0.0"", ""click-log==0.4.0"", ""celery==5.6.3"", ""pydocstyle==6.3.0"", ""pydata-sphinx-theme==0.16.1"", ""wheel==0.47.0"", ""mccabe==0.7.0"", ""six==1.17.0"", ""django-crum==0.7.9"", ""markdown-it-py==4.2.0"", ""django-waffle==5.0.0"", ""vine==5.1.0"", ""asgiref==3.11.1"", ""mock==5.2.0"", ""sphinx-book-theme==1.2.0"", ""coverage[toml]==7.14.1"", ""markupsafe==3.0.3"", ""pylint-django==2.7.0"", ""soupsieve==2.8.4"", ""lxml-html-clean==0.4.5"", ""click-repl==0.3.0"", ""pygments==2.20.0"", ""cffi==2.0.0"", ""amqp==5.3.1"", ""readme-renderer==44.0"", ""click==8.4.1"", ""requests==2.34.2"", ""sphinxcontrib-jsmath==1.0.1"", ""requests-toolbelt==1.0.0"", ""mako==1.3.12"", ""pylint-plugin-utils==0.9.0"", ""python-slugify==8.0.4"", ""distlib==0.4.1"", ""ddt==1.7.2"", ""pynacl==1.6.2"", ""setuptools==82.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""jinja2==3.1.6"", ""tzlocal==5.3.1"", ""edx-ccx-keys==2.0.2"", ""jeepney==0.9.0"", ""urllib3==2.7.0"", ""pyproject-hooks==1.2.0"", ""pylint==4.0.5"", ""keyring==25.7.0"", ""charset-normalizer==3.4.7"", ""iniconfig==2.3.0"", ""tomli-w==1.2.0"", ""chardet==7.4.3"", ""dnspython==2.8.0"", ""typing-extensions==4.15.0"", ""tzdata==2026.2"", ""event-tracking==4.0.2"", ""semantic-version==2.10.0"", ""python-dateutil==2.9.0.post0"", ""platformdirs==4.10.0"", ""pyproject-api==1.10.1"", ""twine==6.2.0"", ""pycodestyle==2.14.0"", ""appdirs==1.4.4"", ""faker==40.20.0"", ""simplejson==4.1.1"", ""edx-i18n-tools==2.0.0"", ""openedx-events==11.2.0"", ""tomlkit==0.15.0""]",13,"[""djangorestframework"", ""event-tracking"", ""edx-drf-extensions"", ""xblock"", ""django-waffle"", ""pylint-django"", ""edx-i18n-tools"", ""code-annotations"", ""edx-django-utils"", ""pytest-django"", ""web-fragments"", ""edx-toggles"", ""factory-boy""]",16,"[""djangorestframework"", ""event-tracking"", ""django-model-utils"", ""edx-drf-extensions"", ""xblock"", ""django-waffle"", ""pylint-django"", ""django-crum"", ""drf-jwt"", ""edx-i18n-tools"", ""code-annotations"", ""edx-django-utils"", ""pytest-django"", ""web-fragments"", ""edx-toggles"", ""factory-boy""]",9,"[""event-tracking"", ""edx-drf-extensions"", ""xblock"", ""django-waffle"", ""edx-i18n-tools"", ""code-annotations"", ""edx-django-utils"", ""web-fragments"", ""edx-toggles""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,20,"{""total_duration"": ""5 minutes 32 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""4 minutes 12 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drf314)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 43 seconds""}]}",Other,2018-01-26 18:55:49,master,A library for tracking completion of blocks by learners in edX courses.,693,24,True,False,False,False,False,False,False,2026-06-05 05:04:52,GNU AGPLv3,2,True,0,0,0,0,4866,87949,0,False,True,False,False,True,False,False,,openedx,3,"['http://your.lms.site/admin/waffle/switch/: HTTPConnectionPool(host=\'your.lms.site\', port=80): Max retries exceeded with url: /admin/waffle/switch/ (Caused by NameResolutionError(""HTTPConnection(host=\'your.lms.site\', port=80): Failed to resolve \'your.lms.site\' ([Errno -2] Name or service not known)""))', 'https://docs.openedx.org/projects/completion: 404', 'https://github.com/openedx/completion/blob/master/LICENSE.txt: 404']",False,"['https://docs.openedx.org/en/latest/educators/references/course_development/exercise_tools/completion.html', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/completion', 'https://img.shields.io/pypi/v/edx-completion.svg', 'https://pypi.python.org/pypi/edx-completion/', 'https://github.com/openedx/completion/actions/workflows/ci.yml/badge.svg?branch=master', 'https://github.com/openedx/completion/actions/workflows/ci.yml?branch=master', 'http://codecov.io/github/edx/completion/coverage.svg?branch=master', 'http://codecov.io/github/edx/completion?branch=master', 'https://readthedocs.org/projects/completion/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-completion.svg', 'https://img.shields.io/github/license/edx/completion.svg', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-completion,"['3', '3.12']",https://github.com/openedx/completion,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/wg-mobile,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""124768 minutes 14 seconds"", ""checks"": [{""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2025-08-22 19:07:00,main,Open edX Mobile working group board for platform-agnostic issues,8,2,True,False,False,False,False,False,False,2025-10-30 15:57:59,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-aspects,,,,True,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,16,"{""total_duration"": ""3210 minutes 55 seconds"", ""checks"": [{""name"": ""update-uv-graph"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-01-05 19:08:37,main,Aspects - Analytics for Open edX,6267,11,True,False,False,False,False,False,False,2026-06-08 00:33:23,Apache License 2.0,2,False,0,0,0,0,1289,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://docs.astral.sh/uv/', 'https://astral.sh/uv/install.sh', 'https://github.com/orgs/openedx/projects/5/views/1', 'https://docs.openedx.org/projects/openedx-aspects', 'https://github.com/openedx/tutor-contrib-aspects']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-ledger,,,,True,2026-06-08,True,True,False,False,135,0,[],0,,0,0,,,47,"[""stevedore==5.7.0"", ""drf-jwt==1.19.2"", ""dnspython==2.8.0"", ""rules==3.5"", ""urllib3==2.7.0"", ""certifi==2026.4.22"", ""semantic-version==2.10.0"", ""pyyaml==6.0.3"", ""cffi==2.0.0"", ""asgiref==3.11.1"", ""cryptography==48.0.0"", ""djangoql==0.19.1"", ""edx-drf-extensions==10.6.0"", ""click==8.3.3"", ""idna==3.14"", ""edx-django-release-util==1.5.0"", ""ply==3.11"", ""edx-ccx-keys==2.0.2"", ""django==5.2.14"", ""openedx-events==11.2.0"", ""edx-rbac==3.0.0"", ""pyjwt[crypto]==2.12.1"", ""mysqlclient==2.2.8"", ""charset-normalizer==3.4.7"", ""pycparser==3.0"", ""edx-django-utils==8.0.1"", ""pytz==2026.2"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""edx-opaque-keys[django]==4.0.0"", ""six==1.17.0"", ""django-extensions==4.1"", ""django-filter==25.2"", ""djangorestframework==3.17.1"", ""pynacl==1.6.2"", ""django-model-utils==5.0.0"", ""pymongo==4.17.0"", ""attrs==26.1.0"", ""redis==7.4.0"", ""requests==2.33.1"", ""fastavro==1.12.2"", ""typing-extensions==4.15.0"", ""django-simple-history==3.11.0"", ""sqlparse==0.5.5"", ""jsonfield2==4.0.0.post0"", ""django-object-actions==5.0.1"", ""psutil==7.2.2""]",135,"[""isort==8.0.1"", ""alabaster==1.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""drf-jwt==1.19.2"", ""pytest-cov==7.1.0"", ""pyyaml==6.0.3"", ""babel==2.18.0"", ""imagesize==2.0.0"", ""click-log==0.4.0"", ""jaraco-classes==3.4.0"", ""restructuredtext-lint==2.0.2"", ""click==8.3.3"", ""edx-django-release-util==1.5.0"", ""pylint==4.0.5"", ""polib==1.2.0"", ""charset-normalizer==3.4.7"", ""tomlkit==0.15.0"", ""rich==15.0.0"", ""readme-renderer==44.0"", ""pylint-celery==0.3"", ""colorama==0.4.6"", ""djangorestframework==3.17.1"", ""requests-toolbelt==1.0.0"", ""twine==6.2.0"", ""fastavro==1.12.2"", ""typing-extensions==4.15.0"", ""django-simple-history==3.11.0"", ""nh3==0.3.5"", ""jinja2==3.1.6"", ""tomli-w==1.2.0"", ""stevedore==5.7.0"", ""dnspython==2.8.0"", ""urllib3==2.7.0"", ""packaging==26.2"", ""virtualenv==21.3.1"", ""factory-boy==3.3.3"", ""pluggy==1.6.0"", ""sphinxcontrib-qthelp==2.0.0"", ""filelock==3.29.0"", ""more-itertools==11.0.2"", ""edx-drf-extensions==10.6.0"", ""faker==40.15.0"", ""lxml-html-clean==0.4.4"", ""ply==3.11"", ""openedx-events==11.2.0"", ""edx-rbac==3.0.0"", ""pyjwt[crypto]==2.12.1"", ""sphinx-book-theme==1.2.0"", ""python-slugify==8.0.4"", ""django-waffle==5.0.0"", ""id==1.6.1"", ""text-unidecode==1.3"", ""django-crum==0.7.9"", ""mdurl==0.1.2"", ""six==1.17.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""markupsafe==3.0.3"", ""pyproject-api==1.10.0"", ""tox==4.53.1"", ""jeepney==0.9.0"", ""sqlparse==0.5.5"", ""jaraco-context==6.1.2"", ""coverage[toml]==7.14.0"", ""diff-cover==10.2.0"", ""django-object-actions==5.0.1"", ""pytz==2026.2"", ""psutil==7.2.2"", ""snowballstemmer==3.0.1"", ""setuptools==82.0.1"", ""rules==3.5"", ""ddt==1.7.2"", ""certifi==2026.4.22"", ""semantic-version==2.10.0"", ""cffi==2.0.0"", ""secretstorage==3.5.0"", ""asgiref==3.11.1"", ""cryptography==48.0.0"", ""pytest-django==4.12.0"", ""doc8==2.0.0"", ""idna==3.14"", ""django==5.2.14"", ""keyring==25.7.0"", ""pycparser==3.0"", ""pip-tools==7.5.3"", ""markdown-it-py==4.2.0"", ""astroid==4.0.4"", ""accessible-pygments==0.0.5"", ""pydocstyle==6.3.0"", ""soupsieve==2.8.3"", ""attrs==26.1.0"", ""lxml[html-clean]==6.1.0"", ""requests==2.33.1"", ""beautifulsoup4==4.14.3"", ""edx-lint==6.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pylint-django==2.7.0"", ""pyproject-hooks==1.2.0"", ""pycodestyle==2.14.0"", ""jaraco-functools==4.4.0"", ""path==16.16.0"", ""build==1.5.0"", ""wheel==0.47.0"", ""iniconfig==2.3.0"", ""code-annotations==3.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""mccabe==0.7.0"", ""pylint-plugin-utils==0.9.0"", ""pygments==2.20.0"", ""djangoql==0.19.1"", ""platformdirs==4.9.6"", ""rfc3986==2.0.0"", ""distlib==0.4.0"", ""sphinx==9.1.0"", ""pytest==9.0.3"", ""edx-i18n-tools==2.0.0"", ""edx-ccx-keys==2.0.2"", ""mysqlclient==2.2.8"", ""pydata-sphinx-theme==0.16.1"", ""chardet==7.4.3"", ""sphinxcontrib-jsmath==1.0.1"", ""edx-django-utils==8.0.1"", ""edx-opaque-keys[django]==4.0.0"", ""python-discovery==1.3.0"", ""django-extensions==4.1"", ""django-filter==25.2"", ""dill==0.4.1"", ""pip==26.1.1"", ""pynacl==1.6.2"", ""cachetools==7.1.1"", ""django-model-utils==5.0.0"", ""pymongo==4.17.0"", ""redis==7.4.0"", ""docutils==0.21.2"", ""roman-numerals==4.1.0"", ""jsonfield2==4.0.0.post0""]",14,"[""code-annotations"", ""django-extensions"", ""edx-django-utils"", ""django-filter"", ""django-waffle"", ""edx-drf-extensions"", ""django-object-actions"", ""djangorestframework"", ""factory-boy"", ""edx-i18n-tools"", ""pylint-django"", ""edx-rbac"", ""pytest-django"", ""edx-django-release-util""]",19,"[""edx-django-utils"", ""django-object-actions"", ""django-crum"", ""edx-drf-extensions"", ""factory-boy"", ""edx-django-release-util"", ""code-annotations"", ""django-filter"", ""django-waffle"", ""drf-jwt"", ""djangorestframework"", ""edx-rbac"", ""django-extensions"", ""django-model-utils"", ""edx-i18n-tools"", ""django-simple-history"", ""pylint-django"", ""rules"", ""pytest-django""]",9,"[""code-annotations"", ""django-extensions"", ""edx-django-utils"", ""django-filter"", ""django-waffle"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""edx-rbac"", ""edx-django-release-util""]",True,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,27,"{""total_duration"": ""4776 minutes 20 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2022-12-21 21:16:19,main,"A library that records transactions against a ledger, denominated in units of value.",487,7,True,False,False,False,False,False,False,2026-06-08 03:12:00,GNU AGPLv3,3,True,0,3141,1493,0,5111,157592,0,True,True,False,False,True,False,False,,openedx,0,"['https://docs.openedx.org/projects/openedx-ledger/how-tos/how-to-deploy-this-component.html: 404', 'https://docs.openedx.org/projects/openedx-ledger: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-ledger: 404', 'https://github.com/openedx/openedx-ledger/actions: 504', 'https://openedx-ledger.readthedocs.io/en/latest/: 404', 'https://github.com/openedx/openedx-ledger/blob/main/LICENSE.txt: 504']",True,"['https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-ledger/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/openedx-ledger.svg', 'https://pypi.python.org/pypi/openedx-ledger/', 'https://github.com/openedx/openedx-ledger/workflows/Python%20CI/badge.svg?branch=main', 'https://codecov.io/github/openedx/openedx-ledger/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-ledger?branch=main', 'https://readthedocs.org/projects/openedx-ledger/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-ledger.svg', 'https://img.shields.io/github/license/openedx/openedx-ledger.svg', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-ledger,"['3', '3.12']",https://github.com/openedx/openedx-ledger,True,True,True,False,False,False,False,False,False,[],[],"['gcc', 'build-essential', 'libssl-dev', 'install', 'libmysqlclient-dev', 'pkg-config', 'language-pack-en', 'locales', 'python3-dev', 'python3.12', 'python3.12-venv', 'git', 'curl', 'python3-pip']",[] +openedx/webhook-test-repo,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""30 minutes 45 seconds"", ""checks"": [{""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2020-06-10 09:38:45,master,A dummy repo for testing openedx-webhooks,9,5,True,False,False,False,False,False,False,2025-02-12 18:21:32,,1,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/i18n-tools,,,,True,2026-06-08,True,True,False,False,54,0,[],0,,0,0,,,8,"[""polib==1.2.0"", ""lxml-html-clean==0.4.4"", ""lxml[html-clean]==6.0.2"", ""pyyaml==6.0.3"", ""sqlparse==0.5.5"", ""asgiref==3.11.1"", ""django==5.2.12"", ""path==16.16.0""]",54,"[""lxml-html-clean==0.4.4"", ""six==1.17.0"", ""pyyaml==6.0.3"", ""distlib==0.4.0"", ""cachetools==7.0.3"", ""colorama==0.4.6"", ""dill==0.4.1"", ""wheel==0.46.3"", ""astroid==4.0.4"", ""ddt==1.7.2"", ""packaging==26.0"", ""path==16.16.0"", ""pylint==4.0.5"", ""mock==5.2.0"", ""stevedore==5.7.0"", ""tomlkit==0.14.0"", ""coverage[toml]==7.13.4"", ""polib==1.2.0"", ""pylint-plugin-utils==0.9.0"", ""pytest-cov==7.0.0"", ""pytz==2026.1.post1"", ""sqlparse==0.5.5"", ""jinja2==3.1.6"", ""tox==4.49.0"", ""pluggy==1.6.0"", ""filelock==3.25.0"", ""pip-tools==7.5.3"", ""python-discovery==1.1.1"", ""build==1.4.0"", ""iniconfig==2.3.0"", ""mccabe==0.7.0"", ""pyproject-api==1.10.0"", ""platformdirs==4.9.4"", ""python-slugify==8.0.4"", ""pyproject-hooks==1.2.0"", ""markupsafe==3.0.3"", ""django==5.2.12"", ""pytest==9.0.2"", ""pylint-django==2.7.0"", ""edx-lint==5.6.0"", ""isort==8.0.1"", ""lxml[html-clean]==6.0.2"", ""pycodestyle==2.14.0"", ""virtualenv==21.1.0"", ""pip==26.0.1"", ""code-annotations==2.3.2"", ""click==8.3.1"", ""pylint-celery==0.3"", ""text-unidecode==1.3"", ""asgiref==3.11.1"", ""click-log==0.4.0"", ""tomli-w==1.2.0"", ""pygments==2.19.2"", ""setuptools==82.0.0""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,32,"{""total_duration"": ""285 minutes 48 seconds"", ""checks"": [{""name"": ""python-tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""python-tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""python-tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2014-06-03 21:09:08,master,Tools to help with internationalization and localization of Open edX projects,406,35,True,False,False,False,False,False,False,2026-06-08 00:59:55,Apache License 2.0,13,True,0,0,0,0,2930,110653,0,False,True,False,True,True,False,True,,openedx,3,['https://travis-ci.com/edx/i18n-tools: 415'],False,"['https://www.transifex.com/', 'https://www.transifex.com', 'https://github.com/openedx/edx-platform/blob/master/conf/locale/config.yaml', 'https://travis-ci.com/edx/i18n-tools.svg?branch=master', 'https://coveralls.io/repos/edx/i18n-tools/badge.png', 'https://coveralls.io/r/edx/i18n-tools']",True,True,False,False,,,False,,,,False,False,False,True,,False,edx-i18n-tools,['3.12'],https://github.com/openedx/i18n-tools,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/django-config-models,,,,True,2026-06-08,True,True,False,False,107,0,[],0,,0,0,,,13,"[""edx-django-utils==8.0.1"", ""psutil==7.2.2"", ""django==5.2.14"", ""sqlparse==0.5.5"", ""stevedore==5.7.0"", ""django-crum==0.7.9"", ""pynacl==1.6.2"", ""cffi==2.0.0"", ""asgiref==3.11.1"", ""djangorestframework==3.17.1"", ""django-waffle==5.0.0"", ""click==8.3.3"", ""pycparser==3.0""]",107,"[""babel==2.18.0"", ""asgiref==3.11.1"", ""isort==8.0.1"", ""tomli-w==1.2.0"", ""jinja2==3.1.6"", ""pip==26.1.1"", ""iniconfig==2.3.0"", ""platformdirs==4.9.6"", ""coverage[toml]==7.13.5"", ""sphinx-book-theme==1.2.0"", ""pytest-cov==7.1.0"", ""pygments==2.20.0"", ""pydata-sphinx-theme==0.16.1"", ""more-itertools==11.0.2"", ""pycparser==3.0"", ""pycodestyle==2.14.0"", ""readme-renderer==44.0"", ""sphinx==9.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pluggy==1.6.0"", ""text-unidecode==1.3"", ""virtualenv==21.3.1"", ""requests==2.33.1"", ""alabaster==1.0.0"", ""pylint-plugin-utils==0.9.0"", ""setuptools==82.0.1"", ""lxml-html-clean==0.4.4"", ""click-log==0.4.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""docutils==0.22.4"", ""mdurl==0.1.2"", ""pyproject-hooks==1.2.0"", ""cryptography==48.0.0"", ""python-discovery==1.3.0"", ""wheel==0.47.0"", ""roman-numerals==4.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""ddt==1.7.2"", ""nh3==0.3.5"", ""django==5.2.14"", ""certifi==2026.4.22"", ""pyproject-api==1.10.0"", ""edx-django-utils==8.0.1"", ""twine==6.2.0"", ""pytest==9.0.3"", ""pydocstyle==6.3.0"", ""markupsafe==3.0.3"", ""jaraco-context==6.1.2"", ""pyyaml==6.0.3"", ""python-dateutil==2.9.0.post0"", ""cachetools==7.1.1"", ""path==16.16.0"", ""charset-normalizer==3.4.7"", ""packaging==26.2"", ""polib==1.2.0"", ""edx-i18n-tools==2.0.0"", ""pynacl==1.6.2"", ""requests-toolbelt==1.0.0"", ""filelock==3.29.0"", ""sphinxcontrib-jsmath==1.0.1"", ""build==1.5.0"", ""pylint-django==2.7.0"", ""rich==15.0.0"", ""freezegun==1.5.5"", ""jeepney==0.9.0"", ""snowballstemmer==3.0.1"", ""click==8.3.3"", ""tox==4.53.1"", ""jaraco-functools==4.4.0"", ""python-slugify==8.0.4"", ""tomlkit==0.14.0"", ""sqlparse==0.5.5"", ""psutil==7.2.2"", ""idna==3.13"", ""django-crum==0.7.9"", ""cffi==2.0.0"", ""markdown-it-py==4.2.0"", ""pip-tools==7.5.3"", ""six==1.17.0"", ""edx-lint==6.1.0"", ""soupsieve==2.8.3"", ""typing-extensions==4.15.0"", ""rfc3986==2.0.0"", ""code-annotations==3.0.0"", ""colorama==0.4.6"", ""pytest-django==4.12.0"", ""stevedore==5.7.0"", ""distlib==0.4.0"", ""djangorestframework==3.17.1"", ""astroid==4.0.4"", ""sphinxcontrib-qthelp==2.0.0"", ""beautifulsoup4==4.14.3"", ""urllib3==2.7.0"", ""pylint==4.0.5"", ""id==1.6.1"", ""edx-django-release-util==1.5.0"", ""jaraco-classes==3.4.0"", ""dill==0.4.1"", ""pylint-celery==0.3"", ""secretstorage==3.5.0"", ""accessible-pygments==0.0.5"", ""django-waffle==5.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""lxml[html-clean]==6.1.0"", ""imagesize==2.0.0"", ""keyring==25.7.0"", ""mccabe==0.7.0""]",8,"[""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""djangorestframework"", ""pytest-django"", ""django-waffle"", ""edx-django-release-util"", ""edx-django-utils""]",9,"[""pylint-django"", ""code-annotations"", ""django-crum"", ""edx-i18n-tools"", ""djangorestframework"", ""pytest-django"", ""django-waffle"", ""edx-django-release-util"", ""edx-django-utils""]",5,"[""code-annotations"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-release-util"", ""edx-django-utils""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,11,"{""total_duration"": ""8258 minutes 56 seconds"", ""checks"": [{""name"": ""upgrade_requirements / upgrade_requirements"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2016-10-06 17:42:39,master,Configuration models for Django allowing config management with auditing.,598,22,True,False,False,False,False,False,False,2026-06-08 04:34:13,GNU AGPLv3,5,True,0,0,662,0,3842,79643,0,False,True,False,False,True,False,False,,openedx,1,"['https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://github.com/openedx/django-config-models/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/django-config-models/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/openedx/django-config-models/coverage.svg?branch=master', 'http://codecov.io/github/openedx/django-config-models?branch=master', 'https://img.shields.io/pypi/v/django-config-models.svg', 'https://pypi.python.org/pypi/django-config-models/', 'https://readthedocs.org/projects/django-config-models/badge/?version=latest', 'http://django-config-models.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/django-config-models.svg', 'https://img.shields.io/github/license/edx/django-config-models.svg', 'https://github.com/openedx/django-config-models/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://django-config-models.readthedocs.org', 'https://discuss.openedx.org', 'https://github.com/openedx/django-config-models', 'https://openedx.slack.com/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://backstage.openedx.org/catalog/default/component/django-config-models']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,django-config-models,"['3', '3.12']",https://github.com/openedx/django-config-models,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/event-bus-kafka,,,,True,2026-06-08,True,True,False,False,126,0,[],0,,0,0,,,28,"[""django==4.2.25"", ""six==1.17.0"", ""code-annotations==2.3.0"", ""pycparser==2.23"", ""pynacl==1.6.0"", ""markupsafe==3.0.3"", ""pyyaml==6.0.3"", ""dnspython==2.8.0"", ""psutil==7.1.1"", ""attrs==25.4.0"", ""openedx-events==10.5.0"", ""python-slugify==8.0.4"", ""cffi==2.0.0"", ""edx-toggles==5.4.1"", ""edx-ccx-keys==2.0.2"", ""stevedore==5.5.0"", ""sqlparse==0.5.3"", ""fastavro==1.12.1"", ""edx-opaque-keys[django]==3.0.0"", ""pymongo==4.15.3"", ""django-crum==0.7.9"", ""edx-django-utils==8.0.1"", ""click==8.3.0"", ""asgiref==3.10.0"", ""text-unidecode==1.3"", ""typing-extensions==4.15.0"", ""django-waffle==5.0.0"", ""jinja2==3.1.6""]",126,"[""django==4.2.25"", ""platformdirs==4.5.0"", ""pycparser==2.23"", ""alabaster==1.0.0"", ""importlib-metadata==8.7.0"", ""sniffio==1.3.1"", ""charset-normalizer==3.4.4"", ""confluent-kafka[avro,schema-registry]==2.12.0"", ""lxml-html-clean==0.4.3"", ""openedx-events==10.5.0"", ""pyproject-hooks==1.2.0"", ""python-slugify==8.0.4"", ""ddt==1.7.2"", ""stevedore==5.5.0"", ""sqlparse==0.5.3"", ""pymongo==4.15.3"", ""chardet==5.2.0"", ""filelock==3.20.0"", ""soupsieve==2.8"", ""jaraco-classes==3.4.0"", ""secretstorage==3.4.0"", ""backports-tarfile==1.2.0"", ""tox==4.31.0"", ""pylint==3.3.9"", ""pydocstyle==6.3.0"", ""colorama==0.4.6"", ""edx-i18n-tools==1.9.0"", ""sphinxcontrib-applehelp==2.0.0"", ""asgiref==3.10.0"", ""pycodestyle==2.14.0"", ""sphinxcontrib-devhelp==2.0.0"", ""text-unidecode==1.3"", ""pyproject-api==1.10.0"", ""jeepney==0.9.0"", ""pygments==2.19.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pytest-django==4.11.1"", ""setuptools==80.9.0"", ""path==16.16.0"", ""wheel==0.45.1"", ""dill==0.4.0"", ""rfc3986==2.0.0"", ""edx-lint==5.6.0"", ""diff-cover==9.7.1"", ""jinja2==3.1.6"", ""tomli==2.3.0"", ""markupsafe==3.0.3"", ""imagesize==1.4.1"", ""packaging==25.0"", ""attrs==25.4.0"", ""pylint-celery==0.3"", ""cffi==2.0.0"", ""docutils==0.22.2"", ""cachetools==6.2.1"", ""lxml[html-clean]==6.0.2"", ""authlib==1.6.5"", ""fastavro==1.12.1"", ""readme-renderer==44.0"", ""h11==0.16.0"", ""cryptography==46.0.3"", ""pytest==8.4.2"", ""django-crum==0.7.9"", ""pylint-plugin-utils==0.9.0"", ""sphinxcontrib-jsmath==1.0.1"", ""nh3==0.3.1"", ""avro==1.12.1"", ""tomlkit==0.13.3"", ""httpcore==1.0.9"", ""markdown-it-py==4.0.0"", ""doc8==2.0.0"", ""pylint-django==2.6.1"", ""rich==14.2.0"", ""build==1.3.0"", ""id==1.5.0"", ""roman-numerals-py==3.1.0"", ""keyring==25.6.0"", ""psutil==7.1.1"", ""more-itertools==10.8.0"", ""pydata-sphinx-theme==0.15.4"", ""mccabe==0.7.0"", ""jaraco-functools==4.3.0"", ""isort==6.1.0"", ""edx-toggles==5.4.1"", ""docutils==0.21.2"", ""sphinx==8.2.3"", ""babel==2.17.0"", ""pytest-cov==7.0.0"", ""urllib3==2.5.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""zipp==3.23.0"", ""sphinx-book-theme==1.1.4"", ""anyio==4.11.0"", ""edx-django-utils==8.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""distlib==0.4.0"", ""twine==6.2.0"", ""restructuredtext-lint==1.4.0"", ""polib==1.2.0"", ""httpx==0.28.1"", ""jaraco-context==6.0.1"", ""typing-extensions==4.15.0"", ""requests-toolbelt==1.0.0"", ""requests==2.32.5"", ""click-log==0.4.0"", ""six==1.17.0"", ""code-annotations==2.3.0"", ""virtualenv==20.35.3"", ""mdurl==0.1.2"", ""idna==3.11"", ""pyyaml==6.0.3"", ""dnspython==2.8.0"", ""astroid==3.3.11"", ""pip-tools==7.5.1"", ""edx-ccx-keys==2.0.2"", ""beautifulsoup4==4.14.2"", ""snowballstemmer==3.0.1"", ""accessible-pygments==0.0.5"", ""edx-opaque-keys[django]==3.0.0"", ""pip==25.2"", ""iniconfig==2.3.0"", ""click==8.3.0"", ""certifi==2025.10.5"", ""coverage[toml]==7.11.0"", ""django-waffle==5.0.0"", ""pluggy==1.6.0"", ""pynacl==1.6.0""]",7,"[""edx-i18n-tools"", ""code-annotations"", ""edx-django-utils"", ""django-waffle"", ""edx-toggles"", ""pytest-django"", ""pylint-django""]",9,"[""edx-i18n-tools"", ""django-crum"", ""code-annotations"", ""edx-django-utils"", ""django-waffle"", ""authlib"", ""edx-toggles"", ""pytest-django"", ""pylint-django""]",5,"[""edx-i18n-tools"", ""code-annotations"", ""edx-django-utils"", ""django-waffle"", ""edx-toggles""]",True,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,12,"{""total_duration"": ""6242 minutes 59 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2022-06-11 18:50:06,main,Kafka implementation for Open edX event bus,540,7,True,False,False,False,False,False,False,2026-05-30 15:24:17,GNU AGPLv3,7,True,0,0,662,0,4152,138701,0,True,True,False,False,True,False,False,,openedx,1,"['https://github.com/openedx/event-bus-kafka/blob/main/docs/decisions/0005-optional-import-of-confluent-kafka.rst: 504', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md: 504', 'https://openedx-slack-invite.herokuapp.com/: 404', 'https://github.com/openedx/event-bus-kafka/workflows/Python%20CI/badge.svg?branch=main: 504', 'https://edx-event-bus-kafka.readthedocs.io/en/latest/: 404']",True,"['https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0052-arch-event-bus-architecture.html', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/edx-event-bus-kafka.svg', 'https://pypi.python.org/pypi/edx-event-bus-kafka/', 'https://github.com/openedx/event-bus-kafka/actions', 'https://codecov.io/github/openedx/event-bus-kafka/coverage.svg?branch=main', 'https://codecov.io/github/openedx/event-bus-kafka?branch=main', 'https://readthedocs.org/projects/edx-event-bus-kafka/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-event-bus-kafka.svg', 'https://img.shields.io/github/license/openedx/event-bus-kafka.svg', 'https://github.com/openedx/event-bus-kafka/blob/main/LICENSE.txt']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx_event_bus_kafka,"['3', '3.12']",https://github.com/openedx/event-bus-kafka,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-template-site,,,,False,2026-06-08,False,False,False,False,8,0,,0,{},6,2,"{""@edx/browserslist-config"": ""^1.5.0"", ""turbo"": ""^2.8.16""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.3.0 || 0.0.0-dev"", ""@openedx/frontend-app-authn"": ""^1.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-app-learner-dashboard"": ""^1.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-app-instructor-dashboard"": ""^1.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-app-notifications"": ""^3.0.0-alpha || 0.0.0-dev"", ""@openedx/frontend-base"": ""^1.0.0-alpha || 0.0.0-dev""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1 minutes 8 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""1 minutes 8 seconds""}]}",Other,2025-06-27 13:43:21,main,This repository is a template for Open edX frontend sites.,453,4,True,False,False,False,False,False,False,2026-05-20 13:10:29,GNU AGPLv3,0,True,0,0,258,231,638,0,0,False,False,False,False,False,False,False,,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-site: 404', 'https://github.com/openedx/frontend-template-application/blob/main/LICENSE: 404']",False,"['https://github.com/nvm-sh/nvm', 'https://bindfs.org/', 'https://docs.npmjs.com/cli/using-npm/workspaces', 'https://github.com/semantic-release/semantic-release', 'https://turbo.build/', 'https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst', 'https://github.com/openedx/openedx-translations', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-template-application.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-template-application/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-template-application?branch=main']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/enterprise-catalog,,,,True,2026-06-08,True,True,False,False,204,0,[],0,,0,0,,,119,"[""jsonfield2==4.0.0.post0"", ""tzdata==2025.3"", ""monotonic==1.6"", ""pytz==2025.2"", ""cffi==2.0.0"", ""dnspython==2.8.0"", ""edx-drf-extensions==10.6.0"", ""django-cors-headers==4.9.0"", ""simplejson==3.20.2"", ""numpy==2.4.1"", ""click-repl==0.3.0"", ""semantic-version==2.10.0"", ""scikit-learn==1.8.0"", ""cryptography==46.0.3"", ""zope-interface==8.2"", ""vine==5.1.0"", ""pyjwt[crypto]==2.10.1"", ""django-clearcache==1.2.1"", ""sqlparse==0.5.5"", ""packaging==25.0"", ""jsonschema-specifications==2025.9.1"", ""psutil==7.2.1"", ""tzlocal==5.3.1"", ""backoff==1.10.0"", ""attrs==25.4.0"", ""edx-toggles==5.4.1"", ""algoliasearch==3.0.0"", ""httpcore==1.0.9"", ""asgiref==3.11.0"", ""edx-django-utils==8.0.1"", ""django-celery-results==2.6.0"", ""stevedore==5.6.0"", ""social-auth-app-django==5.7.0"", ""edx-django-release-util==1.5.0"", ""python3-openid==3.2.0"", ""django-simple-history==3.11.0"", ""edx-rest-api-client==6.2.0"", ""amqp==5.3.1"", ""uritemplate==4.2.0"", ""drf-spectacular==0.29.0"", ""certifi==2026.1.4"", ""mysqlclient==2.2.7"", ""edx-rbac==2.1.0"", ""edx-celeryutils==1.4.0"", ""gunicorn==23.0.0"", ""jsonschema==4.26.0"", ""djangorestframework-xml==2.0.0"", ""pymemcache==4.0.0"", ""redis==7.1.0"", ""requests-oauthlib==2.0.0"", ""gevent==25.9.1"", ""kombu==5.6.2"", ""djangoql==0.18.1"", ""typing-extensions==4.15.0"", ""jsonfield==3.2.0"", ""zipp==3.23.0"", ""referencing==0.37.0"", ""click-plugins==1.1.1.2"", ""charset-normalizer==3.4.4"", ""pydantic-core==2.41.5"", ""httpx==0.28.1"", ""markupsafe==3.0.3"", ""python-slugify==8.0.4"", ""idna==3.11"", ""jinja2==3.1.6"", ""ply==3.11"", ""django-model-utils==5.0.0"", ""rpds-py==0.30.0"", ""zope-event==6.1"", ""edx-auth-backends==4.6.2"", ""analytics-python==1.4.post1"", ""greenlet==3.3.0"", ""defusedxml==0.7.1"", ""xlsxwriter==3.2.9"", ""tqdm==4.67.1"", ""annotated-types==0.7.0"", ""djangorestframework==3.16.1"", ""click==8.3.1"", ""text-unidecode==1.3"", ""django==5.2.10"", ""distro==1.9.0"", ""django-import-export==4.4.0"", ""pymongo==4.16.0"", ""django-extensions==4.1"", ""tablib==3.9.0"", ""anyio==4.12.1"", ""openai==1.13.3"", ""code-annotations==2.3.0"", ""threadpoolctl==3.6.0"", ""drf-jwt==1.19.2"", ""celery==5.6.2"", ""urllib3==2.6.3"", ""pycparser==2.23"", ""edx-opaque-keys==3.0.0"", ""pynacl==1.6.2"", ""wcwidth==0.2.14"", ""click-didyoumean==0.3.1"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""diff-match-patch==20241021"", ""h11==0.16.0"", ""rules==3.5"", ""social-auth-core==4.8.3"", ""oauthlib==3.3.1"", ""python-memcached==1.62"", ""sniffio==1.3.1"", ""six==1.17.0"", ""billiard==4.2.4"", ""scipy==1.17.0"", ""django-config-models==2.9.0"", ""joblib==1.5.3"", ""prompt-toolkit==3.0.52"", ""typing-inspection==0.4.2"", ""requests==2.32.5"", ""django-log-request-id==2.1.0"", ""inflection==0.5.1"", ""pydantic==2.12.5"", ""pyyaml==6.0.3"", ""python-dateutil==2.9.0.post0""]",204,"[""faker==40.1.0"", ""jsonfield2==4.0.0.post0"", ""mccabe==0.7.0"", ""tzdata==2025.3"", ""monotonic==1.6"", ""pytz==2025.2"", ""pylint-plugin-utils==0.9.0"", ""imagesize==1.4.1"", ""cffi==2.0.0"", ""dnspython==2.8.0"", ""alabaster==1.0.0"", ""coverage[toml]==7.13.1"", ""edx-drf-extensions==10.6.0"", ""django-cors-headers==4.9.0"", ""simplejson==3.20.2"", ""numpy==2.4.1"", ""click-repl==0.3.0"", ""pyparsing==3.0.7"", ""pygments==2.19.2"", ""semantic-version==2.10.0"", ""scikit-learn==1.8.0"", ""cryptography==46.0.3"", ""zope-interface==8.2"", ""vine==5.1.0"", ""platformdirs==2.4.1"", ""responses==0.25.8"", ""pyjwt[crypto]==2.10.1"", ""django-clearcache==1.2.1"", ""sqlparse==0.5.5"", ""packaging==25.0"", ""jsonschema-specifications==2025.9.1"", ""psutil==7.2.1"", ""tzlocal==5.3.1"", ""backoff==1.10.0"", ""attrs==25.4.0"", ""edx-toggles==5.4.1"", ""algoliasearch==3.0.0"", ""httpcore==1.0.9"", ""asgiref==3.11.0"", ""edx-django-utils==8.0.1"", ""django-celery-results==2.6.0"", ""stevedore==5.6.0"", ""pytest-cov==7.0.0"", ""social-auth-app-django==5.7.0"", ""edx-django-release-util==1.5.0"", ""python3-openid==3.2.0"", ""pyproject-hooks==1.2.0"", ""pydata-sphinx-theme==0.15.4"", ""django-simple-history==3.11.0"", ""click-log==0.4.0"", ""edx-rest-api-client==6.2.0"", ""amqp==5.3.1"", ""polib==1.2.0"", ""uritemplate==4.2.0"", ""platformdirs==4.5.1"", ""inflect==7.5.0"", ""babel==2.17.0"", ""drf-spectacular==0.29.0"", ""certifi==2026.1.4"", ""typeguard==4.4.4"", ""mysqlclient==2.2.7"", ""pyproject-api==1.10.0"", ""django-debug-toolbar==6.1.0"", ""edx-rbac==2.1.0"", ""edx-celeryutils==1.4.0"", ""build==1.4.0"", ""pylint-celery==0.3"", ""gunicorn==23.0.0"", ""pluggy==1.6.0"", ""cachetools==6.2.4"", ""docutils==0.21.2"", ""jsonschema==4.26.0"", ""filelock==3.4.2"", ""sphinxcontrib-devhelp==2.0.0"", ""djangorestframework-xml==2.0.0"", ""pymemcache==4.0.0"", ""redis==7.1.0"", ""requests-oauthlib==2.0.0"", ""kombu==5.6.2"", ""jinja2-pluralize==0.3.0"", ""pylint-django==2.7.0"", ""gevent==25.9.1"", ""djangoql==0.18.1"", ""typing-extensions==4.15.0"", ""more-itertools==10.8.0"", ""toml==0.10.2"", ""restructuredtext-lint==2.0.2"", ""jsonfield==3.2.0"", ""zipp==3.23.0"", ""referencing==0.37.0"", ""diff-cover==4.0.0"", ""roman-numerals==4.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinx==9.1.0"", ""click-plugins==1.1.1.2"", ""charset-normalizer==3.4.4"", ""pydantic-core==2.41.5"", ""httpx==0.28.1"", ""dill==0.4.0"", ""markupsafe==3.0.3"", ""pytest-django==4.11.1"", ""chardet==5.2.0"", ""idna==3.11"", ""python-slugify==8.0.4"", ""isort==7.0.0"", ""jinja2==3.1.6"", ""virtualenv==20.36.1"", ""packaging==21.3"", ""django-model-utils==5.0.0"", ""ply==3.11"", ""edx-lint==5.6.0"", ""rpds-py==0.30.0"", ""doc8==2.0.0"", ""zope-event==6.1"", ""edx-auth-backends==4.6.2"", ""analytics-python==1.4.post1"", ""greenlet==3.3.0"", ""defusedxml==0.7.1"", ""xlsxwriter==3.2.9"", ""tox==4.34.1"", ""tqdm==4.67.1"", ""accessible-pygments==0.0.5"", ""wheel==0.45.1"", ""annotated-types==0.7.0"", ""djangorestframework==3.16.1"", ""edx-i18n-tools==1.9.0"", ""filelock==3.20.3"", ""pip==25.2"", ""click==8.3.1"", ""text-unidecode==1.3"", ""pycodestyle==2.14.0"", ""django==5.2.10"", ""pip-tools==7.5.2"", ""distlib==0.4.0"", ""distro==1.9.0"", ""django-import-export==4.4.0"", ""pymongo==4.16.0"", ""sphinxcontrib-qthelp==2.0.0"", ""django-extensions==4.1"", ""tablib==3.9.0"", ""readme-renderer==44.0"", ""anyio==4.12.1"", ""openai==1.13.3"", ""path==16.16.0"", ""code-annotations==2.3.0"", ""threadpoolctl==3.6.0"", ""setuptools==80.9.0"", ""soupsieve==2.8.1"", ""drf-jwt==1.19.2"", ""pluggy==1.0.0"", ""celery==5.6.2"", ""urllib3==2.6.3"", ""tomlkit==0.13.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pycparser==2.23"", ""edx-opaque-keys==3.0.0"", ""pynacl==1.6.2"", ""pytest==9.0.2"", ""snowballstemmer==3.0.1"", ""wcwidth==0.2.14"", ""click-didyoumean==0.3.1"", ""colorama==0.4.6"", ""tox==3.24.5"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""diff-match-patch==20241021"", ""h11==0.16.0"", ""ddt==1.7.2"", ""iniconfig==2.3.0"", ""rules==3.5"", ""pydocstyle==6.3.0"", ""social-auth-core==4.8.3"", ""sphinx-book-theme==1.1.4"", ""virtualenv==20.13.1"", ""django-dynamic-fixture==4.0.1"", ""oauthlib==3.3.1"", ""py==1.11.0"", ""python-memcached==1.62"", ""sniffio==1.3.1"", ""six==1.17.0"", ""six==1.16.0"", ""distlib==0.3.4"", ""billiard==4.2.4"", ""scipy==1.17.0"", ""pylint==4.0.4"", ""lxml-html-clean==0.4.3"", ""lxml[html-clean]==6.0.2"", ""django-config-models==2.9.0"", ""tox-battery==0.6.1"", ""astroid==4.0.3"", ""joblib==1.5.3"", ""nh3==0.3.2"", ""prompt-toolkit==3.0.52"", ""typing-inspection==0.4.2"", ""requests==2.32.5"", ""factory-boy==3.3.3"", ""django-log-request-id==2.1.0"", ""inflection==0.5.1"", ""beautifulsoup4==4.14.3"", ""pydantic==2.12.5"", ""pyyaml==6.0.3"", ""python-dateutil==2.9.0.post0""]",22,"[""django-cors-headers"", ""edx-celeryutils"", ""edx-rest-api-client"", ""djangorestframework"", ""factory-boy"", ""django-config-models"", ""edx-toggles"", ""django-waffle"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""pytest-django"", ""edx-auth-backends"", ""django-debug-toolbar"", ""code-annotations"", ""edx-django-utils"", ""edx-django-release-util"", ""django-extensions"", ""django-celery-results"", ""edx-opaque-keys"", ""edx-rbac"", ""social-auth-app-django"", ""pylint-django""]",30,"[""django-cors-headers"", ""edx-celeryutils"", ""edx-rest-api-client"", ""rules"", ""djangorestframework"", ""factory-boy"", ""jsonfield"", ""django-config-models"", ""edx-toggles"", ""django-waffle"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""django-model-utils"", ""pytest-django"", ""drf-jwt"", ""django-crum"", ""edx-auth-backends"", ""django-debug-toolbar"", ""code-annotations"", ""edx-django-utils"", ""edx-django-release-util"", ""django-extensions"", ""django-celery-results"", ""edx-opaque-keys"", ""edx-rbac"", ""social-auth-app-django"", ""djangorestframework-xml"", ""django-simple-history"", ""django-dynamic-fixture"", ""pylint-django""]",18,"[""edx-toggles"", ""django-extensions"", ""django-cors-headers"", ""edx-drf-extensions"", ""django-waffle"", ""edx-celeryutils"", ""django-config-models"", ""edx-rest-api-client"", ""django-celery-results"", ""edx-auth-backends"", ""edx-opaque-keys"", ""django-debug-toolbar"", ""code-annotations"", ""social-auth-app-django"", ""edx-django-utils"", ""edx-django-release-util"", ""edx-rbac"", ""edx-i18n-tools""]",False,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,False,True,True,True,True,True,83,"{""total_duration"": ""14313 minutes 22 seconds"", ""checks"": [{""name"": ""build (3.12, django52)"", ""duration"": ""5 minutes 32 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 59 seconds""}, {""name"": ""check migration for MySql8 (ubuntu-latest, 3.12)"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2019-12-10 15:58:48,master,"A Django-based microservice for handling Enterprise catalogs, associating enterprise customers with curated courses from the full course catalog.",48467,28,True,False,False,False,False,False,False,2026-04-30 15:38:34,GNU AGPLv3,20,True,0,0,0,0,8738,1433709,2528,True,True,False,False,True,False,False,,openedx,9,"['https://travis-ci.com/edx/enterprise-catalog: 415', 'https://github.com/openedx/enterprise-catalog/blob/master/LICENSE: 504']",False,"['https://travis-ci.com/edx/enterprise-catalog.svg?branch=master', 'http://codecov.io/github/edx/enterprise-catalog/coverage.svg?branch=master', 'http://codecov.io/github/edx/enterprise-catalog?branch=master', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://openedx.slack.com/messages/general/', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-proctoring,,,,True,2026-06-08,False,False,False,False,158,0,[],0,{},0,17,"{""babel-polyfill"": ""^6.26.0"", ""eslint"": ""^5.9.0"", ""eslint-config-edx"": ""^4.0.4"", ""eslint-config-edx-es5"": ""^4.0.1"", ""eslint-plugin-jsx-a11y"": ""^6.5.1"", ""gulp"": ""4.0.0"", ""gulp-karma"": ""0.0.1"", ""jasmine-core"": ""^2.8.0"", ""karma"": ""^0.13.0"", ""karma-chrome-launcher"": ""^0.2.0"", ""karma-coverage"": ""^1.1.1"", ""karma-jasmine"": ""^0.3.6"", ""karma-jasmine-jquery-2"": ""latest"", ""karma-phantomjs-launcher"": ""^1.0.4"", ""karma-sinon"": ""^1.0.5"", ""phantomjs-prebuilt"": ""^2.1.14"", ""sinon"": ""^3.2.1""}",{},73,"[""celery==5.6.2"", ""django-model-utils==5.0.0"", ""django-webpack-loader==0.7.0"", ""fs==2.4.16"", ""kombu==5.6.2"", ""openedx-events==10.5.0"", ""edx-opaque-keys[django]==3.1.0"", ""pyjwt[crypto]==2.12.0"", ""dnspython==2.8.0"", ""pyyaml==6.0.3"", ""python-slugify==8.0.4"", ""django-waffle==5.0.0"", ""amqp==5.3.1"", ""djangorestframework==3.16.1"", ""jsonfield==3.2.0"", ""certifi==2026.2.25"", ""edx-rest-api-client==6.2.0"", ""edx-when==3.2.1"", ""jinja2==3.1.6"", ""python-dateutil==2.9.0.post0"", ""stevedore==5.7.0"", ""urllib3==2.6.3"", ""attrs==25.4.0"", ""click-didyoumean==0.3.1"", ""tzlocal==5.3.1"", ""django-ipware==7.0.1"", ""requests==2.32.5"", ""click==8.3.1"", ""pytz==2026.1.post1"", ""click-plugins==1.1.1.2"", ""vine==5.1.0"", ""text-unidecode==1.3"", ""rules==3.5"", ""webob==1.8.9"", ""packaging==26.0"", ""drf-jwt==1.19.2"", ""billiard==4.2.4"", ""charset-normalizer==3.4.5"", ""cryptography==46.0.5"", ""pycryptodomex==3.23.0"", ""python-ipware==3.0.0"", ""cffi==2.0.0"", ""edx-drf-extensions==10.6.0"", ""appdirs==1.4.4"", ""code-annotations==2.3.2"", ""edx-ccx-keys==2.0.2"", ""event-tracking==3.3.0"", ""fastavro==1.12.1"", ""simplejson==3.20.2"", ""wcwidth==0.6.0"", ""xblock==5.3.0"", ""asgiref==3.11.1"", ""web-fragments==4.0.0"", ""django==5.2.12"", ""psutil==7.2.2"", ""prompt-toolkit==3.0.52"", ""markupsafe==3.0.3"", ""django-crum==0.7.9"", ""django-simple-history==3.11.0"", ""pynacl==1.6.2"", ""lxml==6.0.2"", ""idna==3.11"", ""tzdata==2025.3"", ""mako==1.3.10"", ""click-repl==0.3.0"", ""edx-toggles==5.4.1"", ""pycparser==3.0"", ""semantic-version==2.10.0"", ""edx-django-utils==8.0.1"", ""six==1.17.0"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""pymongo==4.16.0""]",141,"[""django-model-utils==5.0.0"", ""kombu==5.6.2"", ""edx-lint==6.0.0"", ""edx-i18n-tools==2.0.0"", ""pyjwt[crypto]==2.12.0"", ""django-waffle==5.0.0"", ""amqp==5.3.1"", ""jsonfield==3.2.0"", ""python-dateutil==2.9.0.post0"", ""astroid==4.0.4"", ""pygments==2.19.2"", ""vine==5.1.0"", ""packaging==26.0"", ""cryptography==46.0.5"", ""cffi==2.0.0"", ""appdirs==1.4.4"", ""fastavro==1.12.1"", ""freezegun==1.5.5"", ""wheel==0.46.3"", ""shellingham==1.5.4"", ""pylint-celery==0.3"", ""markupsafe==3.0.3"", ""mako==1.3.10"", ""virtualenv==21.2.0"", ""six==1.17.0"", ""path-py==12.5.0"", ""edx-opaque-keys[django]==3.1.0"", ""python-discovery==1.1.3"", ""dnspython==2.8.0"", ""markdown-it-py==4.0.0"", ""djangorestframework==3.16.1"", ""jinja2==3.1.6"", ""stevedore==5.7.0"", ""coverage[toml]==7.13.4"", ""attrs==25.4.0"", ""httpretty==1.1.4"", ""django-ipware==7.0.1"", ""build==1.4.0"", ""pytz==2026.1.post1"", ""click-plugins==1.1.1.2"", ""text-unidecode==1.3"", ""webob==1.8.9"", ""pyproject-api==1.10.0"", ""drf-jwt==1.19.2"", ""python-ipware==3.0.0"", ""pycryptodomex==3.23.0"", ""iniconfig==2.3.0"", ""pydantic==2.12.5"", ""pylint-django==2.7.0"", ""edx-drf-extensions==10.6.0"", ""code-annotations==2.3.2"", ""mccabe==0.7.0"", ""pytest-django==4.12.0"", ""factory-boy==3.3.3"", ""rstcheck==6.2.5"", ""pydantic-core==2.41.5"", ""asgiref==3.11.1"", ""web-fragments==4.0.0"", ""psutil==7.2.2"", ""prompt-toolkit==3.0.52"", ""django-crum==0.7.9"", ""lxml==6.0.2"", ""tzdata==2025.3"", ""pytest-xdist==3.8.0"", ""mock==5.2.0"", ""snowballstemmer==3.0.1"", ""edx-django-utils==8.0.1"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""pymongo==4.16.0"", ""celery==5.6.2"", ""openedx-events==10.5.0"", ""fs==2.4.16"", ""rich==14.3.3"", ""filelock==3.25.2"", ""tomlkit==0.14.0"", ""python-slugify==8.0.4"", ""isort==8.0.1"", ""typer==0.24.1"", ""certifi==2026.2.25"", ""execnet==2.1.2"", ""diff-cover==10.2.0"", ""urllib3==2.6.3"", ""coverage==7.13.4"", ""click-didyoumean==0.3.1"", ""requests==2.32.5"", ""annotated-doc==0.0.4"", ""rules==3.5"", ""colorama==0.4.6"", ""billiard==4.2.4"", ""charset-normalizer==3.4.5"", ""tox==4.49.1"", ""httmock==1.4.0"", ""simplejson==3.20.2"", ""edx-ccx-keys==2.0.2"", ""event-tracking==3.3.0"", ""tomli-w==1.2.0"", ""ddt==1.7.2"", ""django==5.2.12"", ""responses==0.26.0"", ""django-simple-history==3.11.0"", ""rstcheck-core==1.2.2"", ""idna==3.11"", ""lxml-html-clean==0.4.4"", ""pycparser==3.0"", ""polib==1.2.0"", ""docutils==0.22.4"", ""pytest==9.0.2"", ""pyproject-hooks==1.2.0"", ""chardet==7.1.0"", ""django-webpack-loader==0.7.0"", ""pylint-plugin-utils==0.9.0"", ""pyyaml==6.0.3"", ""faker==40.11.0"", ""edx-rest-api-client==6.2.0"", ""edx-when==3.2.1"", ""click-log==0.4.0"", ""pip-tools==7.5.3"", ""tzlocal==5.3.1"", ""lxml[html-clean]==6.0.2"", ""click==8.3.1"", ""pydocstyle==6.3.0"", ""pytest-cov==7.0.0"", ""path==16.16.0"", ""distlib==0.4.0"", ""pluggy==1.6.0"", ""testfixtures==11.0.0"", ""dill==0.4.1"", ""platformdirs==4.9.4"", ""wcwidth==0.6.0"", ""typing-inspection==0.4.2"", ""annotated-types==0.7.0"", ""xblock==5.3.0"", ""pynacl==1.6.2"", ""click-repl==0.3.0"", ""pycodestyle==2.14.0"", ""mdurl==0.1.2"", ""edx-toggles==5.4.1"", ""semantic-version==2.10.0"", ""pylint==4.0.5"", ""cachetools==7.0.5""]",16,"[""edx-drf-extensions"", ""pylint-django"", ""xblock"", ""factory-boy"", ""edx-when"", ""code-annotations"", ""edx-django-utils"", ""event-tracking"", ""edx-i18n-tools"", ""django-webpack-loader"", ""edx-rest-api-client"", ""edx-toggles"", ""django-waffle"", ""pytest-django"", ""djangorestframework"", ""web-fragments""]",23,"[""factory-boy"", ""django-crum"", ""django-webpack-loader"", ""edx-rest-api-client"", ""djangorestframework"", ""edx-drf-extensions"", ""jsonfield"", ""edx-when"", ""edx-django-utils"", ""edx-toggles"", ""drf-jwt"", ""code-annotations"", ""rules"", ""event-tracking"", ""django-waffle"", ""web-fragments"", ""pylint-django"", ""xblock"", ""edx-i18n-tools"", ""pytest-django"", ""django-model-utils"", ""django-simple-history"", ""django-ipware""]",11,"[""edx-drf-extensions"", ""xblock"", ""edx-when"", ""code-annotations"", ""edx-django-utils"", ""event-tracking"", ""edx-i18n-tools"", ""edx-rest-api-client"", ""edx-toggles"", ""django-waffle"", ""web-fragments""]",False,,True,False,True,True,False,True,True,True,True,False,True,True,True,True,True,True,True,True,True,True,True,39,"{""total_duration"": ""4415 minutes 55 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, 20, django42-drflatest)"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, django52-drflatest)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, quality)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, translations-django52)"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, translations-django42)"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, js_lint)"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, js_tests)"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Test (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, rst_validation)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, pii_check)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, 20, version_check)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2015-06-08 13:38:04,master,,12059,95,True,False,False,False,False,False,False,2026-06-02 16:51:47,GNU AGPLv3,11,True,0,0,56727,235711,6736,1099322,0,True,True,True,True,True,True,True,@edx/edx-proctoring,openedx,6,"['https://open.edx.org/getting-help: 403', 'https://docs.openedx.org/en/latest/educators/concepts/proctored_exams/proctored_exams_overview.html: 404']",True,"['https://img.shields.io/pypi/v/edx-proctoring.svg', 'https://pypi.python.org/pypi/edx-proctoring/', 'https://github.com/openedx/edx-proctoring/workflows/Python%20CI/badge.svg', 'https://github.com/openedx/edx-proctoring/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/gh/edx/edx-proctoring/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/edx-proctoring', 'https://img.shields.io/pypi/pyversions/edx-proctoring.svg', 'https://img.shields.io/github/license/edx/django-component-views.svg', 'https://github.com/openedx/edx-proctoring/blob/master/LICENSE.txt', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,True,,,0,False,True,False,True,,False,edx-proctoring,['3.12'],https://github.com/openedx/edx-proctoring,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-filters,,,,True,2026-06-08,True,True,False,False,120,0,[],0,,0,0,,,8,"[""typing-extensions==4.15.0"", ""edx-opaque-keys[django]==4.0.0"", ""sqlparse==0.5.5"", ""pymongo==4.17.0"", ""asgiref==3.11.1"", ""django==5.2.14"", ""stevedore==5.7.0"", ""dnspython==2.8.0""]",120,"[""filelock==3.29.0"", ""tox==4.53.1"", ""sphinx-autobuild==2025.8.25"", ""pytest-cov==7.1.0"", ""isort==8.0.1"", ""id==1.6.1"", ""more-itertools==11.0.2"", ""tomli-w==1.2.0"", ""mypy==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""ast-serialize==0.3.0"", ""mccabe==0.7.0"", ""dill==0.4.1"", ""text-unidecode==1.3"", ""charset-normalizer==3.4.7"", ""soupsieve==2.8.3"", ""code-annotations==3.0.0"", ""pylint-celery==0.3"", ""sphinxcontrib-qthelp==2.0.0"", ""platformdirs==4.9.6"", ""click==8.3.3"", ""pylint-plugin-utils==0.9.0"", ""django-stubs-ext==6.0.4"", ""pytest==9.0.3"", ""uvicorn==0.46.0"", ""watchfiles==1.1.1"", ""attrs==26.1.0"", ""dnspython==2.8.0"", ""pyproject-api==1.10.0"", ""pip-tools==7.5.3"", ""ddt==1.7.2"", ""cryptography==48.0.0"", ""click-log==0.4.0"", ""rfc3986==2.0.0"", ""packaging==26.2"", ""doc8==2.0.0"", ""roman-numerals==4.1.0"", ""mypy-extensions==1.1.0"", ""build==1.5.0"", ""pyyaml==6.0.3"", ""jeepney==0.9.0"", ""pyproject-hooks==1.2.0"", ""jaraco-functools==4.4.0"", ""restructuredtext-lint==2.0.2"", ""beautifulsoup4==4.14.3"", ""edx-opaque-keys[django]==4.0.0"", ""jaraco-classes==3.4.0"", ""requests-toolbelt==1.0.0"", ""sphinx==9.1.0"", ""markupsafe==3.0.3"", ""pluggy==1.6.0"", ""anyio==4.13.0"", ""requests==2.33.1"", ""nh3==0.3.5"", ""websockets==16.0"", ""cachetools==7.1.1"", ""coverage[toml]==7.14.0"", ""sphinx-book-theme==1.2.0"", ""keyring==25.7.0"", ""distlib==0.4.0"", ""urllib3==2.7.0"", ""django-stubs==6.0.4"", ""pip==26.1.1"", ""virtualenv==21.3.1"", ""readme-renderer==44.0"", ""alabaster==1.0.0"", ""docutils==0.21.2"", ""wheel==0.47.0"", ""pytest-django==4.12.0"", ""chardet==7.4.3"", ""starlette==1.0.0"", ""mdurl==0.1.2"", ""babel==2.18.0"", ""diff-cover==10.2.0"", ""pylint-django==2.7.0"", ""pymongo==4.17.0"", ""iniconfig==2.3.0"", ""django==5.2.14"", ""sphinxcontrib-htmlhelp==2.1.0"", ""stevedore==5.7.0"", ""pygments==2.20.0"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""idna==3.14"", ""markdown-it-py==4.2.0"", ""docutils==0.22.4"", ""imagesize==2.0.0"", ""colorama==0.4.6"", ""python-slugify==8.0.4"", ""secretstorage==3.5.0"", ""certifi==2026.4.22"", ""scriv==1.8.0"", ""pydata-sphinx-theme==0.16.1"", ""edx-lint==6.1.0"", ""sqlparse==0.5.5"", ""jinja2==3.1.6"", ""sphinx-copybutton==0.5.2"", ""h11==0.16.0"", ""sphinxcontrib-applehelp==2.0.0"", ""ruff==0.15.12"", ""librt==0.11.0"", ""tomlkit==0.15.0"", ""pycparser==3.0"", ""accessible-pygments==0.0.5"", ""snowballstemmer==3.0.1"", ""pathspec==1.1.1"", ""pylint==4.0.5"", ""twine==6.2.0"", ""asgiref==3.11.1"", ""setuptools==82.0.1"", ""rich==15.0.0"", ""types-pyyaml==6.0.12.20260510"", ""sphinxcontrib-mermaid==2.0.2"", ""pycodestyle==2.14.0"", ""six==1.17.0"", ""sphinxcontrib-jsmath==1.0.1"", ""jaraco-context==6.1.2"", ""python-discovery==1.3.0"", ""astroid==4.0.4"", ""sphinxcontrib-devhelp==2.0.0""]",3,"[""pytest-django"", ""pylint-django"", ""code-annotations""]",3,"[""pytest-django"", ""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,10,"{""total_duration"": ""6289 minutes 48 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, py311-django52)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, py311-django42)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2021-04-21 17:24:26,main,Open edX filters from the Hooks Extensions Framework ,501,26,True,False,False,False,False,False,False,2026-06-08 01:09:07,GNU AGPLv3,11,True,0,0,0,0,3421,139714,0,True,True,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/openedx-filters/actions/workflows/ci.yml/badge.svg?branch=main: 504', 'https://github.com/openedx/openedx-filters/blob/main/LICENSE.txt: 504']",True,"['https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://docs.openedx.org/projects/openedx-filters/en/latest/', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-filters/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-filters', 'https://img.shields.io/pypi/v/openedx-filters.svg', 'https://pypi.python.org/pypi/openedx-filters/', 'https://github.com/openedx/openedx-filters/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-filters/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-filters?branch=main', 'https://readthedocs.org/projects/openedx-filters/badge/?version=latest', 'https://openedx-filters.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/openedx-filters.svg', 'https://img.shields.io/github/license/openedx/openedx-filters.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-filters,"['3', '3.12']",https://github.com/openedx/openedx-filters,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/django-wiki,,,,True,2026-06-08,True,True,False,False,62,0,[],0,,0,0,,,12,"[""django-sekizai==4.1.0"", ""tinycss2==1.4.0"", ""django-js-asset==3.1.2"", ""django-mptt==0.17.0"", ""django==4.2.21"", ""sorl-thumbnail==12.11.0"", ""bleach[css]==6.2.0"", ""webencodings==0.5.1"", ""django-classy-tags==4.1.0"", ""sqlparse==0.5.3"", ""asgiref==3.8.1"", ""markdown==3.8""]",62,"[""django-sekizai==4.1.0"", ""babel==2.17.0"", ""soupsieve==2.7"", ""imagesize==1.4.1"", ""packaging==25.0"", ""build==1.2.2.post1"", ""wheel==0.45.1"", ""webencodings==0.5.1"", ""snowballstemmer==3.0.1"", ""colorama==0.4.6"", ""tox==4.25.0"", ""sqlparse==0.5.3"", ""coverage[toml]==7.8.0"", ""beautifulsoup4==4.13.4"", ""asgiref==3.8.1"", ""markdown==3.8"", ""requests==2.32.3"", ""markupsafe==3.0.2"", ""pygments==2.19.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""chardet==5.2.0"", ""setuptools==80.4.0"", ""typing-extensions==4.13.2"", ""django==4.2.21"", ""sorl-thumbnail==12.11.0"", ""bleach[css]==6.2.0"", ""pytest==8.3.5"", ""pytest-django==4.11.1"", ""alabaster==1.0.0"", ""cachetools==5.5.2"", ""platformdirs==4.3.8"", ""pip==24.2"", ""certifi==2025.4.26"", ""sphinxcontrib-devhelp==2.0.0"", ""virtualenv==20.31.2"", ""sphinxcontrib-jsmath==1.0.1"", ""pip-tools==7.4.1"", ""pyproject-api==1.9.1"", ""django-mptt==0.17.0"", ""pytest-cov==6.1.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""click==8.2.0"", ""sphinx==8.2.3"", ""filelock==3.18.0"", ""pydata-sphinx-theme==0.15.4"", ""sphinx-book-theme==1.1.4"", ""pluggy==1.5.0"", ""jinja2==3.1.6"", ""distlib==0.3.9"", ""accessible-pygments==0.0.5"", ""django-js-asset==3.1.2"", ""urllib3==2.2.3"", ""iniconfig==2.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""docutils==0.21.2"", ""roman-numerals-py==3.1.0"", ""charset-normalizer==3.4.2"", ""django-classy-tags==4.1.0"", ""idna==3.10"", ""tinycss2==1.4.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pyproject-hooks==1.2.0""]",4,"[""django-classy-tags"", ""django-js-asset"", ""django-sekizai"", ""pytest-django""]",6,"[""django-mptt"", ""django-classy-tags"", ""django-js-asset"", ""django-sekizai"", ""pytest-django"", ""sorl-thumbnail""]",2,"[""django-js-asset"", ""django-sekizai""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,5,"{""total_duration"": ""-1 minutes 59 seconds"", ""checks"": [{""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2012-08-25 16:00:34,edx_release,A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.,4377,28,True,False,False,False,True,False,False,2026-05-30 15:06:24,,2,True,15119,0,77767,56696,933,272038,0,False,False,False,False,False,False,False,,openedx,1,"['https://github.com/benjaoming/django-wiki/blob/master/TODO.md: 404', 'http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/: 403', 'https://upload.wikimedia.org/wikipedia/commons/8/88/MediaWiki_database_schema_1-19_%28r102798%29.png: 403', 'http://code.google.com/p/django-simple-wiki/: 503', 'http://www.edxonline.org/: HTTPConnectionPool(host=\'www.edxonline.org\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'www.edxonline.org\', port=80): Failed to resolve \'www.edxonline.org\' ([Errno -2] Name or service not known)""))']",False,"['http://wiki.overtag.dk', 'http://www.djangoproject.com', 'http://south.aeracode.org/', 'https://github.com/waylan/Python-Markdown', 'https://github.com/django-mptt/django-mptt', 'https://github.com/ojii/django-sekizai/', 'https://github.com/sorl/sorl-thumbnail', 'https://github.com/divio/django-cms']",True,True,False,False,,,False,,,,False,True,False,True,,False,openedx-django-wiki,['3.12'],https://github.com/openedx/django-wiki,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/modular-learning,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""246131 minutes 30 seconds"", ""checks"": [{""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2022-11-15 22:03:32,main,,5,3,True,False,False,False,False,False,False,2024-12-16 20:07:52,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/orgs/openedx/projects/36: 504'],False,['https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575152670/Approach+Memo+Modular+Learning'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/wg-devops,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": """", ""checks"": []}",Other,2023-01-03 20:41:05,master,Issue repository for the DevOps Working Group,15,3,True,False,False,False,False,False,False,2025-10-30 15:18:16,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://discuss.openedx.org/c/working-groups/devops', 'https://app.slack.com/client/T02SNA1T6/C04J9GTLHH8', 'https://openedx.org/slack', 'https://github.com/orgs/openedx/projects/42', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3620044867/DevOps+Working+Group', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/46793351/Open+edX+Working+Groups', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/1022099494/Build-Test-Release+Working+Group', 'https://discuss.openedx.org/c/working-groups/build-test-release', 'https://github.com/orgs/openedx/projects/28/views/15', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3583016961/Developer+Experience+Working+Group', 'https://discuss.openedx.org/c/working-groups/dev-experience', 'https://github.com/orgs/openedx/projects/37', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3655008783/Large+Instances+-+DevOps+Sub-Working+Group', 'https://discuss.openedx.org/t/deploying-open-edx-on-kubernetes-using-helm/8771', 'https://discuss.openedx.org/c/operators/7', 'https://openedx.slack.com/channels/wg-devops', 'https://github.com/orgs/openedx/projects/42/views/2', 'https://github.com/openedx/openedx-k8s-harmony', 'https://github.com/overhangio/tutor/', 'https://docs.tutor.overhang.io/', 'https://github.com/orgs/overhangio/projects/4', 'https://discuss.openedx.org/tag/tutor', 'https://discuss.openedx.org/t/tutor-maintainers/7287', 'https://discuss.openedx.org', 'https://github.com/openedx/wg-devops/issues', 'https://github.com/openedx/wg-devops/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue', 'https://github.com/openedx/build-test-release-wg/issues?q=is%3Aopen+is%3Aissue+label%3Abug', 'https://github.com/openedx/wg-developer-experience/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue', 'https://github.com/orgs/openedx/projects/42/views/3', 'https://github.com/orgs/overhangio/projects/4/views/1?filterQuery=-label%3A%22good+first+issue%22', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-backstage,,,,False,2026-06-08,True,True,False,False,11,0,,0,{},0,11,"{""@backstage/cli"": ""^0.36.0"", ""@backstage/cli-defaults"": ""^0.1.0"", ""@backstage/e2e-test-utils"": ""^0.1.2"", ""@jest/environment-jsdom-abstract"": ""^30.0.0"", ""@playwright/test"": ""^1.32.3"", ""@types/jest"": ""^30.0.0"", ""jest"": ""^30.2.0"", ""jsdom"": ""^27.1.0"", ""node-gyp"": ""^10.0.0"", ""prettier"": ""^2.3.2"", ""typescript"": ""~5.8.0""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,True,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""80913 minutes 25 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 15 seconds""}]}",Other,2022-05-27 13:28:48,main,The openedx instance of Backstage for helping maintainers,1918,7,True,False,False,False,False,False,False,2026-03-25 15:11:48,Apache License 2.0,2,False,0,3257,1850,1005,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://backstage.io', 'https://github.com/nvm-sh/nvm']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/event-tracking,,,,True,2026-06-08,True,True,False,False,98,0,[],0,,0,0,,,43,"[""asgiref==3.11.1"", ""billiard==4.2.4"", ""django-waffle==5.0.0"", ""kombu==5.6.2"", ""pycparser==3.0"", ""dnspython==2.8.0"", ""pyyaml==6.0.3"", ""cffi==2.0.0"", ""fastavro==1.12.2"", ""click-didyoumean==0.3.1"", ""packaging==26.2"", ""click==8.4.1"", ""tzdata==2026.2"", ""edx-ccx-keys==2.0.2"", ""django==5.2.14"", ""wcwidth==0.7.0"", ""celery==5.6.3"", ""jinja2==3.1.6"", ""django-crum==0.7.9"", ""pymongo==4.17.0"", ""amqp==5.3.1"", ""python-slugify==8.0.4"", ""typing-extensions==4.15.0"", ""vine==5.1.0"", ""markupsafe==3.0.3"", ""pynacl==1.6.2"", ""sqlparse==0.5.5"", ""text-unidecode==1.3"", ""tzlocal==5.3.1"", ""six==1.17.0"", ""python-dateutil==2.9.0.post0"", ""prompt-toolkit==3.0.52"", ""edx-django-utils==8.0.1"", ""stevedore==5.8.0"", ""pytz==2026.2"", ""openedx-events==11.2.0"", ""attrs==26.1.0"", ""edx-opaque-keys[django]==4.0.0"", ""code-annotations==3.0.0"", ""click-repl==0.3.0"", ""click-plugins==1.1.1.2"", ""psutil==7.2.2"", ""edx-toggles==6.0.0""]",98,"[""docutils==0.22.4"", ""tzdata==2026.2"", ""pyproject-api==1.10.1"", ""jinja2==3.1.6"", ""pip-tools==7.5.3"", ""django-crum==0.7.9"", ""pymongo==4.17.0"", ""python-slugify==8.0.4"", ""setuptools==82.0.1"", ""pynacl==1.6.2"", ""pylint-plugin-utils==0.9.0"", ""text-unidecode==1.3"", ""six==1.17.0"", ""python-dateutil==2.9.0.post0"", ""pylint==4.0.5"", ""pytest==9.0.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pygments==2.20.0"", ""pytz==2026.2"", ""openedx-events==11.2.0"", ""edx-opaque-keys[django]==4.0.0"", ""requests==2.34.2"", ""colorama==0.4.6"", ""charset-normalizer==3.4.7"", ""roman-numerals==4.1.0"", ""tomlkit==0.15.0"", ""click-log==0.4.0"", ""snowballstemmer==3.1.0"", ""pip==26.1.2"", ""pylint-django==2.7.0"", ""sphinxcontrib-qthelp==2.0.0"", ""django-waffle==5.0.0"", ""pycparser==3.0"", ""ddt==1.7.2"", ""coverage[toml]==7.14.1"", ""click==8.4.1"", ""certifi==2026.5.20"", ""wcwidth==0.7.0"", ""imagesize==2.0.0"", ""mccabe==0.7.0"", ""babel==2.18.0"", ""urllib3==2.7.0"", ""cachetools==7.1.4"", ""tzlocal==5.3.1"", ""alabaster==1.0.0"", ""pylint-celery==0.3"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-jsmath==1.0.1"", ""idna==3.17"", ""platformdirs==4.10.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pycodestyle==2.14.0"", ""sphinx==9.1.0"", ""asgiref==3.11.1"", ""billiard==4.2.4"", ""dill==0.4.1"", ""fastavro==1.12.2"", ""click-didyoumean==0.3.1"", ""packaging==26.2"", ""django==5.2.14"", ""distlib==0.4.0"", ""astroid==4.0.4"", ""virtualenv==21.4.2"", ""sqlparse==0.5.5"", ""mock==5.2.0"", ""wheel==0.47.0"", ""tomli-w==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""filelock==3.29.0"", ""coverage==7.14.1"", ""prompt-toolkit==3.0.52"", ""stevedore==5.8.0"", ""iniconfig==2.3.0"", ""attrs==26.1.0"", ""python-discovery==1.4.0"", ""click-repl==0.3.0"", ""click-plugins==1.1.1.2"", ""edx-toggles==6.0.0"", ""build==1.5.0"", ""kombu==5.6.2"", ""pyyaml==6.0.3"", ""dnspython==2.8.0"", ""cffi==2.0.0"", ""pluggy==1.6.0"", ""edx-ccx-keys==2.0.2"", ""celery==5.6.3"", ""isort==8.0.1"", ""amqp==5.3.1"", ""typing-extensions==4.15.0"", ""edx-lint==6.1.0"", ""vine==5.1.0"", ""markupsafe==3.0.3"", ""pytest-cov==7.1.0"", ""edx-django-utils==8.0.1"", ""code-annotations==3.0.0"", ""tox==4.55.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""psutil==7.2.2""]",5,"[""edx-django-utils"", ""pylint-django"", ""django-waffle"", ""edx-toggles"", ""code-annotations""]",6,"[""edx-django-utils"", ""pylint-django"", ""django-waffle"", ""edx-toggles"", ""code-annotations"", ""django-crum""]",4,"[""django-waffle"", ""edx-django-utils"", ""edx-toggles"", ""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,15,"{""total_duration"": ""7919 minutes 42 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, celery54-django52)"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2013-09-16 17:57:22,master,a system for tracking events,568,39,True,False,False,False,False,False,False,2026-06-08 02:53:47,GNU AGPLv3,1,True,0,0,0,0,3410,108671,0,False,False,False,False,True,False,False,,openedx,2,"['http://www.edx.org/some/path/1: 404', 'http://www.edx.org/some/path/2: 404', 'http://event-tracking.readthedocs.org/en/latest/: 429']",False,"['http://code.edx.org/', 'https://github.com/openedx/edx-platform/wiki/How-To-Contribute', 'https://groups.google.com/forum/', 'https://github.com/openedx/event-tracking/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/event-tracking/actions?query=workflow%3A%22Python+CI%22']",True,False,False,False,,,False,,,,False,True,False,True,,False,event-tracking,"['3', '3.12']",https://github.com/openedx/event-tracking,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-webhooks,,,,True,2026-06-08,True,True,False,False,118,0,[],0,,0,0,,,52,"[""idna==3.17"", ""requests-toolbelt==1.0.0"", ""sentry-sdk[flask]==2.61.0"", ""tzdata==2026.2"", ""pycparser==3.0"", ""prompt-toolkit==3.0.52"", ""glom==25.12.0"", ""amqp==5.3.1"", ""celery[redis]==5.6.3"", ""defusedxml==0.7.1"", ""kombu[redis]==5.6.2"", ""click-repl==0.3.0"", ""flask-sslify==0.1.5"", ""cffi==2.0.0"", ""cryptography==48.0.0"", ""python-dateutil==2.9.0.post0"", ""cachetools==7.1.4"", ""face==26.0.0"", ""certifi==2026.5.20"", ""tzlocal==5.3.1"", ""boltons==25.0.0"", ""six==1.17.0"", ""itsdangerous==2.2.0"", ""uritemplate==4.2.0"", ""logging-tree==1.10"", ""urllib3==2.7.0"", ""click==8.4.1"", ""jira==3.10.5"", ""jinja2==3.1.6"", ""attrs==26.1.0"", ""click-didyoumean==0.3.1"", ""typing-extensions==4.15.0"", ""oauthlib[signedtoken]==3.3.1"", ""markupsafe==3.0.3"", ""pyjwt[crypto]==2.13.0"", ""pyyaml==6.0.3"", ""requests==2.34.2"", ""requests-oauthlib==2.0.0"", ""arrow==1.4.0"", ""gunicorn==26.0.0"", ""billiard==4.2.4"", ""flask==3.1.3"", ""click-plugins==1.1.1.2"", ""vine==5.1.0"", ""redis==6.4.0"", ""wcwidth==0.7.0"", ""packaging==26.2"", ""charset-normalizer==3.4.7"", ""blinker==1.9.0"", ""github3-py==4.0.1"", ""urlobject==3.0.0"", ""werkzeug==3.1.8""]",118,"[""sentry-sdk[flask]==2.61.0"", ""amqp==5.3.1"", ""pluggy==1.6.0"", ""click-repl==0.3.0"", ""python-dateutil==2.9.0.post0"", ""snowballstemmer==3.1.0"", ""mypy-extensions==1.1.0"", ""certifi==2026.5.20"", ""tzlocal==5.3.1"", ""isort==8.0.1"", ""pytest-cov==7.1.0"", ""pip==26.1.2"", ""pathspec==1.1.1"", ""edx-lint==6.1.0"", ""jinja2==3.1.6"", ""attrs==26.1.0"", ""mypy==2.1.0"", ""pytest==9.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-httpdomain==2.0.0"", ""urlobject==3.0.0"", ""alabaster==1.0.0"", ""tomlkit==0.15.0"", ""coverage[toml]==7.14.1"", ""pytest==8.2.0"", ""werkzeug==3.1.8"", ""pylint-django==2.7.0"", ""code-annotations==3.0.0"", ""celery[redis]==5.6.3"", ""flask-sslify==0.1.5"", ""python-dotenv==1.2.2"", ""python-slugify==8.0.4"", ""pip-tools==7.5.3"", ""build==1.5.0"", ""click-didyoumean==0.3.1"", ""pylint-celery==0.3"", ""oauthlib[signedtoken]==3.3.1"", ""markupsafe==3.0.3"", ""markdown-it-py==4.2.0"", ""pygments==2.20.0"", ""roman-numerals==4.1.0"", ""pyyaml==6.0.3"", ""gunicorn==26.0.0"", ""billiard==4.2.4"", ""platformdirs==4.10.0"", ""stevedore==5.8.0"", ""mccabe==0.7.0"", ""blinker==1.9.0"", ""librt==0.11.0"", ""mdurl==0.1.2"", ""pycparser==3.0"", ""prompt-toolkit==3.0.52"", ""pyproject-hooks==1.2.0"", ""sphinx==9.1.0"", ""schema==0.7.8"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pytz==2026.2"", ""defusedxml==0.7.1"", ""pytest-mock==3.15.1"", ""cryptography==48.0.0"", ""types-cachetools==7.0.0.20260518"", ""sphinxcontrib-jquery==4.1"", ""dill==0.4.1"", ""six==1.17.0"", ""uritemplate==4.2.0"", ""urllib3==2.7.0"", ""logging-tree==1.10"", ""click==8.4.1"", ""wheel==0.47.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pyjwt[crypto]==2.13.0"", ""pylint==4.0.5"", ""requests-mock==1.12.1"", ""arrow==1.4.0"", ""text-unidecode==1.3"", ""flask==3.1.3"", ""vine==5.1.0"", ""freezegun==1.5.5"", ""redis==6.4.0"", ""packaging==26.2"", ""charset-normalizer==3.4.7"", ""github3-py==4.0.1"", ""astroid==4.0.4"", ""iniconfig==2.3.0"", ""readme-renderer==44.0"", ""click-log==0.4.0"", ""idna==3.17"", ""babel==2.18.0"", ""requests-toolbelt==1.0.0"", ""tzdata==2026.2"", ""glom==25.12.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""kombu[redis]==5.6.2"", ""sphinxcontrib-qthelp==2.0.0"", ""cffi==2.0.0"", ""cachetools==7.1.4"", ""face==26.0.0"", ""boltons==25.0.0"", ""scriv==1.8.0"", ""pylint-pytest==1.1.8"", ""itsdangerous==2.2.0"", ""sphinx-rtd-theme==3.1.0"", ""jira==3.10.5"", ""nh3==0.3.5"", ""pylint-plugin-utils==0.9.0"", ""setuptools==82.0.1"", ""docutils==0.22.4"", ""types-requests==2.33.0.20260518"", ""typing-extensions==4.15.0"", ""sphinxcontrib-applehelp==2.0.0"", ""requests==2.34.2"", ""requests-oauthlib==2.0.0"", ""pytest-repeat==0.9.4"", ""types-pyyaml==6.0.12.20260518"", ""click-plugins==1.1.1.2"", ""wcwidth==0.7.0"", ""ast-serialize==0.5.0"", ""imagesize==2.0.0""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",True,,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,True,False,False,True,True,True,3,"{""total_duration"": ""9237 minutes 30 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2014-07-09 17:08:56,master,Webhooks for the Open edX GitHub and JIRA,1633,21,True,False,False,False,False,False,False,2026-06-08 00:41:48,Apache License 2.0,2,True,0,825,4319,0,5296,213379,0,False,False,False,False,True,False,False,,openedx,0,"['https://openedx-webhooks.herokuapp.com: 401', 'https://git.heroku.com/openedx-webhooks-staging.git: 405', 'https://github.com/organizations/: 404', 'https://openedx-webhooks.herokuapp.com/github/hook-receiver: 405', 'https://openedx.org/cla: 403', 'http://openedx-webhooks.readthedocs.org/en/latest/: 429']",False,"['https://dashboard.heroku.com/apps/openedx-webhooks-staging/resources', 'https://github.com/openedx/repo-tools-data-schema', 'https://github.com/', 'https://github.com/openedx/openedx-webhooks/issues/277', 'https://github.com/openedx/openedx-webhooks/issues/279', 'https://github.com/openedx/openedx-webhooks/issues/280', 'https://github.com/openedx/openedx-webhooks/issues/227', 'https://github.com/openedx/repo-tools/tree/master/edx_repo_tools/repo_checks', 'http://openedx.org', 'http://heroku.com', 'https://devcenter.heroku.com/articles/heroku-command-line', 'https://devcenter.heroku.com/articles/pipelines', 'https://github.com/openedx/openedx-webhooks/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/openedx-webhooks/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/openedx-webhooks/coverage.svg?branch=master', 'http://codecov.io/github/edx/openedx-webhooks?branch=master', 'https://readthedocs.org/projects/openedx-webhooks/badge/?version=latest']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,True,,False,openedx_webhooks,['3.12'],https://github.com/openedx/openedx_webhooks,False,False,False,False,False,False,False,False,False,[],[],"['ca-certificates', 'libssl-dev', 'python3.12-dev', 'language-pack-en', 'curl', 'gnupg', 'python3-pip', 'git-core', 'python3.12']",[] +openedx/crowdsourcehinter,,,,True,2026-06-08,True,True,False,False,31,0,[],0,,0,0,,,13,"[""lxml==6.0.2"", ""pytz==2026.1.post1"", ""python-dateutil==2.9.0.post0"", ""markupsafe==3.0.3"", ""pyyaml==6.0.3"", ""mako==1.3.10"", ""fs==2.4.16"", ""xblock==5.3.0"", ""webob==1.8.9"", ""simplejson==3.20.2"", ""web-fragments==3.1.0"", ""six==1.17.0"", ""appdirs==1.4.4""]",31,"[""pytest==9.0.2"", ""wheel==0.46.3"", ""mako==1.3.10"", ""pip-tools==7.5.3"", ""coverage[toml]==7.13.4"", ""web-fragments==3.1.0"", ""six==1.17.0"", ""webob==1.8.9"", ""setuptools==82.0.0"", ""pytz==2026.1.post1"", ""python-dateutil==2.9.0.post0"", ""packaging==26.0"", ""markupsafe==3.0.3"", ""fs==2.4.16"", ""click==8.3.1"", ""flake8==7.3.0"", ""pluggy==1.6.0"", ""build==1.4.0"", ""pyproject-hooks==1.2.0"", ""mccabe==0.7.0"", ""lxml==6.0.2"", ""pyyaml==6.0.3"", ""pycodestyle==2.14.0"", ""pip==26.0.1"", ""pyflakes==3.4.0"", ""iniconfig==2.3.0"", ""xblock==5.3.0"", ""pytest-cov==7.0.0"", ""simplejson==3.20.2"", ""pygments==2.19.2"", ""appdirs==1.4.4""]",2,"[""xblock"", ""web-fragments""]",2,"[""xblock"", ""web-fragments""]",2,"[""xblock"", ""web-fragments""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,False,True,False,False,True,False,False,27,"{""total_duration"": ""12196 minutes 6 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 6 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2019-03-08 19:22:50,master,Crowdsource hinter xblock,62889,9,True,False,False,False,False,False,False,2026-06-08 01:07:23,GNU AGPLv3,10,True,2484,0,7468,17676,2246,25891,33,False,True,False,True,True,False,True,,openedx,2,[],False,['https://github.com/openedx/edx-platform/wiki/Installing-a-new-XBlock'],True,True,False,False,,,False,,,,False,False,False,True,,False,crowdsourcehinter-xblock,"['3', '3.12']",https://github.com/openedx/crowdsourcehinter,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-enterprise-public-catalog,,,,False,2026-06-08,False,False,False,False,47,0,,0,{},36,11,"{""@edx/browserslist-config"": ""^1.5.0"", ""@openedx/frontend-build"": ""14.4.2"", ""@edx/typescript-config"": ""1.1.0"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""16.3.0"", ""@testing-library/user-event"": ""14.6.1"", ""glob"": ""7.2.3"", ""husky"": ""6.0.0"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""prettier"": ""2.8.8""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/brand-openedx"": ""^1.2.1"", ""@edx/frontend-component-footer"": ""14.7.1"", ""@edx/frontend-component-header"": ""6.4.0"", ""@edx/frontend-enterprise-catalog-search"": ""11.0.1"", ""@edx/frontend-enterprise-hotjar"": ""7.2.0"", ""@edx/frontend-enterprise-utils"": ""10.0.0"", ""@edx/frontend-platform"": ""^8.3.4"", ""@edx/openedx-atlas"": ""^0.6.2"", ""@openedx/paragon"": ""^22.17.0"", ""algoliasearch"": ""4.24.0"", ""axios"": ""^1.7.9"", ""babel-polyfill"": ""6.26.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.40.0"", ""file-saver"": ""^2.0.5"", ""history"": ""5.3.0"", ""lodash.debounce"": ""4.0.8"", ""lodash.escaperegexp"": ""4.1.2"", ""npm"": ""^8.19.4"", ""postcss-loader"": ""^8.1.1"", ""prop-types"": ""15.8.1"", ""query-string"": ""7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""6.1.0"", ""react-instantsearch-dom"": ""6.40.4"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.29.0"", ""react-router-dom"": ""6.29.0"", ""react-test-renderer"": ""18.3.1"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""2.13.9"", ""redux-logger"": ""3.0.6"", ""regenerator-runtime"": ""0.14.1"", ""style-loader"": ""^4.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,False,True,True,35,"{""total_duration"": ""26579 minutes 42 seconds"", ""checks"": [{""name"": ""build"", ""duration"": ""3 minutes 11 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 5 seconds""}]}",Other,2021-03-02 20:49:57,main,"A site for public browsing of enterprise catalogs, also called the Explore Catalog",12673,18,True,False,False,False,False,False,False,2026-05-29 22:39:05,GNU AGPLv3,9,True,0,0,430,202718,1776,0,0,False,False,False,False,False,False,False,@edx/frontend-app-enterprise-public-catalog,openedx,0,"['https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404', 'https://travis-ci.com/edx/frontend-app-enterprise-public-catalog: 415']",False,"['https://explore-catalog.stage.edx.org/', 'https://github.com/openedx/frontend-app-enterprise-public-catalog/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://api.travis-ci.com/edx/frontend-app-enterprise-public-catalog.svg?branch=master', 'https://codecov.io/gh/edx/frontend-app-enterprise-public-catalog/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/frontend-app-enterprise-public-catalog', 'https://img.shields.io/npm/l/@edx/frontend-app-enterprise-public-catalog.svg']",True,True,False,False,,,True,2026-02-22,2025-02-04,2,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/wg-maintenance,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""5745 minutes 29 seconds"", ""checks"": [{""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""61 minutes 20 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""55 minutes 26 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""52 minutes 43 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""43 minutes 24 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""call-repo-health-job-workflow / repo_health_check (3.12)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""set-default-inputs"", ""duration"": ""0 minutes 2 seconds""}]}",Other,2026-04-03 14:53:13,main,A repository for use by the Maintenance working group.,4799,1,True,False,False,False,False,False,False,2026-06-07 06:34:43,,1,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xblock-skill-tagging,,,,True,2026-06-08,True,True,False,False,133,0,[],0,,0,0,,,34,"[""click==8.3.1"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""django-waffle==5.0.0"", ""django==5.2.12"", ""edx-django-utils==8.0.1"", ""pymongo==4.16.0"", ""asgiref==3.11.1"", ""appdirs==1.4.4"", ""psutil==7.2.2"", ""urllib3==2.6.3"", ""django-model-utils==5.0.0"", ""edx-opaque-keys[django]==3.1.0"", ""pycparser==3.0"", ""fs==2.4.16"", ""pynacl==1.6.2"", ""python-dateutil==2.9.0.post0"", ""openedx-filters==2.1.0"", ""stevedore==5.7.0"", ""openedx-events==10.5.0"", ""django-crum==0.7.9"", ""s3transfer==0.16.0"", ""botocore==1.42.63"", ""lazy==1.6"", ""sqlparse==0.5.5"", ""openedx-django-pyfs==3.8.0"", ""dnspython==2.8.0"", ""six==1.17.0"", ""fs-s3fs==1.1.1"", ""edx-ccx-keys==2.0.2"", ""jmespath==1.1.0"", ""attrs==25.4.0"", ""fastavro==1.12.1"", ""boto3==1.42.63""]",133,"[""roman-numerals==4.1.0"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""requests-toolbelt==1.0.0"", ""django-waffle==5.0.0"", ""binaryornot==0.5.0"", ""tomlkit==0.14.0"", ""pytest-cov==7.0.0"", ""edx-django-utils==8.0.1"", ""cryptography==46.0.5"", ""keyring==25.7.0"", ""asgiref==3.11.1"", ""python-slugify==8.0.4"", ""pytz==2026.1.post1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""babel==2.18.0"", ""urllib3==2.6.3"", ""isort==8.0.1"", ""pluggy==1.6.0"", ""more-itertools==10.8.0"", ""readme-renderer==44.0"", ""setuptools==82.0.0"", ""pypng==0.20220715.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pyyaml==6.0.3"", ""filelock==3.25.0"", ""pylint==4.0.5"", ""diff-cover==10.2.0"", ""idna==3.11"", ""mock==5.2.0"", ""xblock==5.3.0"", ""path==16.16.0"", ""tox==3.28.0"", ""pylint-celery==0.3"", ""webob==1.8.9"", ""openedx-django-pyfs==3.8.0"", ""djangorestframework==3.16.1"", ""pylint-django==2.7.0"", ""tox-battery==0.6.2"", ""fs-s3fs==1.1.1"", ""edx-ccx-keys==2.0.2"", ""pycodestyle==2.14.0"", ""fastavro==1.12.1"", ""web-fragments==3.1.0"", ""packaging==26.0"", ""pylint-plugin-utils==0.9.0"", ""text-unidecode==1.3"", ""sphinx==9.1.0"", ""astroid==4.0.4"", ""lxml==6.0.2"", ""distlib==0.4.0"", ""django==5.2.12"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""build==1.4.0"", ""appdirs==1.4.4"", ""psutil==7.2.2"", ""twine==6.2.0"", ""lxml-html-clean==0.4.4"", ""pytest-django==4.12.0"", ""pycparser==3.0"", ""fs==2.4.16"", ""python-dateutil==2.9.0.post0"", ""xblock-sdk==0.13.0"", ""openedx-filters==2.1.0"", ""platformdirs==4.9.4"", ""doc8==2.0.0"", ""jaraco-classes==3.4.0"", ""openedx-events==10.5.0"", ""s3transfer==0.16.0"", ""virtualenv==21.1.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""botocore==1.42.63"", ""alabaster==1.0.0"", ""dnspython==2.8.0"", ""jaraco-functools==4.4.0"", ""six==1.17.0"", ""iniconfig==2.3.0"", ""attrs==25.4.0"", ""charset-normalizer==3.4.5"", ""imagesize==2.0.0"", ""boto3==1.42.63"", ""jeepney==0.9.0"", ""chardet==7.0.1"", ""restructuredtext-lint==2.0.2"", ""rich==14.3.3"", ""secretstorage==3.5.0"", ""id==1.6.1"", ""click-log==0.4.0"", ""edx-opaque-keys[django]==3.1.0"", ""pytest==9.0.2"", ""mako==1.3.10"", ""sphinxcontrib-qthelp==2.0.0"", ""snowballstemmer==3.0.1"", ""dill==0.4.1"", ""arrow==1.4.0"", ""lazy==1.6"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""pygments==2.19.2"", ""click==8.3.1"", ""pip-tools==7.5.3"", ""jaraco-context==6.1.1"", ""simplejson==3.20.2"", ""tzdata==2025.3"", ""code-annotations==2.3.2"", ""certifi==2026.2.25"", ""edx-lint==5.6.0"", ""edx-i18n-tools==1.9.0"", ""pymongo==4.16.0"", ""polib==1.2.0"", ""rfc3986==2.0.0"", ""lxml[html-clean]==6.0.2"", ""cookiecutter==2.7.1"", ""django-model-utils==5.0.0"", ""pynacl==1.6.2"", ""coverage[toml]==7.13.4"", ""mccabe==0.7.0"", ""py==1.11.0"", ""wheel==0.46.3"", ""pip==26.0.1"", ""requests==2.32.5"", ""stevedore==5.7.0"", ""markdown-it-py==4.0.0"", ""django-crum==0.7.9"", ""sqlparse==0.5.5"", ""docutils==0.21.2"", ""pydocstyle==6.3.0"", ""nh3==0.3.3"", ""jmespath==1.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""mdurl==0.1.2"", ""python-discovery==1.1.1""]",10,"[""xblock-sdk"", ""pytest-django"", ""django-waffle"", ""pylint-django"", ""edx-django-utils"", ""code-annotations"", ""djangorestframework"", ""xblock"", ""edx-i18n-tools"", ""web-fragments""]",12,"[""xblock-sdk"", ""pytest-django"", ""django-model-utils"", ""django-waffle"", ""pylint-django"", ""django-crum"", ""edx-django-utils"", ""code-annotations"", ""djangorestframework"", ""xblock"", ""edx-i18n-tools"", ""web-fragments""]",7,"[""xblock-sdk"", ""django-waffle"", ""edx-django-utils"", ""code-annotations"", ""xblock"", ""edx-i18n-tools"", ""web-fragments""]",True,,True,True,True,True,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,21,"{""total_duration"": ""6169 minutes 18 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2022-12-09 18:15:47,main,,214,16,True,False,False,False,False,False,False,2026-06-05 01:53:20,GNU AGPLv3,6,True,4841,0,3009,4882,4660,33180,0,True,True,False,False,True,False,False,,openedx,0,"['http://edx.devstack.discovery: HTTPConnectionPool(host=\'edx.devstack.discovery\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'edx.devstack.discovery\', port=80): Failed to resolve \'edx.devstack.discovery\' ([Errno -2] Name or service not known)""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/xblock-skill-tagging: 404', 'https://xblock-skill-tagging.readthedocs.io/en/latest/: 404', 'https://github.com/openedx/xblock-skill-tagging/blob/main/LICENSE.txt: 504']",True,"['https://user-images.githubusercontent.com/10894099/210078679-3cbac3d1-55a7-4fba-b841-7fb4468f32c5.png', 'https://user-images.githubusercontent.com/10894099/212285572-efa5cfd5-e9c5-411d-8d15-541c43445ec0.png', 'https://github.com/openedx/taxonomy-connector/blob/master/docs/decisions/0001-xblock-skill-tagging-design.rst', 'https://github.com/openedx/edx-platform', 'https://github.com/openedx/taxonomy-connector', 'https://github.com/openedx/course-discovery', 'https://github.com/openedx/xblock-skill-tagging/blob/main/skill_tagging/handlers.py', 'https://github.com/openedx/event-bus-kafka', 'https://github.com/openedx/event-bus-redis', 'https://openedx.atlassian.net/wiki/spaces/AC/pages/3508699151/How+to+start+using+the+Event+Bus', 'https://discuss.openedx.org', 'https://github.com/openedx/xblock-skill-tagging/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/skill_tagging.svg', 'https://pypi.python.org/pypi/skill_tagging/', 'https://github.com/openedx/xblock-skill-tagging/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/xblock-skill-tagging/actions', 'https://codecov.io/github/openedx/xblock-skill-tagging/coverage.svg?branch=main', 'https://codecov.io/github/openedx/xblock-skill-tagging?branch=main', 'https://readthedocs.org/projects/xblock-skill-tagging/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/skill_tagging.svg', 'https://img.shields.io/github/license/openedx/xblock-skill-tagging.svg', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,skill_tagging,"['3', '3.12']",https://github.com/openedx/xblock-skill-tagging,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-rbac,,,,True,2026-06-08,True,True,False,False,107,0,[],0,,0,0,,,30,"[""asgiref==3.11.1"", ""click==8.3.1"", ""drf-jwt==1.19.2"", ""dnspython==2.8.0"", ""sqlparse==0.5.5"", ""djangorestframework==3.16.1"", ""edx-drf-extensions==10.6.0"", ""pycparser==3.0"", ""requests==2.32.5"", ""pymongo==4.16.0"", ""edx-opaque-keys==3.1.0"", ""pyjwt[crypto]==2.11.0"", ""pynacl==1.6.2"", ""stevedore==5.7.0"", ""charset-normalizer==3.4.5"", ""django==5.2.12"", ""six==1.17.0"", ""edx-django-utils==8.0.1"", ""django-model-utils==5.0.0"", ""django-crum==0.7.9"", ""certifi==2026.2.25"", ""psutil==7.2.2"", ""urllib3==2.6.3"", ""idna==3.11"", ""django-waffle==5.0.0"", ""cryptography==46.0.5"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""setuptools==82.0.0"", ""semantic-version==2.10.0""]",107,"[""asgiref==3.11.1"", ""pyproject-hooks==1.2.0"", ""build==1.4.0"", ""cachetools==7.0.3"", ""platformdirs==4.9.4"", ""snowballstemmer==3.0.1"", ""sqlparse==0.5.5"", ""pluggy==1.6.0"", ""edx-drf-extensions==10.6.0"", ""pytest==9.0.2"", ""pytest-cov==7.0.0"", ""diff-cover==4.0.0"", ""django==5.2.12"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""docutils==0.21.2"", ""isort==8.0.1"", ""django-crum==0.7.9"", ""certifi==2026.2.25"", ""accessible-pygments==0.0.5"", ""idna==3.11"", ""django-waffle==5.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""click-log==0.4.0"", ""imagesize==2.0.0"", ""wheel==0.46.3"", ""futures==3.1.1"", ""tox==4.49.0"", ""ddt==1.7.2"", ""polib==1.2.0"", ""djangorestframework==3.16.1"", ""jinja2==3.1.6"", ""pylint-plugin-utils==0.9.0"", ""path==16.16.0"", ""pymongo==4.16.0"", ""beautifulsoup4==4.14.3"", ""coverage[toml]==7.13.4"", ""stevedore==5.7.0"", ""restructuredtext-lint==2.0.2"", ""pip-tools==7.5.3"", ""mccabe==0.7.0"", ""sphinx-book-theme==1.1.4"", ""packaging==26.0"", ""psutil==7.2.2"", ""pylint==4.0.5"", ""tomli-w==1.2.0"", ""inflect==7.5.0"", ""doc8==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""lxml-html-clean==0.4.4"", ""pycodestyle==2.14.0"", ""roman-numerals==4.1.0"", ""click==8.3.1"", ""dnspython==2.8.0"", ""iniconfig==2.3.0"", ""sphinx==9.1.0"", ""dill==0.4.1"", ""lxml[html-clean]==6.0.2"", ""pycparser==3.0"", ""astroid==4.0.4"", ""colorama==0.4.6"", ""edx-opaque-keys==3.1.0"", ""pygments==2.19.2"", ""pyjwt[crypto]==2.11.0"", ""pynacl==1.6.2"", ""jinja2-pluralize==0.3.0"", ""virtualenv==21.1.0"", ""charset-normalizer==3.4.5"", ""distlib==0.4.0"", ""code-annotations==2.3.2"", ""pydata-sphinx-theme==0.15.4"", ""edx-django-utils==8.0.1"", ""typeguard==4.5.1"", ""django-model-utils==5.0.0"", ""markupsafe==3.0.3"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""sphinxcontrib-applehelp==2.0.0"", ""edx-django-release-util==1.5.0"", ""pyproject-api==1.10.0"", ""semantic-version==2.10.0"", ""soupsieve==2.8.3"", ""readme-renderer==44.0"", ""pylint-django==2.7.0"", ""edx-i18n-tools==1.9.0"", ""drf-jwt==1.19.2"", ""filelock==3.25.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tomlkit==0.14.0"", ""requests==2.32.5"", ""python-discovery==1.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""text-unidecode==1.3"", ""edx-lint==5.6.0"", ""pip==26.0.1"", ""urllib3==2.6.3"", ""cryptography==46.0.5"", ""python-slugify==8.0.4"", ""babel==2.18.0"", ""more-itertools==10.8.0"", ""setuptools==82.0.0"", ""pydocstyle==6.3.0"", ""nh3==0.3.3"", ""pylint-celery==0.3"", ""pytest-django==4.12.0"", ""alabaster==1.0.0"", ""sphinxcontrib-devhelp==2.0.0""]",10,"[""code-annotations"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""edx-django-release-util"", ""pylint-django"", ""edx-django-utils"", ""edx-opaque-keys"", ""djangorestframework"", ""pytest-django"", ""django-waffle""]",13,"[""code-annotations"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""edx-django-release-util"", ""django-crum"", ""drf-jwt"", ""pylint-django"", ""django-model-utils"", ""edx-django-utils"", ""edx-opaque-keys"", ""djangorestframework"", ""pytest-django"", ""django-waffle""]",7,"[""code-annotations"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""edx-django-release-util"", ""edx-django-utils"", ""edx-opaque-keys"", ""django-waffle""]",True,,False,False,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,112,"{""total_duration"": ""6443 minutes 44 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""2 minutes 45 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 25 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2019-02-28 16:27:01,master,Library to help managing role based access controls for django apps,564,12,True,False,False,False,False,False,False,2026-06-04 02:39:52,GNU AGPLv3,17,True,0,0,662,0,5286,81123,0,True,True,False,False,True,False,False,,openedx,4,"['https://github.com/openedx/edx-rbac/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 404', 'https://github.com/openedx/edx-rbac/blob/master/.github/ISSUE_TEMPLATE.md: 404', 'http://edx-rbac.readthedocs.io/en/latest/: 404']",True,"['https://github.com/openedx/edx-rbac/blob/master/docs/getting_started.rst', 'https://github.com/openedx/edx-rbac/blob/master/docs/how_to_guide.rst', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-rbac.svg', 'https://pypi.python.org/pypi/edx-rbac/', 'https://github.com/openedx/edx-rbac/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-rbac/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-rbac/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-rbac?branch=master', 'https://readthedocs.org/projects/edx-rbac/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-rbac.svg', 'https://img.shields.io/github/license/edx/edx-rbac.svg', 'https://github.com/openedx/edx-rbac/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-rbac,"['3', '3.12']",https://github.com/openedx/edx-rbac,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-android,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,14,"{""total_duration"": ""5 minutes 1 seconds"", ""checks"": [{""name"": ""Runs unit tests"", ""duration"": ""5 minutes 1 seconds""}, {""name"": ""Validate strings.xml"", ""duration"": ""0 minutes 9 seconds""}]}",Other,2023-03-13 09:14:43,main,The mobile app for Android for the Open EdX Platform.,7647,57,True,False,False,False,False,False,False,2026-05-30 15:28:17,Apache License 2.0,6,False,0,0,0,1129,867,17073,0,False,False,False,False,False,False,False,,openedx,0,"['https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403', 'https://app.transifex.com/open-edx/openedx-translations/openedx-app-android/: 404']",False,"['https://github.com/openedx/openedx-app-android.git', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://github.com/openedx/openedx-atlas', 'https://github.com/openedx/openedx-translations', 'https://github.com/openedx/openedx-translations/blob/04ccea36b8e6a9889646dfb5a5acb99686fa9ae0/translations/openedx-app-android/i18n/src/main/res/values-uk/strings.xml', 'https://github.com/openedx/openedx-atlas/issues/20', 'https://github.com/apps/transifex-integration', 'https://github.com/openedx/openedx-app-android/blob/main/LICENSE']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-base-compat,,,,False,2026-06-08,False,False,False,False,11,0,,0,{},0,11,"{""@openedx/frontend-base"": ""^1.0.0-alpha || 0.0.0-dev"", ""@testing-library/jest-dom"": ""^6.9.1"", ""@testing-library/react"": ""^16.3.0"", ""@types/jest"": ""^29.5.14"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""jest"": ""^29"", ""nodemon"": ""^3.1.14"", ""react"": ""^18"", ""react-dom"": ""^18"", ""tsc-alias"": ""^1.8.16""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""0 minutes 59 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 5 seconds""}]}",Other,2026-05-02 22:17:10,main,Compatibility shim that lets legacy frontend-plugin-framework env.config.jsx files run on top of @openedx/frontend-base.,275,2,True,False,False,False,False,False,False,2026-05-20 13:22:04,GNU AGPLv3,0,True,0,0,0,893,157,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/frontend-base', 'https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/mfe_config_api/views.py']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-component-cookie-policy-banner,,,,False,2026-06-08,False,False,False,False,55,0,,0,{},8,47,"{""@babel/cli"": ""7.25.6"", ""@babel/core"": ""7.25.2"", ""@babel/preset-env"": ""7.25.4"", ""@babel/preset-react"": ""7.24.7"", ""@commitlint/cli"": ""13.2.1"", ""@commitlint/config-angular"": ""13.2.0"", ""@commitlint/prompt"": ""13.2.1"", ""@commitlint/prompt-cli"": ""13.2.1"", ""@edx/eslint-config"": ""^4.0.0"", ""@storybook/addon-a11y"": ""7.0.23"", ""@storybook/addon-actions"": ""6.1.16"", ""@storybook/addon-centered"": ""5.3.21"", ""@storybook/addon-console"": ""1.2.3"", ""@storybook/addon-info"": ""5.3.21"", ""@storybook/addon-options"": ""5.3.21"", ""@storybook/addon-storyshots"": ""6.1.16"", ""@storybook/addons"": ""6.1.16"", ""@storybook/react"": ""6.1.16"", ""@storybook/storybook-deployer"": ""2.8.10"", ""@testing-library/react"": ""12.1.5"", ""@testing-library/user-event"": ""^13.5.0"", ""@testing-library/jest-dom"": ""5.16.5"", ""copyfiles"": ""2.4.1"", ""es-check"": ""6.1.1"", ""eslint"": ""^8.18.0"", ""eslint-config-airbnb"": ""19.0.4"", ""eslint-plugin-import"": ""^2.26.0"", ""eslint-plugin-jsx-a11y"": ""^6.5.1"", ""eslint-plugin-react"": ""^7.30.0"", ""eslint-plugin-react-hooks"": ""^4.6.0"", ""husky"": ""7.0.4"", ""jest"": ""29.7.0"", ""jest-environment-jsdom"": ""29.7.0"", ""jest-environment-jsdom-global"": ""4.0.0"", ""node-sass"": ""9.0.0"", ""node-sass-import"": ""2.0.1"", ""react"": ""17.0.2"", ""react-dev-utils"": ""11.0.4"", ""react-dom"": ""17.0.2"", ""sass-loader"": ""16.0.2 "", ""semantic-release"": ""17.4.7"", ""source-map-loader"": ""3.0.0"", ""style-loader"": ""3.3.1"", ""travis-deploy-once"": ""5.0.11"", ""webpack"": ""5.61.0"", ""webpack-build-notifier"": ""2.3.0"", ""webpack-cli"": ""4.9.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@openedx/paragon"": ""^21.13.1"", ""babel-preset-minify"": ""^0.5.0"", ""classnames"": ""^2.3.1"", ""identity-obj-proxy"": ""^3.0.0"", ""prop-types"": ""^15.6.1"", ""type-fest"": ""^2.14.0"", ""universal-cookie"": ""^4.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,True,True,False,False,False,False,False,False,True,True,True,568,"{""total_duration"": ""1 minutes 45 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 38 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2018-04-03 13:28:37,master,The edX cookie policy banner component implemented in React.,28131,18,True,False,False,False,False,False,False,2026-05-20 13:21:13,GNU AGPLv3,2,True,0,0,0,20725,0,0,0,False,False,False,False,False,False,False,@edx/frontend-component-cookie-policy-banner,openedx,0,"['https://www.npmjs.com/package/@edx/frontend-component-cookie-policy-banner: 403', 'https://github.com/openedx/frontend-component-cookie-policy-banner.svg/blob/master/LICENSE: 404', 'https://imgur.com/mZct2v5.png: 429']",False,"['https://badges.greenkeeper.io/edx/frontend-component-cookie-policy-banner.svg', 'https://greenkeeper.io/', 'https://img.shields.io/npm/v/@edx/frontend-component-cookie-policy-banner.svg', 'https://img.shields.io/npm/dt/@edx/frontend-component-cookie-policy-banner.svg', 'https://img.shields.io/npm/l/@edx/frontend-component-cookie-policy-banner.svg', 'https://github.com/semantic-release/semantic-release', 'https://github.com/openedx/frontend-component-cookie-policy-banner', 'https://github.com/storybooks/storybook', 'https://open.edx.org/code-of-conduct/']",True,True,False,False,,,True,2021-12-07,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-bulk-grades,,,,True,2026-06-08,False,False,False,False,132,0,[],0,,0,0,,,43,"[""urllib3==2.6.3"", ""cffi==2.0.0"", ""pynacl==1.6.2"", ""pymongo==4.16.0"", ""psutil==7.2.2"", ""idna==3.11"", ""stevedore==5.7.0"", ""billiard==4.2.4"", ""edx-django-utils==8.0.1"", ""djangorestframework==3.16.1"", ""prompt-toolkit==3.0.52"", ""edx-opaque-keys==3.1.0"", ""amqp==5.3.1"", ""click==8.3.1"", ""super-csv==4.1.0"", ""simplejson==3.20.2"", ""requests==2.32.5"", ""django-model-utils==5.0.0"", ""python-dateutil==2.9.0.post0"", ""tzdata==2025.3"", ""typing-extensions==4.15.0"", ""django-waffle==5.0.0"", ""kombu==5.6.2"", ""jsonfield==3.2.0"", ""django==5.2.12"", ""django-crum==0.7.9"", ""dnspython==2.8.0"", ""slumber==0.7.1"", ""vine==5.1.0"", ""click-repl==0.3.0"", ""celery==5.6.2"", ""click-didyoumean==0.3.1"", ""packaging==26.0"", ""click-plugins==1.1.1.2"", ""certifi==2026.2.25"", ""asgiref==3.11.1"", ""six==1.17.0"", ""sqlparse==0.5.5"", ""edx-celeryutils==1.4.0"", ""pycparser==3.0"", ""charset-normalizer==3.4.5"", ""wcwidth==0.6.0"", ""tzlocal==5.3.1""]",132,"[""tomli-w==1.2.0"", ""pyproject-api==1.10.0"", ""djangorestframework==3.16.1"", ""markupsafe==3.0.3"", ""prompt-toolkit==3.0.52"", ""ddt==1.7.2"", ""pydata-sphinx-theme==0.16.1"", ""lxml[html-clean]==6.0.2"", ""pytest==9.0.2"", ""sphinxcontrib-applehelp==2.0.0"", ""tox==4.49.1"", ""astroid==4.0.4"", ""tzdata==2025.3"", ""sphinxcontrib-qthelp==2.0.0"", ""wheel==0.46.3"", ""pip-tools==7.5.3"", ""click-plugins==1.1.1.2"", ""pip==26.0.1"", ""charset-normalizer==3.4.5"", ""click-log==0.4.0"", ""snowballstemmer==3.0.1"", ""pyproject-hooks==1.2.0"", ""restructuredtext-lint==2.0.2"", ""sphinxcontrib-devhelp==2.0.0"", ""babel==2.18.0"", ""cffi==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""cryptography==46.0.5"", ""pyyaml==6.0.3"", ""psutil==7.2.2"", ""secretstorage==3.5.0"", ""pydocstyle==6.3.0"", ""pluggy==1.6.0"", ""mdurl==0.1.2"", ""python-slugify==8.0.4"", ""path==16.16.0"", ""dill==0.4.1"", ""diff-cover==10.2.0"", ""build==1.4.0"", ""edx-lint==5.6.0"", ""mock==5.2.0"", ""jaraco-context==6.1.1"", ""super-csv==4.1.0"", ""colorama==0.4.6"", ""python-dateutil==2.9.0.post0"", ""jaraco-classes==3.4.0"", ""typing-extensions==4.15.0"", ""vine==5.1.0"", ""chardet==7.0.1"", ""jsonfield==3.2.0"", ""pytest-django==4.12.0"", ""click-repl==0.3.0"", ""celery==5.6.2"", ""keyring==25.7.0"", ""certifi==2026.2.25"", ""jinja2==3.1.6"", ""roman-numerals==4.1.0"", ""sphinx==9.1.0"", ""cachetools==7.0.5"", ""mccabe==0.7.0"", ""jaraco-functools==4.4.0"", ""markdown-it-py==4.0.0"", ""pymongo==4.16.0"", ""accessible-pygments==0.0.5"", ""beautifulsoup4==4.14.3"", ""platformdirs==4.9.4"", ""requests-toolbelt==1.0.0"", ""readme-renderer==44.0"", ""idna==3.11"", ""billiard==4.2.4"", ""edx-i18n-tools==2.0.0"", ""imagesize==2.0.0"", ""doc8==2.0.0"", ""id==1.6.1"", ""setuptools==82.0.1"", ""twine==6.2.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""coverage[toml]==7.13.4"", ""edx-opaque-keys==3.1.0"", ""click==8.3.1"", ""simplejson==3.20.2"", ""pycodestyle==2.14.0"", ""django-waffle==5.0.0"", ""django==5.2.12"", ""django-crum==0.7.9"", ""soupsieve==2.8.3"", ""packaging==26.0"", ""click-didyoumean==0.3.1"", ""pygments==2.19.2"", ""coverage==7.13.4"", ""polib==1.2.0"", ""sqlparse==0.5.5"", ""pycparser==3.0"", ""nh3==0.3.3"", ""isort==8.0.1"", ""docutils==0.21.2"", ""urllib3==2.6.3"", ""rich==14.3.3"", ""pynacl==1.6.2"", ""python-discovery==1.1.3"", ""rfc3986==2.0.0"", ""pylint-celery==0.3"", ""distlib==0.4.0"", ""stevedore==5.7.0"", ""sphinx-book-theme==1.2.0"", ""edx-django-utils==8.0.1"", ""alabaster==1.0.0"", ""virtualenv==21.2.0"", ""pylint-django==2.7.0"", ""filelock==3.25.1"", ""pytest-cov==7.0.0"", ""text-unidecode==1.3"", ""amqp==5.3.1"", ""iniconfig==2.3.0"", ""pylint==4.0.5"", ""requests==2.32.5"", ""django-model-utils==5.0.0"", ""kombu==5.6.2"", ""slumber==0.7.1"", ""code-annotations==2.3.2"", ""tomlkit==0.14.0"", ""dnspython==2.8.0"", ""jeepney==0.9.0"", ""more-itertools==10.8.0"", ""lxml-html-clean==0.4.4"", ""six==1.17.0"", ""asgiref==3.11.1"", ""sphinxcontrib-jsmath==1.0.1"", ""edx-celeryutils==1.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""wcwidth==0.6.0"", ""tzlocal==5.3.1""]",10,"[""code-annotations"", ""edx-django-utils"", ""edx-celeryutils"", ""pytest-django"", ""djangorestframework"", ""edx-i18n-tools"", ""super-csv"", ""edx-opaque-keys"", ""pylint-django"", ""django-waffle""]",13,"[""code-annotations"", ""django-model-utils"", ""edx-django-utils"", ""edx-celeryutils"", ""pytest-django"", ""jsonfield"", ""djangorestframework"", ""edx-i18n-tools"", ""super-csv"", ""edx-opaque-keys"", ""pylint-django"", ""django-crum"", ""django-waffle""]",7,"[""code-annotations"", ""edx-django-utils"", ""edx-celeryutils"", ""edx-i18n-tools"", ""super-csv"", ""edx-opaque-keys"", ""django-waffle""]",True,,True,False,True,True,False,True,True,True,True,False,True,False,True,True,True,True,True,True,True,True,True,10,"{""total_duration"": ""0 minutes 45 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52-celery55)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42-celery55)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}]}",Other,2019-05-28 13:29:49,master,,410,11,True,False,False,False,False,False,False,2026-05-30 15:07:20,GNU AGPLv3,5,True,0,0,662,0,5356,110667,0,True,True,False,False,True,False,False,,openedx,2,"['https://github.com/openedx/devstack: 504', 'https://travis-ci.com/edx/edx-bulk-grades: 415', 'http://edx-bulk-grades.readthedocs.io/en/latest/: 404']",True,"['https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-bulk-grades/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-bulk-grades/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-bulk-grades.svg', 'https://pypi.python.org/pypi/edx-bulk-grades/', 'https://travis-ci.com/edx/edx-bulk-grades.svg?branch=master', 'http://codecov.io/github/edx/edx-bulk-grades/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-bulk-grades?branch=master', 'https://readthedocs.org/projects/edx-bulk-grades/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-bulk-grades.svg', 'https://img.shields.io/github/license/edx/edx-bulk-grades.svg', 'https://github.com/openedx/edx-bulk-grades/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-bulk-grades,"['3', '3.12']",https://github.com/openedx/edx-bulk-grades,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-enterprise-data,,,,True,2026-06-08,True,True,False,False,154,0,[],0,,0,0,,,81,"[""django==4.2.30"", ""python-dateutil==2.9.0.post0"", ""docutils==0.19"", ""filelock==3.29.0"", ""jmespath==1.1.0"", ""edx-rest-api-client==7.0.0"", ""bcrypt==5.0.0"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""packaging==26.2"", ""faker==40.15.0"", ""vine==5.1.0"", ""pyjwt[crypto]==2.12.1"", ""asn1crypto==1.5.1"", ""requests==2.33.1"", ""pycparser==3.0"", ""snowflake-connector-python==4.4.0"", ""idna==3.14"", ""pyopenssl==26.2.0"", ""wcwidth==0.7.0"", ""pyasn1==0.6.3"", ""edx-opaque-keys==4.0.0"", ""djangorestframework-csv==3.0.2"", ""django-crum==0.7.9"", ""pytz==2026.2"", ""djangorestframework==3.17.1"", ""certifi==2026.4.22"", ""pynacl==1.6.2"", ""amqp==5.3.1"", ""cryptography==48.0.0"", ""celery==5.3.6"", ""edx-django-utils==8.0.1"", ""botocore==1.43.6"", ""pymongo==4.17.0"", ""edx-rbac==3.0.0"", ""semantic-version==2.10.0"", ""sqlparse==0.5.5"", ""click-repl==0.3.0"", ""boto3==1.43.6"", ""platformdirs==4.9.6"", ""pyminizip==0.2.6"", ""tomlkit==0.15.0"", ""unicodecsv==0.14.1"", ""paramiko==5.0.0"", ""monotonic==1.6"", ""click-didyoumean==0.3.1"", ""factory-boy==3.3.3"", ""awscli==1.45.6"", ""typing-extensions==4.15.0"", ""billiard==4.2.4"", ""django-fernet-fields-v2==0.9"", ""kombu==5.6.2"", ""edx-drf-extensions==10.6.0"", ""s3transfer==0.17.0"", ""drf-jwt==1.19.2"", ""pillow==12.2.0"", ""charset-normalizer==3.4.7"", ""click==8.3.3"", ""pyyaml==6.0.3"", ""vertica-python==1.4.0"", ""colorama==0.4.6"", ""pgpy==0.6.0"", ""sortedcontainers==2.4.0"", ""click-plugins==1.1.1.2"", ""prompt-toolkit==3.0.52"", ""six==1.17.0"", ""tzdata==2026.2"", ""invoke==3.0.3"", ""django-model-utils==5.0.0"", ""pygments==2.20.0"", ""interchange==2021.0.4"", ""django-waffle==5.0.0"", ""pansi==2024.11.0"", ""asgiref==3.11.1"", ""django-filter==25.1"", ""rules==3.5"", ""rsa==4.7.2"", ""dnspython==2.8.0"", ""mysql-connector-python==9.5.0"", ""cffi==2.0.0"", ""urllib3==2.7.0""]",154,"[""pyjwt==2.12.1"", ""python-dateutil==2.9.0.post0"", ""django==4.2.30"", ""markupsafe==3.0.3"", ""pycodestyle==2.14.0"", ""wheel==0.47.0"", ""docutils==0.19"", ""filelock==3.29.0"", ""readme-renderer==43.0"", ""chardet==7.4.3"", ""jmespath==1.1.0"", ""jinja2==3.1.6"", ""secretstorage==3.5.0"", ""edx-rest-api-client==7.0.0"", ""bcrypt==5.0.0"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""python-discovery==1.3.0"", ""pip-tools==7.5.3"", ""packaging==26.2"", ""flaky==3.8.1"", ""pip==26.1.1"", ""ddt==1.1.2"", ""click-log==0.4.0"", ""faker==40.15.0"", ""nh3==0.3.5"", ""text-unidecode==1.3"", ""vine==5.1.0"", ""pyjwt[crypto]==2.12.1"", ""setuptools==82.0.1"", ""jaraco-context==6.1.2"", ""asn1crypto==1.5.1"", ""requests==2.33.1"", ""pycparser==3.0"", ""mock==2.0.0"", ""snowflake-connector-python==4.4.0"", ""coverage==7.14.0"", ""idna==3.14"", ""more-itertools==11.0.2"", ""build==1.5.0"", ""mock==5.2.0"", ""lxml[html-clean]==6.1.0"", ""pyproject-api==1.10.0"", ""pyopenssl==26.2.0"", ""wcwidth==0.7.0"", ""pylint-celery==0.3"", ""keyring==25.7.0"", ""pyasn1==0.6.3"", ""edx-opaque-keys==4.0.0"", ""snowballstemmer==3.0.1"", ""djangorestframework-csv==3.0.2"", ""path==16.16.0"", ""django-crum==0.7.9"", ""pytz==2026.2"", ""coverage[toml]==7.14.0"", ""pytest==8.0.2"", ""id==1.6.1"", ""djangorestframework==3.17.1"", ""distlib==0.4.0"", ""certifi==2026.4.22"", ""mccabe==0.7.0"", ""pynacl==1.6.2"", ""amqp==5.3.1"", ""cryptography==48.0.0"", ""pluggy==1.6.0"", ""celery==5.3.6"", ""edx-django-utils==8.0.1"", ""botocore==1.43.6"", ""pymongo==4.17.0"", ""edx-rbac==3.0.0"", ""markdown-it-py==4.2.0"", ""rfc3986==2.0.0"", ""pylint==4.0.5"", ""semantic-version==2.10.0"", ""sqlparse==0.5.5"", ""cachetools==7.1.1"", ""click-repl==0.3.0"", ""boto3==1.43.6"", ""platformdirs==4.9.6"", ""pyminizip==0.2.6"", ""tomlkit==0.15.0"", ""unicodecsv==0.14.1"", ""pydocstyle==6.3.0"", ""testfixtures==11.0.0"", ""paramiko==5.0.0"", ""iniconfig==2.3.0"", ""monotonic==1.6"", ""click-didyoumean==0.3.1"", ""factory-boy==3.3.3"", ""freezegun==1.5.5"", ""lxml-html-clean==0.4.4"", ""awscli==1.45.6"", ""typing-extensions==4.15.0"", ""responses==0.26.0"", ""astroid==4.0.4"", ""edx-lint==6.1.0"", ""billiard==4.2.4"", ""django-fernet-fields-v2==0.9"", ""tox==4.53.1"", ""twine==6.2.0"", ""mdurl==0.1.2"", ""kombu==5.6.2"", ""s3transfer==0.17.0"", ""edx-drf-extensions==10.6.0"", ""pytest-cov==7.1.0"", ""drf-jwt==1.19.2"", ""pillow==12.2.0"", ""tomli-w==1.2.0"", ""charset-normalizer==3.4.7"", ""click==8.3.3"", ""pyyaml==6.0.3"", ""vertica-python==1.4.0"", ""pylint-django==2.7.0"", ""pytest==9.0.3"", ""jaraco-functools==4.4.0"", ""colorama==0.4.6"", ""pytest-django==4.12.0"", ""pyproject-hooks==1.2.0"", ""jeepney==0.9.0"", ""pgpy==0.6.0"", ""sortedcontainers==2.4.0"", ""polib==1.2.0"", ""edx-i18n-tools==2.0.0"", ""click-plugins==1.1.1.2"", ""jaraco-classes==3.4.0"", ""pylint-plugin-utils==0.9.0"", ""prompt-toolkit==3.0.52"", ""isort==8.0.1"", ""six==1.17.0"", ""tzdata==2026.2"", ""invoke==3.0.3"", ""django-model-utils==5.0.0"", ""rich==15.0.0"", ""pygments==2.20.0"", ""interchange==2021.0.4"", ""code-annotations==3.0.0"", ""django-waffle==5.0.0"", ""pansi==2024.11.0"", ""requests-toolbelt==1.0.0"", ""ddt==1.7.2"", ""asgiref==3.11.1"", ""django-filter==25.1"", ""rules==3.5"", ""pytest-cov==4.1.0"", ""rsa==4.7.2"", ""dnspython==2.8.0"", ""pbr==7.0.3"", ""virtualenv==21.3.1"", ""dill==0.4.1"", ""mysql-connector-python==9.5.0"", ""cffi==2.0.0"", ""python-slugify==8.0.4"", ""urllib3==2.7.0"", ""diff-cover==10.2.0""]",13,"[""edx-i18n-tools"", ""djangorestframework"", ""edx-rbac"", ""django-waffle"", ""pytest-django"", ""edx-rest-api-client"", ""code-annotations"", ""pylint-django"", ""django-filter"", ""factory-boy"", ""edx-drf-extensions"", ""edx-django-utils"", ""edx-opaque-keys""]",18,"[""edx-i18n-tools"", ""djangorestframework"", ""edx-rbac"", ""drf-jwt"", ""django-crum"", ""django-waffle"", ""pytest-django"", ""edx-rest-api-client"", ""code-annotations"", ""djangorestframework-csv"", ""pylint-django"", ""rules"", ""django-filter"", ""django-model-utils"", ""factory-boy"", ""edx-drf-extensions"", ""edx-django-utils"", ""edx-opaque-keys""]",9,"[""edx-i18n-tools"", ""edx-rbac"", ""django-waffle"", ""edx-rest-api-client"", ""code-annotations"", ""django-filter"", ""edx-drf-extensions"", ""edx-django-utils"", ""edx-opaque-keys""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,47,"{""total_duration"": ""6424 minutes 42 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, data-django42)"", ""duration"": ""1 minutes 56 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, reporting-django42)"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 20 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2017-10-04 19:19:49,master,The edX Enterprise Data repo is the home to tools and products related to providing access to Enterprise related data.,1564,21,True,False,False,False,False,False,False,2026-06-08 03:12:50,GNU AGPLv3,9,True,0,0,0,0,3657,778304,974,False,False,False,False,True,False,False,,openedx,4,[],False,"['https://github.com/openedx/edx-analytics-data-api/', 'https://github.com/openedx/edx-drf-extensions/blob/4569b9bf7e54a917d4acdd545b10c058c960dd1a/edx_rest_framework_extensions/auth/jwt/authentication.py', 'https://github.com/openedx/devstack', 'https://github.com/openedx/frontend-app-admin-portal/']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-enterprise-data,"['3', '3.12']",https://github.com/openedx/edx-enterprise-data,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-firebase-analytics-android,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2024-10-11 09:09:27,main,,118,2,True,False,False,False,False,False,False,2026-05-30 15:28:46,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://jitpack.io'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/codejail,,,,True,2026-06-08,True,True,False,False,34,0,[],0,,0,0,,,16,"[""pluggy==1.6.0"", ""pygments==2.20.0"", ""iniconfig==2.3.0"", ""astroid==4.0.4"", ""pylint==4.0.5"", ""sqlparse==0.5.5"", ""mccabe==0.7.0"", ""isort==8.0.1"", ""packaging==26.2"", ""pytest==9.0.3"", ""tomlkit==0.15.0"", ""django==5.2.14"", ""platformdirs==4.10.0"", ""pycodestyle==2.14.0"", ""asgiref==3.11.1"", ""dill==0.4.1""]",34,"[""numpy==2.4.6"", ""sqlparse==0.5.5"", ""astroid==4.0.4"", ""pylint==4.0.5"", ""mccabe==0.7.0"", ""pytest==9.0.3"", ""python-discovery==1.4.0"", ""virtualenv==21.4.2"", ""filelock==3.29.0"", ""build==1.5.0"", ""colorama==0.4.6"", ""click==8.4.1"", ""cachetools==7.1.4"", ""isort==8.0.1"", ""django==5.2.14"", ""dill==0.4.1"", ""pyproject-api==1.10.1"", ""six==1.17.0"", ""pyproject-hooks==1.2.0"", ""tomlkit==0.15.0"", ""pip-tools==7.5.3"", ""platformdirs==4.10.0"", ""setuptools==82.0.1"", ""tomli-w==1.2.0"", ""pygments==2.20.0"", ""iniconfig==2.3.0"", ""packaging==26.2"", ""distlib==0.4.0"", ""asgiref==3.11.1"", ""pip==26.1.2"", ""wheel==0.47.0"", ""tox==4.55.0"", ""pycodestyle==2.14.0"", ""pluggy==1.6.0""]",0,[],0,[],0,[],False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,13,"{""total_duration"": ""9086 minutes 4 seconds"", ""checks"": [{""name"": ""tests (3.12, 22.04, django42)"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""tests (3.12, 22.04, django52)"", ""duration"": ""1 minutes 50 seconds""}, {""name"": ""tests (3.12, 24.04, django52)"", ""duration"": ""1 minutes 50 seconds""}, {""name"": ""tests (3.12, 24.04, django42)"", ""duration"": ""1 minutes 50 seconds""}, {""name"": ""tests (quality, 24.04, 3.12)"", ""duration"": ""1 minutes 39 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2013-04-26 20:48:06,master,Secure code execution,443,82,True,False,False,False,False,False,False,2026-06-08 00:22:34,Apache License 2.0,2,True,0,3814,0,0,2084,77642,0,False,True,False,False,True,False,False,,openedx,2,[],False,[],True,True,False,False,,,False,,,,False,True,False,True,,False,edx-codejail,"['3', '3.12']",https://github.com/openedx/codejail,True,True,True,False,False,False,False,False,False,[],[],"['sudo', 'curl', 'python${python_version}-dev', 'python${python_version}', 'python${python_version}-venv', 'vim', 'git', 'software-properties-common', 'make', 'build-essential', 'python3-distutils']",[] +openedx/xblocks-extra,,,,True,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,True,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""78 minutes 59 seconds"", ""checks"": [{""name"": ""copilot-pull-request-reviewer"", ""duration"": ""3 minutes 24 seconds""}, {""name"": ""release"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""run_ci / Test (Python 3.12, Django 4.2)"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""Test (Python 3.12, Django 5.2)"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""Test (Python 3.12, Django 4.2)"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""run_ci / Test (Python 3.12, Django 5.2)"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""publish_to_pypi"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""Lint"", ""duration"": ""0 minutes 9 seconds""}, {""name"": ""run_ci / Lint"", ""duration"": ""0 minutes 8 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2025-04-17 17:54:17,main,,951,4,True,False,False,False,False,False,False,2026-06-08 00:44:28,GNU AGPLv3,6,True,9625,0,25498,26607,2183,195145,0,False,False,False,False,True,False,False,,openedx,0,[],False,"['https://github.com/openedx-unsupported/AudioXBlock', 'https://github.com/openedx/FeedbackXBlock', 'https://github.com/openedx/xblock-free-text-response', 'https://github.com/openedx-unsupported/xblock-image-modal', 'https://github.com/openedx-unsupported/xblock-qualtrics-survey', 'https://github.com/openedx/xblock-sql-grader', 'https://github.com/openedx-unsupported/xblock-submit-and-compare', 'https://github.com/openedx/xblocks-extra.git', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://github.com/openedx/openedx-translations', 'https://openedx.org/contributor-guidelines']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/wg-frontend,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""90718 minutes 11 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}]}",Other,2021-07-23 18:16:35,main,Open edX Frontend Working Group,18,2,True,False,False,False,False,False,False,2025-10-30 15:16:42,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://openedx.atlassian.net/wiki/spaces/FEDX/pages/3090056949/Frontend+Working+Group', 'https://github.com/orgs/openedx/projects/29']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xblock-drag-and-drop-v2,,,,True,2026-06-08,True,True,False,False,91,0,[],0,,0,0,,,29,"[""lxml==6.1.1"", ""fs-s3fs==1.1.1"", ""jmespath==1.1.0"", ""sqlparse==0.5.5"", ""asgiref==3.11.1"", ""mako==1.3.12"", ""pyyaml==6.0.3"", ""webob==1.8.9"", ""markupsafe==3.0.3"", ""lazy==1.6"", ""appdirs==1.4.4"", ""bleach[css]==6.3.0"", ""pytz==2026.2"", ""urllib3==2.7.0"", ""s3transfer==0.18.0"", ""tinycss2==1.4.0"", ""boto3==1.43.18"", ""botocore==1.43.18"", ""django-statici18n==2.7.1"", ""xblock[django]==6.1.0"", ""django==5.2.14"", ""django-appconf==1.2.0"", ""simplejson==4.1.1"", ""web-fragments==4.0.0"", ""webencodings==0.5.1"", ""openedx-django-pyfs==4.0.0"", ""six==1.17.0"", ""python-dateutil==2.9.0.post0"", ""fs==2.4.16""]",91,"[""lxml==6.1.1"", ""tox==4.55.0"", ""pyproject-hooks==1.2.0"", ""pycodestyle==2.14.0"", ""pygments==2.20.0"", ""distlib==0.4.0"", ""ddt==1.7.2"", ""pip==26.1.2"", ""certifi==2026.5.20"", ""appdirs==1.4.4"", ""bleach[css]==6.3.0"", ""tzdata==2026.2"", ""idna==3.17"", ""dill==0.4.1"", ""rich==15.0.0"", ""django-statici18n==2.7.1"", ""xblock[django]==6.1.0"", ""tomli-w==1.2.0"", ""text-unidecode==1.3"", ""pytest-cov==7.1.0"", ""simplejson==4.1.1"", ""fs-s3fs==1.1.1"", ""edx-lint==6.1.0"", ""pyproject-api==1.10.1"", ""isort==8.0.1"", ""mdurl==0.1.2"", ""pytest==9.0.3"", ""polib==1.2.0"", ""asgiref==3.11.1"", ""code-annotations==3.0.0"", ""setuptools==82.0.1"", ""tomlkit==0.15.0"", ""binaryornot==0.6.0"", ""python-discovery==1.4.0"", ""stevedore==5.8.0"", ""iniconfig==2.3.0"", ""python-slugify==8.0.4"", ""s3transfer==0.18.0"", ""boto3==1.43.18"", ""botocore==1.43.18"", ""pypng==0.20220715.0"", ""django-appconf==1.2.0"", ""pluggy==1.6.0"", ""pylint-plugin-utils==0.9.0"", ""python-dateutil==2.9.0.post0"", ""fs==2.4.16"", ""jmespath==1.1.0"", ""pytest-django==4.12.0"", ""sqlparse==0.5.5"", ""mako==1.3.12"", ""packaging==26.2"", ""wheel==0.47.0"", ""click==8.4.1"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""charset-normalizer==3.4.7"", ""click-log==0.4.0"", ""colorama==0.4.6"", ""urllib3==2.7.0"", ""pip-tools==7.5.3"", ""virtualenv==21.4.2"", ""build==1.5.0"", ""requests==2.34.2"", ""coverage[toml]==7.14.1"", ""web-fragments==4.0.0"", ""openedx-django-pyfs==4.0.0"", ""six==1.17.0"", ""webencodings==0.5.1"", ""pylint-celery==0.3"", ""mccabe==0.7.0"", ""markdown-it-py==4.2.0"", ""xblock-sdk==0.14.0"", ""pyyaml==6.0.3"", ""webob==1.8.9"", ""platformdirs==4.10.0"", ""cachetools==7.1.4"", ""edx-i18n-tools==2.0.0"", ""mock==5.2.0"", ""lazy==1.6"", ""pytz==2026.2"", ""path==16.16.0"", ""lxml[html-clean]==6.1.1"", ""tinycss2==1.4.0"", ""django==5.2.14"", ""pylint==4.0.5"", ""pylint-django==2.7.0"", ""arrow==1.4.0"", ""astroid==4.0.4"", ""cookiecutter==2.7.1"", ""lxml-html-clean==0.4.5"", ""filelock==3.29.0""]",7,"[""pytest-django"", ""django-appconf"", ""xblock-sdk"", ""edx-i18n-tools"", ""web-fragments"", ""code-annotations"", ""pylint-django""]",8,"[""pytest-django"", ""django-appconf"", ""xblock-sdk"", ""edx-i18n-tools"", ""web-fragments"", ""code-annotations"", ""django-statici18n"", ""pylint-django""]",5,"[""django-appconf"", ""xblock-sdk"", ""edx-i18n-tools"", ""web-fragments"", ""code-annotations""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,29,"{""total_duration"": ""6361 minutes 41 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, translations)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2014-06-30 15:30:30,master,,3548,72,True,False,False,False,False,False,False,2026-06-08 00:45:01,GNU AGPLv3,1,True,30354,0,24507,393085,4385,154530,0,True,False,False,False,True,False,False,,openedx,0,[],False,"['https://docs.openedx.org/en/latest/educators/references/course_development/problem_settings.html', 'https://github.com/open-craft/demo-courses/archive/drag-and-drop-v2.tar.gz', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html', 'https://github.com/openedx/i18n-tools', 'https://github.com/openedx/openedx-translations']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-drag-and-drop-v2,['3.12'],https://github.com/openedx/xblock-drag-and-drop-v2,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/wg-translations,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],,,False,False,False,False,False,False,False,False,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""123 minutes 47 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2023-05-03 15:17:51,main,Repository for Translation Working Group docs and issues.,7,1,True,False,False,False,False,False,False,2025-10-30 15:16:07,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,,,,,,,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-catalog,,,,False,2026-06-08,False,False,False,False,34,0,,0,{},25,9,"{""@edx/browserslist-config"": ""^1.5.0"", ""@edx/stylelint-config-edx"": ""2.3.3"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/lodash.capitalize"": ""^4.2.9"", ""glob"": ""13.0.6""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.7.1"", ""@edx/frontend-component-header"": ""^8.0.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.18.1"", ""@tanstack/react-query"": ""5.96.2"", ""classnames"": ""^2.5.1"", ""core-js"": ""3.49.0"", ""lodash.capitalize"": ""^4.2.1"", ""lodash.debounce"": ""^4.0.8"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""regenerator-runtime"": ""0.14.1"", ""ts-node"": ""^10.9.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""3 minutes 16 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""3 minutes 15 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2025-05-05 20:11:00,master,,34782,14,True,False,False,False,False,False,False,2026-05-20 13:25:36,GNU AGPLv3,5,True,0,0,369,976,1538,0,0,False,False,False,False,False,False,False,@edx/frontend-app-catalog,openedx,0,"['https://github.com/nvm-sh/nvm: 504', 'http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst: 504', 'https://github.com/openedx/frontend-plugin-framework: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-catalog: 404']",True,"['https://img.shields.io/github/license/openedx/frontend-app-catalog.svg', 'https://github.com/openedx/frontend-app-catalog/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://codecov.io/github/openedx/frontend-app-catalog/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-catalog?branch=master', 'https://docs.openedx.org/en/latest/community/release_notes/ulmo/ulmo_catalog.html', 'https://github.com/openedx/frontend-app-catalog.git', 'https://github.com/openedx/edx-search/releases/tag/v4.4.0', 'https://github.com/openedx/openedx-platform/pull/37948', 'https://github.com/openedx/openedx-platform/pull/37949', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://github.com/openedx/frontend-app-catalog/issues', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2025-12-19,4,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/wg-governance,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""21277 minutes 9 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 16 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2021-02-19 13:34:48,main,,17,2,True,False,False,False,False,False,False,2026-04-10 19:00:06,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/community-wg/projects', 'https://discuss.openedx.org/c/community/13', 'https://discuss.openedx.org/t/community-wg-vs-core-contributors/9306/18']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/axim-engineering,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""9206 minutes 36 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Create weekly issues"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""tag_and_notify"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2021-11-22 21:14:16,main,GitHub Issue repository for the Axim engineering team,4869,3,True,False,False,False,False,False,False,2026-05-15 10:30:24,,1,False,0,0,0,0,1475,3425,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://openedx.atlassian.net/wiki/spaces/COMM/pages/3241640370/Axim+Collaborative+Engineering+Team', 'https://github.com/openedx/axim-engineering/issues/new/choose']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/super-csv,,,,True,2026-06-08,True,True,False,False,134,0,[],0,,0,0,,,32,"[""wcwidth==0.7.0"", ""celery==5.6.3"", ""django-crum==0.7.9"", ""prompt-toolkit==3.0.52"", ""packaging==26.2"", ""sqlparse==0.5.5"", ""click-repl==0.3.0"", ""cffi==2.0.0"", ""click-plugins==1.1.1.2"", ""kombu==5.6.2"", ""pynacl==1.6.2"", ""python-dateutil==2.9.0.post0"", ""click==8.4.1"", ""amqp==5.3.1"", ""django-model-utils==5.0.0"", ""simplejson==4.1.1"", ""edx-django-utils==8.0.1"", ""djangorestframework==3.17.1"", ""tzdata==2026.2"", ""psutil==7.2.2"", ""six==1.17.0"", ""django==5.2.15"", ""tzlocal==5.3.1"", ""asgiref==3.11.1"", ""django-waffle==5.0.0"", ""stevedore==5.8.0"", ""billiard==4.2.4"", ""vine==5.1.0"", ""pycparser==3.0"", ""click-didyoumean==0.3.1"", ""edx-celeryutils==2.0.0"", ""jsonfield==3.2.0""]",134,"[""wcwidth==0.7.0"", ""django-crum==0.7.9"", ""coverage[toml]==7.14.1"", ""pydocstyle==6.3.0"", ""tomlkit==0.15.0"", ""nh3==0.3.5"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5"", ""sphinxcontrib-applehelp==2.0.0"", ""pytest-django==4.12.0"", ""path==16.16.0"", ""jeepney==0.9.0"", ""cffi==2.0.0"", ""more-itertools==11.1.0"", ""tomli-w==1.2.0"", ""django-model-utils==5.0.0"", ""requests-toolbelt==1.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""code-annotations==3.0.0"", ""roman-numerals==4.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""requests==2.34.2"", ""lxml-html-clean==0.4.5"", ""doc8==2.0.0"", ""asgiref==3.11.1"", ""amqp==5.2.0"", ""django-waffle==5.0.0"", ""stevedore==5.8.0"", ""billiard==4.2.4"", ""python-slugify==8.0.4"", ""markdown-it-py==4.2.0"", ""celery==5.3.6"", ""click-log==0.4.0"", ""pycodestyle==2.14.0"", ""pylint-django==2.7.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pyproject-api==1.10.1"", ""alabaster==1.0.0"", ""pip-tools==7.5.3"", ""setuptools==82.0.1"", ""sphinx-book-theme==1.2.0"", ""packaging==26.2"", ""rich==15.0.0"", ""build==1.5.0"", ""kombu==5.6.2"", ""pynacl==1.6.2"", ""amqp==5.3.1"", ""pluggy==1.6.0"", ""pyyaml==6.0.3"", ""tox==4.55.1"", ""imagesize==2.0.0"", ""python-discovery==1.4.0"", ""edx-django-utils==8.0.1"", ""filelock==3.29.1"", ""pylint-plugin-utils==0.9.0"", ""sphinx==9.1.0"", ""six==1.17.0"", ""pygments==2.20.0"", ""cachetools==7.1.4"", ""django==5.2.15"", ""diff-cover==10.3.0"", ""ddt==1.7.2"", ""keyring==25.7.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pip==26.1.2"", ""jaraco-context==6.1.2"", ""pycparser==3.0"", ""virtualenv==21.4.2"", ""id==1.6.1"", ""mock==5.2.0"", ""soupsieve==2.8.4"", ""sphinxcontrib-jsmath==1.0.1"", ""edx-lint==6.1.0"", ""celery==5.6.3"", ""jaraco-functools==4.5.0"", ""prompt-toolkit==3.0.52"", ""secretstorage==3.5.0"", ""twine==6.2.0"", ""pylint-celery==0.3"", ""text-unidecode==1.3"", ""snowballstemmer==3.1.1"", ""pytest-cov==7.1.0"", ""dill==0.4.1"", ""docutils==0.21.2"", ""pyproject-hooks==1.2.0"", ""click-repl==0.3.0"", ""mccabe==0.7.0"", ""urllib3==2.7.0"", ""freezegun==1.5.5"", ""cryptography==48.0.0"", ""mdurl==0.1.2"", ""colorama==0.4.6"", ""djangorestframework==3.17.1"", ""isort==8.0.1"", ""tzlocal==5.3.1"", ""restructuredtext-lint==2.0.2"", ""iniconfig==2.3.0"", ""wheel==0.47.0"", ""platformdirs==4.10.0"", ""polib==1.2.0"", ""readme-renderer==44.0"", ""chardet==7.4.3"", ""charset-normalizer==3.4.7"", ""jsonfield==3.2.0"", ""idna==3.18"", ""astroid==4.0.4"", ""lxml[html-clean]==6.1.1"", ""pylint==4.0.5"", ""click-plugins==1.1.1.2"", ""python-dateutil==2.9.0.post0"", ""click==8.4.1"", ""pydata-sphinx-theme==0.16.1"", ""greenlet==3.5.1"", ""simplejson==4.1.1"", ""kombu==5.3.5"", ""jinja2==3.1.6"", ""pytest==9.0.3"", ""distlib==0.4.1"", ""rfc3986==2.0.0"", ""tzdata==2026.2"", ""psutil==7.2.2"", ""typing-extensions==4.15.0"", ""certifi==2026.5.20"", ""billiard==4.2.0"", ""vine==5.1.0"", ""edx-i18n-tools==2.0.0"", ""click-didyoumean==0.3.1"", ""edx-celeryutils==2.0.0"", ""click==8.1.6"", ""beautifulsoup4==4.14.3"", ""sqlalchemy==2.0.50"", ""accessible-pygments==0.0.5"", ""babel==2.18.0"", ""jaraco-classes==3.4.0""]",8,"[""djangorestframework"", ""edx-i18n-tools"", ""pylint-django"", ""edx-django-utils"", ""edx-celeryutils"", ""pytest-django"", ""code-annotations"", ""django-waffle""]",11,"[""jsonfield"", ""django-model-utils"", ""djangorestframework"", ""edx-i18n-tools"", ""pylint-django"", ""edx-django-utils"", ""django-crum"", ""edx-celeryutils"", ""pytest-django"", ""code-annotations"", ""django-waffle""]",5,"[""edx-i18n-tools"", ""edx-django-utils"", ""edx-celeryutils"", ""code-annotations"", ""django-waffle""]",True,,True,False,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,12,"{""total_duration"": ""3507 minutes 51 seconds"", ""checks"": [{""name"": ""update-pip-graph"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-celery53-drflatest)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 28 seconds""}]}",Other,2019-05-15 20:16:52,master,Generic CSV Processor,466,11,True,False,False,False,False,False,False,2026-06-08 03:14:18,Apache License 2.0,2,True,0,0,662,0,5175,48164,0,True,True,False,False,True,False,False,,openedx,4,"['https://github.com/openedx/super-csv/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 504', 'https://github.com/openedx/super-csv/blob/master/.github/ISSUE_TEMPLATE.md: 504', 'https://github.com/openedx/super-csv/workflows/Python%20CI/badge.svg?branch=master: 504', 'https://github.com/openedx/super-csv/actions?query=workflow%3A%22Python+CI%22: 504', 'http://super-csv.readthedocs.io/en/latest/: 404']",True,"['https://github.com/openedx/super-csv/blob/master/super_csv/csv_processor.py', 'https://github.com/openedx/devstack', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/super-csv.svg', 'https://pypi.python.org/pypi/super-csv/', 'http://codecov.io/github/edx/super-csv/coverage.svg?branch=master', 'http://codecov.io/github/edx/super-csv?branch=master', 'https://readthedocs.org/projects/super-csv/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/super-csv.svg', 'https://img.shields.io/github/license/edx/super-csv.svg', 'https://github.com/openedx/super-csv/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,super-csv,"['3', '3.12']",https://github.com/openedx/super-csv,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-enterprise,,,,False,2026-06-08,False,False,False,False,4,0,,0,{},0,4,"{""@commitlint/config-conventional"": ""17.8.1"", ""conventional-changelog-conventionalcommits"": ""^5.0.0"", ""husky"": ""6.0.0"", ""lerna"": ""6.6.2""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,True,False,False,False,False,False,False,False,False,True,63,"{""total_duration"": ""1 minutes 24 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-09-17 19:51:18,master,Frontend utilities for enterprise features.,7852,13,True,False,False,False,False,False,False,2026-06-02 17:08:06,GNU AGPLv3,8,True,0,0,0,174788,2529,0,0,False,False,False,False,False,False,False,@edx/frontend-enterprise,openedx,0,[],False,"['https://github.com/openedx/frontend-build', 'https://github.com/conventional-changelog/commitlint', 'https://github.com/openedx/frontend-enterprise/actions/workflows/publish-from-package.yml', 'https://github.com/openedx/frontend-enterprise/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/frontend-enterprise/actions', 'https://codecov.io/gh/edx/frontend-enterprise/branch/master/graph/badge.svg?token=lBHoe5P4Q3', 'https://codecov.io/gh/edx/frontend-enterprise']",True,True,False,False,,,True,2025-12-15,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-profile,,,,False,2026-06-08,True,True,False,False,44,0,,0,{},35,9,"{""@commitlint/cli"": ""19.8.1"", ""@commitlint/config-angular"": ""19.8.1"", ""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""6.9.1"", ""@testing-library/react"": ""14.3.1"", ""glob"": ""11.1.0"", ""jest-environment-jsdom"": ""^30.3.0"", ""redux-mock-store"": ""1.5.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-regular-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@pact-foundation/pact"": ""^11.0.2"", ""@redux-devtools/extension"": ""3.3.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.48.0"", ""history"": ""5.3.0"", ""lodash.camelcase"": ""4.3.0"", ""lodash.get"": ""4.4.2"", ""lodash.pick"": ""4.4.0"", ""lodash.snakecase"": ""4.1.1"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""redux"": ""4.2.1"", ""redux-logger"": ""3.0.6"", ""redux-saga"": ""1.4.2"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""0.14.1"", ""reselect"": ""5.1.1"", ""universal-cookie"": ""4.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,45,"{""total_duration"": ""0 minutes 0 seconds"", ""checks"": [{""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2019-01-10 17:55:59,master,Open edX micro-frontend application for managing user profile information.,23497,152,True,False,False,False,False,False,False,2026-06-08 00:46:02,GNU AGPLv3,17,True,0,0,387,191644,1972,0,0,False,False,False,False,True,False,False,@edx/frontend-app-profile,openedx,0,"['https://github.com/openedx/frontend-app-profile/blob/main/LICENSE: 404', 'https://backstage.herokuapp.com/catalog/default/component/frontend-app-profile: 502']",True,"['https://img.shields.io/github/license/openedx/frontend-app-profile.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-profile/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-profile/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-profile/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-profile?branch=main', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-profile.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-profile/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2025-07-21,8,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-tutor-plugins,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": """", ""checks"": []}",Other,2023-05-31 16:33:08,main,A set of Tutor plugins maintained by the Open edX community.,178,15,True,False,False,False,False,False,False,2026-05-17 01:02:12,GNU AGPLv3,3,False,0,196,0,0,4316,39661,3277,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/overhangio/cookiecutter-tutor-plugin: 504', 'https://github.com/openedx/openedx-tutor-plugins/issues: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-tutor-plugins: 404']",True,"['https://img.shields.io/github/license/openedx/openedx-tutor-plugins.svg', 'https://github.com/openedx/openedx-tutor-plugins/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://docs.tutor.overhang.io/install.html', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/CGE253B7V', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-enterprise-subsidy-client,,,,True,2026-06-08,True,True,False,False,103,0,[],0,,0,0,,,19,"[""sqlparse==0.5.5"", ""django-crum==0.7.9"", ""django-waffle==5.0.0"", ""certifi==2026.4.22"", ""requests==2.33.1"", ""cffi==2.0.0"", ""idna==3.13"", ""edx-django-utils==8.0.1"", ""urllib3==2.6.3"", ""psutil==7.2.2"", ""asgiref==3.11.1"", ""click==8.3.3"", ""pynacl==1.6.2"", ""edx-rest-api-client==7.0.0"", ""pycparser==3.0"", ""django==5.2.13"", ""charset-normalizer==3.4.7"", ""pyjwt==2.12.1"", ""stevedore==5.7.0""]",103,"[""sqlparse==0.5.5"", ""tomli-w==1.2.0"", ""wheel==0.47.0"", ""build==1.5.0"", ""iniconfig==2.3.0"", ""doc8==2.0.0"", ""certifi==2026.4.22"", ""requests==2.33.1"", ""alabaster==1.0.0"", ""cffi==2.0.0"", ""accessible-pygments==0.0.5"", ""more-itertools==11.0.2"", ""babel==2.18.0"", ""twine==6.2.0"", ""psutil==7.2.2"", ""sphinx==9.1.0"", ""pylint-django==2.7.0"", ""pynacl==1.6.2"", ""pytest-cov==7.1.0"", ""edx-rest-api-client==7.0.0"", ""pytest==9.0.3"", ""pycparser==3.0"", ""dill==0.4.1"", ""platformdirs==4.9.6"", ""python-slugify==8.0.4"", ""readme-renderer==44.0"", ""packaging==26.2"", ""pydata-sphinx-theme==0.16.1"", ""pylint==4.0.5"", ""tomlkit==0.14.0"", ""snowballstemmer==3.0.1"", ""pyproject-hooks==1.2.0"", ""cachetools==7.1.1"", ""pluggy==1.6.0"", ""typing-extensions==4.15.0"", ""click-log==0.4.0"", ""mccabe==0.7.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""urllib3==2.6.3"", ""virtualenv==21.3.0"", ""coverage[toml]==7.13.5"", ""edx-lint==6.1.0"", ""secretstorage==3.5.0"", ""sphinxcontrib-qthelp==2.0.0"", ""id==1.6.1"", ""asgiref==3.11.1"", ""pip==26.1"", ""click==8.3.3"", ""isort==8.0.1"", ""markdown-it-py==4.0.0"", ""markupsafe==3.0.3"", ""django==5.2.13"", ""stevedore==5.7.0"", ""setuptools==82.0.1"", ""restructuredtext-lint==2.0.2"", ""django-crum==0.7.9"", ""django-waffle==5.0.0"", ""nh3==0.3.5"", ""chardet==7.4.3"", ""pylint-plugin-utils==0.9.0"", ""colorama==0.4.6"", ""python-discovery==1.2.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""requests-toolbelt==1.0.0"", ""pydocstyle==6.3.0"", ""imagesize==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pycodestyle==2.14.0"", ""jeepney==0.9.0"", ""pyproject-api==1.10.0"", ""six==1.17.0"", ""code-annotations==3.0.0"", ""mdurl==0.1.2"", ""jaraco-classes==3.4.0"", ""cryptography==47.0.0"", ""tox==4.53.1"", ""soupsieve==2.8.3"", ""pyyaml==6.0.3"", ""docutils==0.22.4"", ""astroid==4.0.4"", ""pyjwt==2.12.1"", ""roman-numerals==4.1.0"", ""rfc3986==2.0.0"", ""filelock==3.29.0"", ""beautifulsoup4==4.14.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""idna==3.13"", ""edx-django-utils==8.0.1"", ""rich==15.0.0"", ""distlib==0.4.0"", ""sphinx-book-theme==1.2.0"", ""pygments==2.20.0"", ""jaraco-functools==4.4.0"", ""docutils==0.21.2"", ""jaraco-context==6.1.2"", ""keyring==25.7.0"", ""pylint-celery==0.3"", ""pip-tools==7.5.3"", ""diff-cover==10.2.0"", ""text-unidecode==1.3"", ""charset-normalizer==3.4.7"", ""jinja2==3.1.6""]",5,"[""pylint-django"", ""edx-rest-api-client"", ""code-annotations"", ""django-waffle"", ""edx-django-utils""]",6,"[""pylint-django"", ""edx-rest-api-client"", ""code-annotations"", ""django-waffle"", ""django-crum"", ""edx-django-utils""]",4,"[""code-annotations"", ""edx-rest-api-client"", ""django-waffle"", ""edx-django-utils""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,22,"{""total_duration"": ""13922 minutes 27 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, unittests)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2022-12-21 21:19:15,main,Client for making requests to edx-enterprise-subsidy.,246,5,True,False,False,False,False,False,False,2026-06-08 03:03:41,GNU AGPLv3,3,True,0,0,0,0,3529,34065,0,False,True,False,False,True,False,False,,openedx,0,"['https://docs.openedx.org/projects/edx-enterprise-subsidy-client/how-tos/how-to-deploy-this-component.html: 404', 'https://docs.openedx.org/projects/edx-enterprise-subsidy-client: 404', 'https://github.com/openedx/edx-enterprise-subsidy-client/issues: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/edx-enterprise-subsidy-client: 404', 'https://edx-enterprise-subsidy-client.readthedocs.io/en/latest/: 404']",True,"['https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/edx-enterprise-subsidy-client.svg', 'https://pypi.python.org/pypi/edx-enterprise-subsidy-client/', 'https://github.com/openedx/edx-enterprise-subsidy-client/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/edx-enterprise-subsidy-client/actions', 'https://codecov.io/github/openedx/edx-enterprise-subsidy-client/coverage.svg?branch=main', 'https://codecov.io/github/openedx/edx-enterprise-subsidy-client?branch=main', 'https://readthedocs.org/projects/edx-enterprise-subsidy-client/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-enterprise-subsidy-client.svg', 'https://img.shields.io/github/license/openedx/edx-enterprise-subsidy-client.svg', 'https://github.com/openedx/edx-enterprise-subsidy-client/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,True,,False,edx-enterprise-subsidy-client,"['3', '3.12']",https://github.com/openedx/edx-enterprise-subsidy-client,False,True,True,False,False,False,False,False,False,[],[],,[] +openedx/xapi-db-load,,,,True,2026-06-08,True,True,False,False,123,0,[],0,,0,0,,,35,"[""pyarrow==24.0.0"", ""click==8.4.1"", ""uvloop==0.22.1"", ""attrs==26.1.0"", ""six==1.17.0"", ""wcwidth==0.8.0"", ""propcache==0.5.2"", ""urwid==4.0.2"", ""clickhouse-connect[async]==1.1.1"", ""numpy==2.4.6"", ""python-dateutil==2.9.0.post0"", ""charset-normalizer==3.4.7"", ""idna==3.18"", ""aiosignal==1.4.0"", ""aiohappyeyeballs==2.6.2"", ""frozenlist==1.8.0"", ""smart-open[s3]==7.6.1"", ""pandas==3.0.3"", ""multidict==6.7.1"", ""jmespath==1.1.0"", ""botocore==1.43.24"", ""chdb-core==26.3.0"", ""s3transfer==0.18.0"", ""urllib3==2.7.0"", ""requests==2.34.2"", ""yarl==1.24.2"", ""boto3==1.43.24"", ""aiohttp==3.14.1"", ""certifi==2026.5.20"", ""pyyaml==6.0.3"", ""lz4==4.4.5"", ""chdb==4.1.8"", ""zstandard==0.25.0"", ""typing-extensions==4.15.0"", ""wrapt==2.2.1""]",123,"[""packaging==26.2"", ""virtualenv==21.4.2"", ""python-slugify==8.0.4"", ""isort==8.0.1"", ""coverage[toml]==7.14.1"", ""uvloop==0.22.1"", ""jaraco-functools==4.5.0"", ""sphinx-book-theme==1.2.0"", ""urwid==4.0.2"", ""clickhouse-connect[async]==1.1.1"", ""click-log==0.4.0"", ""python-dateutil==2.9.0.post0"", ""docutils==0.23"", ""python-discovery==1.4.0"", ""wheel==0.47.0"", ""cachetools==7.1.4"", ""aiohappyeyeballs==2.6.2"", ""filelock==3.29.1"", ""colorama==0.4.6"", ""diff-cover==10.3.0"", ""botocore==1.43.24"", ""s3transfer==0.18.0"", ""pycparser==3.0"", ""keyring==25.7.0"", ""boto3==1.43.24"", ""more-itertools==11.1.0"", ""jeepney==0.9.0"", ""accessible-pygments==0.0.5"", ""pylint-django==2.7.0"", ""pycodestyle==2.14.0"", ""zstandard==0.25.0"", ""pydata-sphinx-theme==0.16.1"", ""ast-serialize==0.5.0"", ""pylint-plugin-utils==0.9.0"", ""wrapt==2.2.1"", ""yarl==1.24.2"", ""roman-numerals==4.1.0"", ""attrs==26.1.0"", ""imagesize==2.0.0"", ""librt==0.11.0"", ""mypy-extensions==1.1.0"", ""markupsafe==3.0.3"", ""soupsieve==2.8.4"", ""idna==3.18"", ""markdown-it-py==4.2.0"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""code-annotations==3.0.0"", ""distlib==0.4.1"", ""frozenlist==1.8.0"", ""pip-tools==7.5.3"", ""requests-toolbelt==1.0.0"", ""text-unidecode==1.3"", ""smart-open[s3]==7.6.1"", ""multidict==6.7.1"", ""readme-renderer==44.0"", ""mdurl==0.1.2"", ""urllib3==2.7.0"", ""pyproject-api==1.10.1"", ""pytest-cov==7.1.0"", ""babel==2.18.0"", ""dill==0.4.1"", ""chdb==4.1.8"", ""sphinx==9.1.0"", ""typing-extensions==4.15.0"", ""jaraco-classes==3.4.0"", ""alabaster==1.0.0"", ""pathspec==1.1.1"", ""id==1.6.1"", ""wcwidth==0.8.0"", ""sphinxcontrib-jsmath==1.0.1"", ""nh3==0.3.5"", ""propcache==0.5.2"", ""cryptography==48.0.0"", ""platformdirs==4.10.0"", ""numpy==2.4.6"", ""pip==26.1.2"", ""tomlkit==0.15.0"", ""charset-normalizer==3.4.7"", ""build==1.5.0"", ""aiosignal==1.4.0"", ""pytest==9.0.3"", ""pandas==3.0.3"", ""requests==2.34.2"", ""setuptools==82.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""certifi==2026.5.20"", ""astroid==4.0.4"", ""lz4==4.4.5"", ""iniconfig==2.3.0"", ""twine==6.2.0"", ""pydocstyle==6.3.0"", ""tomli-w==1.2.0"", ""rich==15.0.0"", ""pyarrow==24.0.0"", ""click==8.4.1"", ""pyproject-hooks==1.2.0"", ""stevedore==5.8.0"", ""chardet==7.4.3"", ""six==1.17.0"", ""pylint-celery==0.3"", ""pygments==2.20.0"", ""pylint==4.0.5"", ""beautifulsoup4==4.15.0"", ""tox==4.55.1"", ""cffi==2.0.0"", ""pytest-asyncio==1.4.0"", ""jinja2==3.1.6"", ""docutils==0.22.4"", ""jmespath==1.1.0"", ""pluggy==1.6.0"", ""chdb-core==26.3.0"", ""secretstorage==3.5.0"", ""snowballstemmer==3.1.1"", ""edx-lint==6.1.0"", ""mccabe==0.7.0"", ""rfc3986==2.0.0"", ""aiohttp==3.14.1"", ""pyyaml==6.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""jaraco-context==6.1.2"", ""mypy==2.1.0"", ""sphinxcontrib-serializinghtml==2.0.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""1 minutes 12 seconds"", ""checks"": [{""name"": ""tests (3.12)"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 33 seconds""}]}",Other,2022-11-21 15:37:46,main,,5926,6,True,False,False,False,False,False,False,2026-06-08 06:49:58,GNU AGPLv3,0,True,0,0,0,0,3027,212088,0,True,True,False,False,True,False,False,,openedx,0,"['http://ralph.tutor-nightly-local.orb.local/xAPI/statements: HTTPConnectionPool(host=\'ralph.tutor-nightly-local.orb.local\', port=80): Max retries exceeded with url: /xAPI/statements (Caused by NameResolutionError(""HTTPConnection(host=\'ralph.tutor-nightly-local.orb.local\', port=80): Failed to resolve \'ralph.tutor-nightly-local.orb.local\' ([Errno -3] Temporary failure in name resolution)""))', 'https://openedx-aspects-loadtest.s3.amazonaws.com/logs/large_test/: 403', 'https://docs.openedx.org/projects/xapi-db-load: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/xapi-db-load: 404']",True,"['https://github.com/openedx/xapi-db-load/issues', 'https://vector.dev', 'https://pypi.org/project/smart-open/', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,True,"{ ""Code"": ""https://github.com/openedx/xapi-db-load"", ""Issue tracker"": ""https://github.com/openedx/xapi-db-load/issues"", }",False,xapi-db-load,['3.12'],https://github.com/openedx/xapi-db-load,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-k8s-harmony,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,19,"{""total_duration"": ""8535 minutes 40 seconds"", ""checks"": [{""name"": ""release"", ""duration"": ""0 minutes 7 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2022-11-25 18:03:47,main,A Prototype Helm Chart for deploying multiple Open edX instances (via Tutor) onto a cluster.,1790,19,True,False,False,False,False,False,False,2026-05-26 10:09:18,GNU AGPLv3,16,False,0,0,0,0,1262,12486,1535,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/aws/karpenter/blob/main/website/content/en/docs/upgrade-guide.md: 404', 'https://XYZ.eks.amazonaws.com: HTTPSConnectionPool(host=\'xyz.eks.amazonaws.com\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'xyz.eks.amazonaws.com\', port=443): Failed to resolve \'xyz.eks.amazonaws.com\' ([Errno -2] Name or service not known)""))', 'https://karpenter.sh/docs/concepts/provisioners/: 404', 'https://karpenter.sh/docs/concepts/node-templates/: 404', 'https://ms-yourinstanceid.meilisearch.io: HTTPSConnectionPool(host=\'ms-yourinstanceid.meilisearch.io\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'ms-yourinstanceid.meilisearch.io\', port=443): Failed to resolve \'ms-yourinstanceid.meilisearch.io\' ([Errno -2] Name or service not known)""))', 'http://10.1.2.3: HTTPConnectionPool(host=\'10.1.2.3\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'10.1.2.3\', port=80): Failed to establish a new connection: [Errno 113] No route to host""))', 'https://meilisearch: HTTPSConnectionPool(host=\'meilisearch\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'meilisearch\', port=443): Failed to resolve \'meilisearch\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://www.openedx.org', 'https://docs.tutor.overhang.io/', 'https://kubernetes.github.io/ingress-nginx/', 'https://traefik.io/traefik/', 'https://cert-manager.io/', 'https://github.com/prometheus-community/helm-charts', 'https://grove.opencraft.com/', 'https://github.com/eduNEXT/tutor-contrib-pod-autoscaling', 'https://cert-manager.io/docs/installation/upgrading/', 'https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/', 'https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler', 'https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler', 'https://karpenter.sh/', 'https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/', 'https://doc.traefik.io/traefik/migrate/nginx-to-traefik/', 'https://helm.sh/', 'https://openedx.github.io/openedx-k8s-harmony', 'https://github.com/cert-manager/cert-manager/releases/download/v1.10.1/cert-manager.crds.yaml', 'https://minikube.sigs.k8s.io/docs/start/', 'https://github.com/openedx/openedx-k8s-harmony.git', 'https://www.meilisearch.com/cloud', 'https://www.meilisearch.com/docs/learn/self_hosted/getting_started_with_self_hosted_meilisearch']",True,True,False,False,,,True,2026-04-04,2024-11-07,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xqueue,,,,True,2026-06-01,False,False,False,False,59,0,[],0,,0,0,,,57,"[""sqlparse==0.5.5"", ""build==1.4.2"", ""django-waffle==5.0.0"", ""gunicorn==25.3.0"", ""django==5.2.13"", ""python-discovery==1.2.1"", ""asgiref==3.11.1"", ""coverage[toml]==7.13.5"", ""filelock==3.25.2"", ""certifi==2026.2.25"", ""pyproject-hooks==1.2.0"", ""idna==3.11"", ""wheel==0.46.3"", ""edx-django-release-util==1.5.0"", ""python-dateutil==2.9.0.post0"", ""s3transfer==0.16.0"", ""distlib==0.4.0"", ""edx-django-utils==8.0.1"", ""iniconfig==2.3.0"", ""virtualenv==21.2.0"", ""psutil==7.2.2"", ""pywatchman==3.0.0 ; \""linux\"" in sys_platform"", ""pyyaml==6.0.3"", ""pycodestyle==2.14.0"", ""botocore==1.42.84"", ""six==1.17.0"", ""django-storages==1.14.6"", ""cachetools==7.0.5"", ""newrelic==12.1.0"", ""pytest==9.0.2"", ""jmespath==1.1.0"", ""pip-tools==7.5.3"", ""boto3==1.42.84"", ""pytest-cov==7.1.0"", ""pluggy==1.6.0"", ""pycparser==3.0"", ""stevedore==5.7.0"", ""path==17.1.1"", ""click==8.3.2"", ""pygments==2.20.0"", ""packaging==26.0"", ""tomli-w==1.2.0"", ""django-crum==0.7.9"", ""pynacl==1.6.2"", ""requests==2.33.1"", ""backoff==2.2.1"", ""pytest-django==4.12.0"", ""tox==4.52.0"", ""mysqlclient==2.2.8"", ""isort==8.0.1"", ""platformdirs==4.9.4"", ""colorama==0.4.6"", ""urllib3==2.6.3"", ""pyproject-api==1.10.0"", ""cffi==2.0.0"", ""charset-normalizer==3.4.7"", ""python-memcached==1.62""]",59,"[""sqlparse==0.5.5"", ""build==1.4.2"", ""django-waffle==5.0.0"", ""gunicorn==25.3.0"", ""django==5.2.13"", ""python-discovery==1.2.1"", ""asgiref==3.11.1"", ""coverage[toml]==7.13.5"", ""filelock==3.25.2"", ""certifi==2026.2.25"", ""pyproject-hooks==1.2.0"", ""idna==3.11"", ""wheel==0.46.3"", ""edx-django-release-util==1.5.0"", ""python-dateutil==2.9.0.post0"", ""s3transfer==0.16.0"", ""distlib==0.4.0"", ""edx-django-utils==8.0.1"", ""iniconfig==2.3.0"", ""virtualenv==21.2.0"", ""psutil==7.2.2"", ""pywatchman==3.0.0 ; \""linux\"" in sys_platform"", ""pyyaml==6.0.3"", ""pycodestyle==2.14.0"", ""setuptools==82.0.1"", ""botocore==1.42.84"", ""six==1.17.0"", ""django-storages==1.14.6"", ""cachetools==7.0.5"", ""newrelic==12.1.0"", ""pytest==9.0.2"", ""jmespath==1.1.0"", ""pip-tools==7.5.3"", ""boto3==1.42.84"", ""pytest-cov==7.1.0"", ""pluggy==1.6.0"", ""pycparser==3.0"", ""stevedore==5.7.0"", ""path==17.1.1"", ""click==8.3.2"", ""pygments==2.20.0"", ""packaging==26.0"", ""tomli-w==1.2.0"", ""django-crum==0.7.9"", ""pynacl==1.6.2"", ""requests==2.33.1"", ""backoff==2.2.1"", ""pytest-django==4.12.0"", ""tox==4.52.0"", ""mysqlclient==2.2.8"", ""isort==8.0.1"", ""platformdirs==4.9.4"", ""colorama==0.4.6"", ""urllib3==2.6.3"", ""pyproject-api==1.10.0"", ""cffi==2.0.0"", ""charset-normalizer==3.4.7"", ""pip==26.0.1"", ""python-memcached==1.62""]",5,"[""edx-django-release-util"", ""django-storages"", ""django-waffle"", ""edx-django-utils"", ""pytest-django""]",7,"[""edx-django-release-util"", ""django-storages"", ""django-waffle"", ""edx-django-utils"", ""django-crum"", ""pytest-django"", ""newrelic""]",3,"[""edx-django-release-util"", ""django-waffle"", ""edx-django-utils""]",False,,True,False,True,False,False,False,True,True,True,False,False,False,False,True,False,False,True,False,True,True,True,77,"{""total_duration"": ""74885 minutes 1 seconds"", ""checks"": [{""name"": ""check migration for MySql8 (ubuntu-latest, 3.12)"", ""duration"": ""3 minutes 49 seconds""}, {""name"": ""build (3.12, django52, mysql80)"", ""duration"": ""1 minutes 10 seconds""}, {""name"": ""build (3.12, quality, mysql80)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""build (3.12, django42, mysql80)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 13 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 13 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2012-08-09 14:43:31,master,XQueue defines an interface for the LMS to communicate with external grader services.,906,101,True,False,False,False,False,False,False,2026-05-15 04:43:52,GNU AGPLv3,5,True,0,0,51,0,3766,143881,297,True,True,False,False,True,False,False,,openedx,2,['https://open.edx.org/getting-help: 403'],True,['https://github.com/openedx/public-engineering/issues/286'],True,True,False,False,,,False,,,,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-enterprise,,,,True,2026-06-01,True,True,False,True,255,0,[],0,{},2,10,"{""css-loader"": ""^0.28.7"", ""extract-text-webpack-plugin"": ""^3.0.0"", ""jasmine-ajax"": ""^3.1.1"", ""jasmine-jquery"": ""^2.1.1"", ""jquery"": ""^2.2.4"", ""jshint"": ""^2.9.5"", ""sass-loader"": ""^7.2.0"", ""sass"": ""^1.22.10"", ""style-loader"": ""^0.18.2"", ""webpack"": ""^3.12.0""}","{""@edx/brand"": ""npm:@edx/brand-edx.org@^1.3.0"", ""@openedx/paragon"": ""^21.5.7""}",206,"[""xmlsec==1.3.14"", ""django-config-models==3.0.0"", ""python-ipware==3.0.0"", ""pluggy==1.6.0"", ""amqp==5.3.1"", ""google-api-core[grpc]==2.30.3"", ""doc8==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""lxml-html-clean==0.4.4"", ""pillow==12.2.0"", ""python-slugify==8.0.4"", ""markupsafe==3.0.3"", ""packaging==26.2"", ""django-fernet-fields-v2==0.9"", ""django-ipware==7.0.1"", ""djangorestframework==3.17.1"", ""sailthru-client==2.2.3"", ""django==5.2.14"", ""roman-numerals==4.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""social-auth-core==4.9.1"", ""imagesize==2.0.0"", ""pyasn1-modules==0.4.2"", ""jwcrypto==1.5.7"", ""requests-oauthlib==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinx==8.2.3"", ""rules==3.5"", ""django-object-actions==5.0.1"", ""protobuf==6.33.6"", ""pytest-cov==7.1.0"", ""tzlocal==5.3.1"", ""drf-jwt==1.19.2"", ""edx-ccx-keys==2.0.2"", ""pyasn1==0.6.3"", ""diff-cover==10.2.0"", ""mccabe==0.7.0"", ""edx-api-doc-tools==3.0.0"", ""hpack==4.1.0"", ""lxml[html-clean]==5.3.2"", ""django-waffle==5.0.0"", ""paramiko==4.0.0"", ""social-auth-app-django==5.4.1"", ""sphinx-book-theme==1.2.0"", ""pytest==9.0.3"", ""edx-drf-extensions==10.6.0"", ""openedx-atlas==0.7.0"", ""slumber==0.7.1"", ""grpcio-status==1.80.0"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""django-multi-email-field==0.8.0"", ""code-annotations==3.0.0"", ""pymongo==4.4.0"", ""cryptography==48.0.0"", ""tox==4.53.1"", ""cachetools==7.1.1"", ""pyyaml==6.0.3"", ""requests==2.33.1"", ""ddt==1.3.1"", ""stevedore==5.7.0"", ""platformdirs==4.9.6"", ""pylint==3.3.9"", ""click-repl==0.3.0"", ""text-unidecode==1.3"", ""pyproject-hooks==1.2.0"", ""pynacl==1.6.2"", ""requests-toolbelt==1.0.0"", ""hyperframe==6.1.0"", ""pycodestyle==2.14.0"", ""pylint-celery==0.3"", ""jsonfield==3.2.0"", ""pydocstyle==6.3.0"", ""h11==0.16.0"", ""djangorestframework-xml==2.0.0"", ""jsondiff==2.2.1"", ""pylint-plugin-utils==0.9.0"", ""urllib3==2.7.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-lint==6.1.0"", ""h2==4.3.0"", ""testfixtures==11.0.0"", ""tincan==1.0.0"", ""anyio==4.13.0"", ""typing-extensions==4.15.0"", ""defusedxml==0.7.1"", ""astroid==3.3.11"", ""google-crc32c==1.8.0"", ""psutil==7.2.2"", ""click==8.3.3"", ""simplejson==4.1.1"", ""django-cache-memoize==0.2.1"", ""docutils==0.21.2"", ""google-cloud-storage==3.10.1"", ""python3-saml==1.16.0"", ""edx-i18n-tools==2.0.0"", ""pip-tools==7.5.3"", ""idna==3.13"", ""firebase-admin==7.4.0"", ""vine==5.1.0"", ""pyproject-api==1.10.0"", ""edx-opaque-keys[django]==4.0.0"", ""proto-plus==1.28.0"", ""tzdata==2026.2"", ""pkginfo==1.12.1.2"", ""inflection==0.5.1"", ""twine==1.11.0"", ""chardet==7.4.3"", ""django-crum==0.7.9"", ""accessible-pygments==0.0.5"", ""click-plugins==1.1.1.2"", ""dill==0.4.1"", ""beautifulsoup4==4.14.3"", ""django-filter==25.2"", ""google-cloud-firestore==2.27.0"", ""celery==5.6.3"", ""unicodecsv==0.14.1"", ""polib==1.2.0"", ""oauthlib==3.3.1"", ""build==1.5.0"", ""tomlkit==0.15.0"", ""httpcore==1.0.9"", ""python-discovery==1.3.0"", ""wcwidth==0.7.0"", ""drf-yasg==1.21.15"", ""django-mock-queries==2.3.0"", ""babel==2.18.0"", ""pgpy==0.6.0"", ""distlib==0.4.0"", ""sqlparse==0.5.5"", ""alabaster==1.0.0"", ""dnspython==2.8.0"", ""responses==0.26.0"", ""django-oauth-toolkit==1.7.1"", ""edx-django-utils==8.0.1"", ""asgiref==3.11.1"", ""google-cloud-core==2.6.0"", ""webencodings==0.5.1"", ""nh3==0.3.5"", ""coverage[toml]==7.14.0"", ""openedx-events==11.2.0"", ""isodate==0.7.2"", ""cffi==2.0.0"", ""django-countries==8.2.0"", ""edx-rest-api-client==7.0.0"", ""path==16.11.0"", ""pylint-django==2.7.0"", ""click-didyoumean==0.3.1"", ""google-auth==2.52.0"", ""model-bakery==1.23.4"", ""attrs==26.1.0"", ""charset-normalizer==3.4.7"", ""msgpack==1.1.2"", ""kombu==5.6.2"", ""prompt-toolkit==3.0.52"", ""sphinxcontrib-devhelp==2.0.0"", ""bcrypt==5.0.0"", ""pytest-django==4.12.0"", ""filelock==3.29.0"", ""click-log==0.4.0"", ""semantic-version==2.10.0"", ""uritemplate==4.2.0"", ""freezegun==1.5.5"", ""grpcio==1.80.0"", ""tomli-w==1.2.0"", ""readme-renderer==44.0"", ""aniso8601==10.0.1"", ""edx-rbac==3.0.0"", ""edx-ace==1.15.0"", ""google-resumable-media==2.9.0"", ""edx-toggles==6.0.0"", ""six==1.17.0"", ""tqdm==4.67.3"", ""django-simple-history==3.11.0"", ""pygments==2.20.0"", ""sphinxcontrib-jsmath==1.0.1"", ""billiard==4.2.4"", ""cachecontrol==0.14.4"", ""iniconfig==2.3.0"", ""snowballstemmer==3.0.1"", ""openedx-filters==3.3.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-braze-client==1.1.3"", ""factory-boy==3.3.3"", ""fastavro==1.12.2"", ""mock==5.2.0"", ""pytz==2026.2"", ""restructuredtext-lint==2.0.2"", ""invoke==3.0.3"", ""certifi==2026.4.22"", ""virtualenv==21.3.1"", ""soupsieve==2.8.3"", ""isort==6.1.0"", ""pycparser==3.0"", ""path-py==12.5.0"", ""roman-numerals-py==4.1.0"", ""bleach==6.3.0"", ""wheel==0.47.0"", ""django-model-utils==5.0.0"", ""jinja2==3.1.6"", ""django-push-notifications==3.3.0"", ""python-dateutil==2.9.0.post0"", ""pyjwt[crypto]==2.12.1"", ""googleapis-common-protos==1.75.0"", ""colorama==0.4.6"", ""httpx[http2]==0.28.1"", ""faker==40.15.0""]",243,"[""xmlsec==1.3.14"", ""shellingham==1.5.4"", ""django-config-models==3.0.0"", ""python-ipware==3.0.0"", ""jasmine==3.99.0"", ""pluggy==1.6.0"", ""amqp==5.3.1"", ""google-api-core[grpc]==2.30.3"", ""doc8==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""lxml-html-clean==0.4.4"", ""pillow==12.2.0"", ""python-slugify==8.0.4"", ""markupsafe==3.0.3"", ""packaging==26.2"", ""django-fernet-fields-v2==0.9"", ""django-ipware==7.0.1"", ""djangorestframework==3.17.1"", ""sailthru-client==2.2.3"", ""glob2==0.7"", ""django==5.2.14"", ""roman-numerals==4.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""social-auth-core==4.9.1"", ""imagesize==2.0.0"", ""pyasn1-modules==0.4.2"", ""jwcrypto==1.5.7"", ""requests-oauthlib==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinx==8.2.3"", ""zc-lockfile==4.0"", ""rules==3.5"", ""django-object-actions==5.0.1"", ""protobuf==6.33.6"", ""pytest-cov==7.1.0"", ""jaraco-collections==5.2.1"", ""tzlocal==5.3.1"", ""drf-jwt==1.19.2"", ""edx-ccx-keys==2.0.2"", ""pyasn1==0.6.3"", ""diff-cover==10.2.0"", ""mccabe==0.7.0"", ""edx-api-doc-tools==3.0.0"", ""hpack==4.1.0"", ""lxml[html-clean]==5.3.2"", ""django-waffle==5.0.0"", ""paramiko==4.0.0"", ""social-auth-app-django==5.4.1"", ""sphinx-book-theme==1.2.0"", ""pytest==9.0.3"", ""edx-drf-extensions==10.6.0"", ""openedx-atlas==0.7.0"", ""slumber==0.7.1"", ""setuptools==82.0.1"", ""grpcio-status==1.80.0"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""django-multi-email-field==0.8.0"", ""code-annotations==3.0.0"", ""pymongo==4.4.0"", ""cryptography==48.0.0"", ""tox==4.53.1"", ""cachetools==7.1.1"", ""pyyaml==6.0.3"", ""requests==2.33.1"", ""ddt==1.3.1"", ""stevedore==5.7.0"", ""platformdirs==4.9.6"", ""urllib3[socks]==2.7.0"", ""pylint==3.3.9"", ""click-repl==0.3.0"", ""typer==0.25.1"", ""text-unidecode==1.3"", ""pyproject-hooks==1.2.0"", ""pynacl==1.6.2"", ""sniffio==1.3.1"", ""requests-toolbelt==1.0.0"", ""hyperframe==6.1.0"", ""pycodestyle==2.14.0"", ""pylint-celery==0.3"", ""jsonfield==3.2.0"", ""pydocstyle==6.3.0"", ""h11==0.16.0"", ""djangorestframework-xml==2.0.0"", ""jsondiff==2.2.1"", ""pylint-plugin-utils==0.9.0"", ""urllib3==2.7.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-lint==6.1.0"", ""markdown-it-py==4.2.0"", ""h2==4.3.0"", ""jasmine-core==3.99.0"", ""testfixtures==11.0.0"", ""tincan==1.0.0"", ""anyio==4.13.0"", ""typing-extensions==4.15.0"", ""defusedxml==0.7.1"", ""astroid==3.3.11"", ""google-crc32c==1.8.0"", ""pip==26.1.1"", ""psutil==7.2.2"", ""selenium==4.43.0"", ""click==8.3.3"", ""simplejson==4.1.1"", ""django-cache-memoize==0.2.1"", ""docutils==0.21.2"", ""google-cloud-storage==3.10.1"", ""python3-saml==1.16.0"", ""lxml==5.3.2"", ""more-itertools==11.0.2"", ""websocket-client==1.9.0"", ""edx-i18n-tools==2.0.0"", ""pip-tools==7.5.3"", ""idna==3.13"", ""firebase-admin==7.4.0"", ""vine==5.1.0"", ""pyproject-api==1.10.0"", ""outcome==1.3.0.post0"", ""edx-opaque-keys[django]==4.0.0"", ""proto-plus==1.28.0"", ""tzdata==2026.2"", ""ordereddict==1.1"", ""pkginfo==1.12.1.2"", ""inflection==0.5.1"", ""twine==1.11.0"", ""chardet==7.4.3"", ""django-crum==0.7.9"", ""accessible-pygments==0.0.5"", ""click-plugins==1.1.1.2"", ""idna==3.14"", ""dill==0.4.1"", ""beautifulsoup4==4.14.3"", ""django-filter==25.2"", ""google-cloud-firestore==2.27.0"", ""celery==5.6.3"", ""unicodecsv==0.14.1"", ""polib==1.2.0"", ""oauthlib==3.3.1"", ""build==1.5.0"", ""annotated-doc==0.0.4"", ""tomlkit==0.15.0"", ""httpcore==1.0.9"", ""python-discovery==1.3.0"", ""wsproto==1.3.2"", ""wcwidth==0.7.0"", ""drf-yasg==1.21.15"", ""django-mock-queries==2.3.0"", ""babel==2.18.0"", ""jaraco-text==4.2.0"", ""pgpy==0.6.0"", ""distlib==0.4.0"", ""sqlparse==0.5.5"", ""alabaster==1.0.0"", ""dnspython==2.8.0"", ""responses==0.26.0"", ""django-oauth-toolkit==1.7.1"", ""edx-django-utils==8.0.1"", ""asgiref==3.11.1"", ""google-cloud-core==2.6.0"", ""webencodings==0.5.1"", ""nh3==0.3.5"", ""rich==15.0.0"", ""coverage[toml]==7.14.0"", ""openedx-events==11.2.0"", ""isodate==0.7.2"", ""cffi==2.0.0"", ""django-countries==8.2.0"", ""edx-rest-api-client==7.0.0"", ""path==16.11.0"", ""pylint-django==2.7.0"", ""jaraco-classes==3.4.0"", ""click-didyoumean==0.3.1"", ""google-auth==2.52.0"", ""model-bakery==1.23.4"", ""jaraco-functools==4.4.0"", ""cheroot==11.1.2"", ""attrs==26.1.0"", ""jinja2==2.11.3"", ""charset-normalizer==3.4.7"", ""msgpack==1.1.2"", ""kombu==5.6.2"", ""prompt-toolkit==3.0.52"", ""pysocks==1.7.1"", ""sphinxcontrib-devhelp==2.0.0"", ""mdurl==0.1.2"", ""bcrypt==5.0.0"", ""pytest-django==4.12.0"", ""filelock==3.29.0"", ""click-log==0.4.0"", ""semantic-version==2.10.0"", ""typer-slim==0.24.0"", ""uritemplate==4.2.0"", ""sortedcontainers==2.4.0"", ""freezegun==1.5.5"", ""grpcio==1.80.0"", ""tomli-w==1.2.0"", ""readme-renderer==44.0"", ""aniso8601==10.0.1"", ""edx-rbac==3.0.0"", ""edx-ace==1.15.0"", ""jaraco-context==6.1.2"", ""google-resumable-media==2.9.0"", ""edx-toggles==6.0.0"", ""trio==0.33.0"", ""six==1.17.0"", ""tqdm==4.67.3"", ""django-simple-history==3.11.0"", ""pygments==2.20.0"", ""sphinxcontrib-jsmath==1.0.1"", ""billiard==4.2.4"", ""cachecontrol==0.14.4"", ""iniconfig==2.3.0"", ""snowballstemmer==3.0.1"", ""openedx-filters==3.3.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-braze-client==1.1.3"", ""factory-boy==3.3.3"", ""fastavro==1.12.2"", ""mock==5.2.0"", ""pytz==2026.2"", ""restructuredtext-lint==2.0.2"", ""tempora==5.9.0"", ""trio-websocket==0.12.2"", ""invoke==3.0.3"", ""certifi==2026.4.22"", ""virtualenv==21.3.1"", ""soupsieve==2.8.3"", ""isort==6.1.0"", ""pycparser==3.0"", ""path-py==12.5.0"", ""roman-numerals-py==4.1.0"", ""portend==3.2.1"", ""bleach==6.3.0"", ""wheel==0.47.0"", ""django-model-utils==5.0.0"", ""jinja2==3.1.6"", ""django-push-notifications==3.3.0"", ""python-dateutil==2.9.0.post0"", ""pyjwt[crypto]==2.12.1"", ""googleapis-common-protos==1.75.0"", ""colorama==0.4.6"", ""httpx[http2]==0.28.1"", ""faker==40.15.0"", ""cherrypy==18.10.0""]",22,"[""code-annotations"", ""django-countries"", ""edx-api-doc-tools"", ""pylint-django"", ""django-multi-email-field"", ""edx-rest-api-client"", ""django-cache-memoize"", ""social-auth-app-django"", ""edx-toggles"", ""djangorestframework"", ""django-config-models"", ""django-object-actions"", ""edx-ace"", ""factory-boy"", ""edx-django-utils"", ""pytest-django"", ""django-waffle"", ""django-oauth-toolkit"", ""django-filter"", ""edx-drf-extensions"", ""edx-rbac"", ""edx-i18n-tools""]",32,"[""code-annotations"", ""django-countries"", ""edx-api-doc-tools"", ""pylint-django"", ""django-model-utils"", ""django-multi-email-field"", ""edx-rest-api-client"", ""django-crum"", ""drf-yasg"", ""drf-jwt"", ""django-cache-memoize"", ""social-auth-app-django"", ""edx-toggles"", ""django-simple-history"", ""django-ipware"", ""djangorestframework"", ""django-config-models"", ""django-object-actions"", ""edx-ace"", ""factory-boy"", ""rules"", ""jasmine-core"", ""djangorestframework-xml"", ""edx-django-utils"", ""pytest-django"", ""django-waffle"", ""django-oauth-toolkit"", ""django-filter"", ""edx-drf-extensions"", ""edx-rbac"", ""edx-i18n-tools"", ""jsonfield""]",16,"[""edx-rest-api-client"", ""edx-ace"", ""django-waffle"", ""django-cache-memoize"", ""code-annotations"", ""django-countries"", ""social-auth-app-django"", ""edx-api-doc-tools"", ""django-filter"", ""edx-drf-extensions"", ""edx-rbac"", ""edx-toggles"", ""edx-i18n-tools"", ""django-multi-email-field"", ""edx-django-utils"", ""django-config-models""]",True,,True,False,True,True,False,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,True,347,"{""total_duration"": ""489 minutes 49 seconds"", ""checks"": [{""name"": ""run_tests (3.12, django52)"", ""duration"": ""13 minutes 34 seconds""}, {""name"": ""run_tests (3.12, quality)"", ""duration"": ""3 minutes 54 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""2 minutes 27 seconds""}, {""name"": ""run_tests (3.12, docs)"", ""duration"": ""1 minutes 56 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 52 seconds""}, {""name"": ""run_tests (3.12, pii_check)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2016-10-12 13:48:42,master,,16037,71,True,False,False,False,False,False,False,2026-06-01 03:14:40,GNU AGPLv3,82,True,0,2741,95485,36447,10718,5774202,604,True,True,False,False,True,False,False,,openedx,5,"['https://github.com/openedx/edx-enterprise/blob/master/LICENSE.txt: 404', 'https://github.com/openedx/edx-enterprise/blob/master/.github/PULL_REQUEST_TEMPLATE_TEMPLATE.md: 404']",True,"['https://img.shields.io/pypi/v/edx-enterprise.svg', 'https://pypi.python.org/pypi/edx-enterprise/', 'http://codecov.io/github/edx/edx-enterprise/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-enterprise?branch=master', 'https://readthedocs.org/projects/open-edx-enterprise-service-documentation/badge/?version=latest', 'http://open-edx-enterprise-service-documentation.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-enterprise.svg', 'https://img.shields.io/github/license/edx/edx-enterprise.svg', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://openedx.org/getting-help']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,edx-enterprise,"['3', '3.12']",https://github.com/openedx/edx-enterprise,True,True,True,False,False,False,False,False,False,[],[],"['python3.12-dev', 'build-essential', 'default-libmysqlclient-dev', 'locales', 'install', 'curl', 'python3.12-venv', 'gcc', 'pkg-config', 'language-pack-en', 'python3.12', 'git', 'libssl-dev']",[] -openedx/cc2olx,,,,True,2026-06-01,True,True,False,False,67,0,[],0,,0,0,,,11,"[""sqlparse==0.5.5"", ""urllib3==2.6.3"", ""requests==2.33.1"", ""django==5.2.13"", ""asgiref==3.11.1"", ""charset-normalizer==3.4.7"", ""youtube-dl==2021.12.17"", ""lxml==6.0.2"", ""attrs==26.1.0"", ""certifi==2026.2.25"", ""idna==3.11""]",67,"[""mypy-extensions==1.1.0"", ""jeepney==0.9.0"", ""pytest==9.0.2"", ""sqlparse==0.5.5"", ""tox==4.52.0"", ""urllib3==2.6.3"", ""platformdirs==4.9.4"", ""cffi==2.0.0"", ""pathspec==1.0.4"", ""packaging==26.0"", ""pip-tools==7.5.3"", ""jaraco-functools==4.4.0"", ""charset-normalizer==3.4.7"", ""black==26.3.1"", ""pycodestyle==2.14.0"", ""pytokens==0.4.1"", ""mdurl==0.1.2"", ""flake8==7.3.0"", ""markdown-it-py==4.0.0"", ""rfc3986==2.0.0"", ""keyring==25.7.0"", ""id==1.6.1"", ""pytest-mock==3.15.1"", ""pygments==2.20.0"", ""requests==2.33.1"", ""setuptools==82.0.1"", ""cachetools==7.0.5"", ""python-discovery==1.2.1"", ""pytest-cov==7.1.0"", ""tomli-w==1.2.0"", ""mccabe==0.7.0"", ""attrs==26.1.0"", ""distlib==0.4.0"", ""click==8.3.2"", ""pyproject-hooks==1.2.0"", ""certifi==2026.2.25"", ""coverage[toml]==7.13.5"", ""more-itertools==11.0.1"", ""jaraco-context==6.1.2"", ""iniconfig==2.3.0"", ""cryptography==46.0.6"", ""pip==26.0.1"", ""pluggy==1.6.0"", ""virtualenv==21.2.0"", ""filelock==3.25.2"", ""pytest-django==4.12.0"", ""readme-renderer==44.0"", ""nh3==0.3.4"", ""pycparser==3.0"", ""colorama==0.4.6"", ""docutils==0.22.4"", ""bump2version==1.0.1"", ""wheel==0.46.3"", ""twine==6.2.0"", ""xmlformatter==0.2.8"", ""build==1.4.2"", ""jaraco-classes==3.4.0"", ""asgiref==3.11.1"", ""secretstorage==3.5.0"", ""youtube-dl==2021.12.17"", ""lxml==6.0.2"", ""pyflakes==3.4.0"", ""pyproject-api==1.10.0"", ""django==5.2.13"", ""requests-toolbelt==1.0.0"", ""rich==14.3.3"", ""idna==3.11""]",1,"[""pytest-django""]",1,"[""pytest-django""]",0,[],False,,True,True,True,False,False,True,True,True,True,True,True,False,False,True,True,True,True,False,True,True,True,55,"{""total_duration"": ""0 minutes 48 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, formatting)"", ""duration"": ""0 minutes 30 seconds""}]}",Other,2020-06-29 20:14:54,master,A library to convert Common Cartridge Courses to OLX.,43119,17,True,False,False,False,False,False,False,2026-05-30 15:00:03,GNU AGPLv3,4,True,0,111,7120,0,3811,268868,0,True,False,False,False,True,False,False,,openedx,2,[],False,"['https://github.com/openedx/cc2olx/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/cc2olx/actions?query=workflow%3A%22Python+CI%22', 'https://www.imsglobal.org/activity/common-cartridge', 'https://github.com/raccoongang/xblock-pdf', 'https://github.com/openedx/xblock-google-drive', 'https://s3.amazonaws.com/public-imscc/c075c6df1f674a7b9d9192307e812f74.imscc', 'https://lor.instructure.com/resources/c075c6df1f674a7b9d9192307e812f74', 'https://s3.amazonaws.com/public-imscc/faa3332ffd834070ad81d97bdb236649.imscc', 'https://lor.instructure.com/resources/faa3332ffd834070ad81d97bdb236649', 'https://s3.amazonaws.com/public-imscc/d933c048da6d4fd5a9cb552148d628cb.imscc', 'https://lor.instructure.com/resources/d933c048da6d4fd5a9cb552148d628cb']",True,True,False,False,,,False,,,,False,True,False,True,,False,cc2olx,"['3', '3.12']",https://github.com/openedx/cc2olx,True,True,True,False,False,False,False,False,False,[],[],[],[] -openedx/edx-bootstrap,,,,False,2026-06-01,False,False,False,False,19,0,,0,{},1,18,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/stylelint-config-edx"": ""2.3.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""chroma-js"": ""3.2.0"", ""classnames"": ""2.5.1"", ""gh-pages"": ""6.3.0"", ""husky"": ""9.1.7"", ""jquery"": ""3.7.1"", ""lodash"": ""4.18.1"", ""node-sass"": ""9.0.0"", ""popper.js"": ""1.16.1"", ""prop-types"": ""15.8.1"", ""react"": ""17.0.2"", ""react-dom"": ""17.0.2"", ""react-router-dom"": ""6.30.3"", ""react-router-hash-link"": ""2.4.3""}","{""bootstrap"": ""4.6.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,True,True,27,"{""total_duration"": ""2 minutes 5 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""2 minutes 5 seconds""}, {""name"": ""tests"", ""duration"": ""1 minutes 57 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2017-06-23 20:12:07,master,Bootstrap theme for Open edX,9246,23,True,False,False,False,False,False,False,2026-05-30 15:08:27,Apache License 2.0,10,True,0,0,5465,144263,0,0,0,False,False,False,False,False,False,False,@edx/edx-bootstrap,openedx,0,['https://badge.fury.io/js/%40edx%2Fedx-bootstrap: 403'],False,"['https://badge.fury.io/js/%40edx%2Fedx-bootstrap.svg', 'http://getbootstrap.com', 'https://github.com/openedx/edx-bootstrap.git', 'https://github.com/nvm-sh/nvm', 'https://openedx.slack.com/messages/C0EUBSV7D', 'https://openedx.slack.com/messages/C02BMP2RD5Y', 'https://github.com/openedx/edx-bootstrap/blob/master/LICENSE', 'https://open.edx.org/wp-content/uploads/2019/01/individual-contributor-agreement.pdf', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,True,2026-04-06,2021-08-23,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/platform-plugin-aspects,,,,True,2026-06-01,True,True,False,False,148,0,[],0,,0,0,,,60,"[""celery==5.6.3"", ""pycparser==3.0"", ""click-repl==0.3.0"", ""requests==2.34.2"", ""psutil==7.2.2"", ""typing-extensions==4.15.0"", ""asgiref==3.11.1"", ""simplejson==4.1.1"", ""click-didyoumean==0.3.1"", ""sqlparse==0.5.5"", ""edx-opaque-keys[django]==4.0.0"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""click-plugins==1.1.1.2"", ""mako==1.3.12"", ""prison==0.2.1"", ""edx-toggles==6.0.0"", ""pyyaml==6.0.3"", ""kombu==5.6.2"", ""fs==2.4.16"", ""six==1.17.0"", ""packaging==26.2"", ""python-slugify==8.0.4"", ""text-unidecode==1.3"", ""webob==1.8.9"", ""cffi==2.0.0"", ""charset-normalizer==3.4.7"", ""python-dateutil==2.9.0.post0"", ""tzlocal==5.3.1"", ""pynacl==1.6.2"", ""lxml==6.1.1"", ""click==8.4.1"", ""redis==7.4.0"", ""stevedore==5.8.0"", ""djangorestframework==3.17.1"", ""certifi==2026.5.20"", ""pytz==2026.2"", ""edx-django-utils==8.0.1"", ""openedx-atlas==0.7.0"", ""amqp==5.3.1"", ""xblock==6.1.0"", ""appdirs==1.4.4"", ""wcwidth==0.7.0"", ""web-fragments==4.0.0"", ""dnspython==2.8.0"", ""billiard==4.2.4"", ""pymongo==4.17.0"", ""superset-api-client==0.6.0"", ""code-annotations==3.0.0"", ""idna==3.16"", ""markupsafe==3.0.3"", ""urllib3==2.7.0"", ""django==5.2.14"", ""requests-oauthlib==2.0.0"", ""oauthlib==3.3.1"", ""vine==5.1.0"", ""prompt-toolkit==3.0.52"", ""tzdata==2026.2"", ""jinja2==3.1.6"", ""openedx-filters==3.4.0""]",148,"[""pydata-sphinx-theme==0.16.1"", ""pylint-celery==0.3"", ""docutils==0.21.2"", ""wheel==0.47.0"", ""isort==8.0.1"", ""edx-opaque-keys[django]==4.0.0"", ""prison==0.2.1"", ""cachetools==7.1.4"", ""django-crum==0.7.9"", ""tox==4.54.0"", ""rich==15.0.0"", ""path==16.16.0"", ""fs==2.4.16"", ""pytest==9.0.3"", ""text-unidecode==1.3"", ""webob==1.8.9"", ""cffi==2.0.0"", ""twine==6.2.0"", ""build==1.5.0"", ""billiard==4.2.4"", ""pylint-plugin-utils==0.9.0"", ""distlib==0.4.0"", ""black==26.5.1"", ""code-annotations==3.0.0"", ""id==1.6.1"", ""responses==0.26.1"", ""edx-lint==6.1.0"", ""chardet==7.4.3"", ""requests==2.34.2"", ""astroid==4.0.4"", ""pydocstyle==6.3.0"", ""typing-extensions==4.15.0"", ""simplejson==4.1.1"", ""click-didyoumean==0.3.1"", ""mako==1.3.12"", ""click-plugins==1.1.1.2"", ""restructuredtext-lint==2.0.2"", ""doc8==2.0.0"", ""python-discovery==1.3.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""packaging==26.2"", ""charset-normalizer==3.4.7"", ""python-dateutil==2.9.0.post0"", ""pip-tools==7.5.3"", ""polib==1.2.0"", ""amqp==5.3.1"", ""pathspec==1.1.1"", ""sphinxcontrib-applehelp==2.0.0"", ""pylint==4.0.5"", ""sphinx-book-theme==1.2.0"", ""dnspython==2.8.0"", ""ddt==1.7.2"", ""lxml-html-clean==0.4.5"", ""pytest-django==4.12.0"", ""django==5.2.14"", ""prompt-toolkit==3.0.52"", ""sphinxcontrib-devhelp==2.0.0"", ""tzdata==2026.2"", ""pygments==2.20.0"", ""lxml[html-clean]==6.1.1"", ""celery==5.6.3"", ""edx-i18n-tools==2.0.0"", ""pycparser==3.0"", ""click-repl==0.3.0"", ""psutil==7.2.2"", ""django-mock-queries==2.3.0"", ""accessible-pygments==0.0.5"", ""jeepney==0.9.0"", ""edx-toggles==6.0.0"", ""coverage[toml]==7.14.0"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""tomli-w==1.2.0"", ""tzlocal==5.3.1"", ""beautifulsoup4==4.14.3"", ""lxml==6.1.1"", ""keyring==25.7.0"", ""tomlkit==0.15.0"", ""secretstorage==3.5.0"", ""pytz==2026.2"", ""edx-django-utils==8.0.1"", ""filelock==3.29.0"", ""openedx-atlas==0.7.0"", ""click-log==0.4.0"", ""xblock==6.1.0"", ""babel==2.18.0"", ""more-itertools==11.1.0"", ""model-bakery==1.23.4"", ""pip==26.1.1"", ""sphinx==9.1.0"", ""pytokens==0.4.1"", ""web-fragments==4.0.0"", ""snowballstemmer==3.1.0"", ""roman-numerals==4.1.0"", ""pymongo==4.17.0"", ""mccabe==0.7.0"", ""markdown-it-py==4.2.0"", ""idna==3.16"", ""requests-oauthlib==2.0.0"", ""vine==5.1.0"", ""requests-toolbelt==1.0.0"", ""pyproject-api==1.10.0"", ""jinja2==3.1.6"", ""soupsieve==2.8.4"", ""sphinxcontrib-serializinghtml==2.0.0"", ""jaraco-functools==4.5.0"", ""asgiref==3.11.1"", ""sqlparse==0.5.5"", ""platformdirs==4.9.6"", ""django-waffle==5.0.0"", ""cryptography==48.0.0"", ""diff-cover==10.2.1"", ""setuptools==82.0.1"", ""sphinxcontrib-jsmath==1.0.1"", ""kombu==5.6.2"", ""nh3==0.3.5"", ""colorama==0.4.6"", ""python-slugify==8.0.4"", ""jaraco-context==6.1.2"", ""pynacl==1.6.2"", ""pytest-cov==7.1.0"", ""readme-renderer==44.0"", ""click==8.4.1"", ""redis==7.4.0"", ""mypy-extensions==1.1.0"", ""djangorestframework==3.17.1"", ""pycodestyle==2.14.0"", ""stevedore==5.8.0"", ""alabaster==1.0.0"", ""certifi==2026.5.20"", ""imagesize==2.0.0"", ""virtualenv==21.3.3"", ""appdirs==1.4.4"", ""wcwidth==0.7.0"", ""iniconfig==2.3.0"", ""jaraco-classes==3.4.0"", ""pyproject-hooks==1.2.0"", ""superset-api-client==0.6.0"", ""dill==0.4.1"", ""mdurl==0.1.2"", ""markupsafe==3.0.3"", ""pylint-django==2.7.0"", ""urllib3==2.7.0"", ""rfc3986==2.0.0"", ""oauthlib==3.3.1"", ""sphinxcontrib-qthelp==2.0.0"", ""pluggy==1.6.0"", ""openedx-filters==3.4.0""]",10,"[""web-fragments"", ""django-waffle"", ""edx-i18n-tools"", ""edx-django-utils"", ""edx-toggles"", ""pytest-django"", ""code-annotations"", ""xblock"", ""djangorestframework"", ""pylint-django""]",11,"[""web-fragments"", ""django-waffle"", ""edx-i18n-tools"", ""edx-django-utils"", ""edx-toggles"", ""pytest-django"", ""code-annotations"", ""xblock"", ""django-crum"", ""djangorestframework"", ""pylint-django""]",7,"[""web-fragments"", ""django-waffle"", ""edx-i18n-tools"", ""edx-django-utils"", ""edx-toggles"", ""code-annotations"", ""xblock""]",False,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""4941 minutes 58 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, quality)"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django52)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, docs)"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, pii_check)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django42)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Run tests & display coverage"", ""duration"": ""0 minutes 11 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""Run tests & display coverage"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2024-02-29 19:49:46,main,Aspects plugins for the Open edX LMS and Studio,3364,13,True,False,False,False,False,False,False,2026-06-01 00:59:59,Apache License 2.0,3,True,841,0,2484,4162,5302,225370,0,True,True,False,False,True,False,False,,openedx,1,['https://www.npmjs.com/package/@superset-ui/embedded-sdk: 403'],True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://docs.openedx.org/projects/platform-plugin-aspects', 'https://discuss.openedx.org', 'https://github.com/openedx/platform-plugin-aspects/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/platform-plugin-aspects', 'https://github.com/openedx/openedx-events', 'https://github.com/openedx/edx-platform', 'https://clickhouse.com', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html', 'https://docs.openedx.org/projects/openedx-filters/en/latest/', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/backfill.html']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,platform-plugin-aspects,"['3', '3.12']",https://github.com/openedx/platform-plugin-aspects,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/mockprock,,,,True,2026-06-01,False,False,False,False,46,0,[],0,{},1,0,{},"{""@edx/edx-proctoring"": ""^4.9.0""}",0,[],45,"[""idna==3.10"", ""edx-lint==5.6.0"", ""pylint-celery==0.3"", ""platformdirs==4.3.7"", ""jinja2==2.11.3"", ""requests==2.32.3"", ""pylint-django==2.6.1"", ""wheel==0.45.1"", ""stevedore==5.4.1"", ""isort==6.0.1"", ""pytest-cov==6.1.1"", ""click==7.1.2"", ""build==1.2.2.post1"", ""pip==24.2"", ""click-log==0.4.0"", ""pytest==8.3.5"", ""pyjwt==2.10.1"", ""jinja2==3.1.6"", ""pyproject-hooks==1.2.0"", ""python-slugify==8.0.4"", ""itsdangerous==1.1.0"", ""werkzeug==1.0.1"", ""iniconfig==2.1.0"", ""pylint-plugin-utils==0.8.2"", ""pbr==6.1.1"", ""pyyaml==6.0.2"", ""text-unidecode==1.3"", ""astroid==3.3.9"", ""flask==1.1.4"", ""code-annotations==2.3.0"", ""certifi==2025.1.31"", ""mccabe==0.7.0"", ""coverage[toml]==7.8.0"", ""pylint==3.3.6"", ""six==1.17.0"", ""packaging==25.0"", ""pluggy==1.5.0"", ""markupsafe==3.0.2"", ""setuptools==79.0.0"", ""urllib3==2.4.0"", ""dill==0.4.0"", ""tomlkit==0.13.2"", ""pip-tools==7.4.1"", ""click==8.1.8"", ""charset-normalizer==3.4.1""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,False,False,True,False,False,False,True,True,True,False,True,True,True,True,False,True,False,False,True,True,True,15,"{""total_duration"": ""0 minutes 4 seconds"", ""checks"": [{""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2018-11-16 19:08:31,master,mock proctoring package,387,8,True,False,False,False,False,False,False,2026-05-30 15:27:16,Apache License 2.0,3,False,0,0,544,1728,1928,27357,0,True,True,False,True,True,False,True,@edx/mockprock,openedx,5,[],False,['https://github.com/openedx/edx-proctoring/'],True,True,False,False,,,True,,,0,False,False,False,True,,False,mockprock,"['3', '3.11', '3.12']",,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-gradebook,,,,False,2026-06-01,True,True,False,False,47,0,,0,{},35,12,"{""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.4"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""es-check"": ""^2.3.0"", ""fetch-mock"": ""^12.2.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.7.0"", ""react-dev-utils"": ""^12.0.1"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""^1.5.3""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^6.6.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@fortawesome/fontawesome-svg-core"": ""^1.2.25"", ""@fortawesome/free-brands-svg-icons"": ""^5.11.2"", ""@fortawesome/free-solid-svg-icons"": ""^5.11.2"", ""@fortawesome/react-fontawesome"": ""^0.1.5"", ""@openedx/frontend-plugin-framework"": ""^1.6.0"", ""@openedx/paragon"": ""^23.4.5"", ""@redux-beacon/segment"": ""^1.0.0"", ""@reduxjs/toolkit"": ""^1.5.1"", ""classnames"": ""^2.2.6"", ""core-js"": ""3.6.5"", ""email-prop-type"": ""^1.1.7"", ""font-awesome"": ""4.7.0"", ""history"": ""4.10.1"", ""prop-types"": ""15.8.1"", ""query-string"": ""6.13.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-redux"": ""^7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""react-router-redux"": ""^5.0.0-alpha.9"", ""redux"": ""4.0.5"", ""redux-beacon"": ""^2.1.0"", ""redux-devtools-extension"": ""2.13.8"", ""redux-logger"": ""3.0.6"", ""redux-thunk"": ""2.3.0"", ""regenerator-runtime"": ""^0.13.7"", ""sass"": ""^1.49.0"", ""whatwg-fetch"": ""^2.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,59,"{""total_duration"": ""16540 minutes 43 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""2 minutes 53 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2018-10-17 15:49:15,master,Instructor grade book tool,11357,117,True,False,False,False,False,False,False,2026-05-20 13:24:10,GNU AGPLv3,16,True,0,0,381,559794,1890,0,0,False,False,False,False,True,False,False,@edx/frontend-app-gradebook,openedx,0,"['http://apps.local.openedx.io/gradebook/course-v1: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: /gradebook/course-v1 (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://travis-ci.com/edx/frontend-app-gradebook: 404']",False,"['https://docs.openedx.org/en/latest/educators/how-tos/data/view_learner_grades.html', 'https://docs.openedx.org/en/latest/educators/how-tos/data/manage_learner_grades.html', 'https://github.com/openedx/frontend-app-gradebook.git', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-plugin-framework', 'https://webpack.js.org/', 'https://github.com/edx-unsupported/frontend-auth', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-gradebook/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://api.travis-ci.com/edx/frontend-app-gradebook.svg?branch=master', 'https://img.shields.io/codecov/c/gh/openedx/frontend-app-gradebook', 'https://app.codecov.io/gh/openedx/frontend-app-gradebook', 'https://img.shields.io/npm/v/@edx/frontend-app-gradebook.svg', 'https://img.shields.io/npm/dt/@edx/frontend-app-gradebook.svg', 'https://img.shields.io/npm/l/@edx/frontend-app-gradebook.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xblock-sdk,,,,True,2026-06-01,True,True,False,False,84,0,[],0,,0,0,,,41,"[""botocore==1.43.14"", ""pytz==2026.2"", ""jinja2==3.1.6"", ""certifi==2026.5.20"", ""arrow==1.4.0"", ""lxml==6.1.1"", ""s3transfer==0.17.0"", ""asgiref==3.11.1"", ""charset-normalizer==3.4.7"", ""markdown-it-py==4.2.0"", ""pypng==0.20220715.0"", ""tzdata==2026.2"", ""click==8.4.1"", ""python-slugify==8.0.4"", ""cookiecutter==2.7.1"", ""python-dateutil==2.9.0.post0"", ""requests==2.34.2"", ""mdurl==0.1.2"", ""sqlparse==0.5.5"", ""six==1.17.0"", ""markupsafe==3.0.3"", ""openedx-django-pyfs==4.0.0"", ""appdirs==1.4.4"", ""boto3==1.43.14"", ""jmespath==1.1.0"", ""pyyaml==6.0.3"", ""simplejson==4.1.1"", ""text-unidecode==1.3"", ""idna==3.16"", ""web-fragments==4.0.0"", ""mako==1.3.12"", ""fs-s3fs==1.1.1"", ""django==5.2.14"", ""lazy==1.6"", ""urllib3==2.7.0"", ""binaryornot==0.6.0"", ""rich==15.0.0"", ""webob==1.8.9"", ""xblock[django]==6.1.0"", ""pygments==2.20.0"", ""fs==2.4.16""]",84,"[""virtualenv==21.3.3"", ""botocore==1.43.14"", ""code-annotations==3.0.0"", ""jinja2==3.1.6"", ""certifi==2026.5.20"", ""mccabe==0.7.0"", ""packaging==26.2"", ""tomlkit==0.15.0"", ""python-slugify==8.0.4"", ""pyproject-hooks==1.2.0"", ""mdurl==0.1.2"", ""pylint-django==2.7.0"", ""coverage[toml]==7.14.0"", ""urllib3==2.7.0"", ""pluggy==1.6.0"", ""platformdirs==4.9.6"", ""s3transfer==0.17.0"", ""asgiref==3.11.1"", ""charset-normalizer==3.4.7"", ""mock==5.2.0"", ""cookiecutter==2.7.1"", ""requests==2.34.2"", ""ddt==1.7.2"", ""sqlparse==0.5.5"", ""openedx-django-pyfs==4.0.0"", ""stevedore==5.8.0"", ""pyyaml==6.0.3"", ""click-log==0.4.0"", ""build==1.5.0"", ""tomli-w==1.2.0"", ""django==5.2.14"", ""lazy==1.6"", ""pyproject-api==1.10.0"", ""iniconfig==2.3.0"", ""filelock==3.29.0"", ""xblock[django]==6.1.0"", ""wheel==0.47.0"", ""distlib==0.4.0"", ""pytz==2026.2"", ""edx-lint==6.1.0"", ""astroid==4.0.4"", ""pip==26.1.1"", ""lxml==6.1.1"", ""markdown-it-py==4.2.0"", ""pypng==0.20220715.0"", ""tzdata==2026.2"", ""click==8.4.1"", ""pip-tools==7.5.3"", ""pydocstyle==6.3.0"", ""cachetools==7.1.4"", ""six==1.17.0"", ""tox==4.54.0"", ""appdirs==1.4.4"", ""jmespath==1.1.0"", ""simplejson==4.1.1"", ""web-fragments==4.0.0"", ""mako==1.3.12"", ""pycodestyle==2.14.0"", ""binaryornot==0.6.0"", ""rich==15.0.0"", ""acid-xblock==0.4.1"", ""pygments==2.20.0"", ""arrow==1.4.0"", ""snowballstemmer==3.0.1"", ""pytest-rerunfailures==16.3"", ""pylint-celery==0.3"", ""pytest-cov==7.1.0"", ""python-discovery==1.3.1"", ""setuptools==81.0.0"", ""pylint-plugin-utils==0.9.0"", ""python-dateutil==2.9.0.post0"", ""pytest-django==4.12.0"", ""isort==8.0.1"", ""markupsafe==3.0.3"", ""boto3==1.43.14"", ""pytest==9.0.3"", ""text-unidecode==1.3"", ""dill==0.4.1"", ""idna==3.16"", ""colorama==0.4.6"", ""fs-s3fs==1.1.1"", ""webob==1.8.9"", ""pylint==4.0.5"", ""fs==2.4.16""]",4,"[""pytest-django"", ""code-annotations"", ""pylint-django"", ""web-fragments""]",4,"[""pytest-django"", ""code-annotations"", ""pylint-django"", ""web-fragments""]",2,"[""code-annotations"", ""web-fragments""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,34,"{""total_duration"": ""1042 minutes 22 seconds"", ""checks"": [{""name"": ""run_tests (3.12, quality)"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""run_tests (3.12, django42)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""run_tests (3.12, django52)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 50 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2014-03-06 20:34:41,master,Workbench and example xblocks,1863,104,True,False,False,False,False,False,False,2026-05-31 00:35:20,Apache License 2.0,2,True,14419,0,8069,237802,3559,134328,0,True,True,False,False,True,False,False,,openedx,3,"['http://docs.seleniumhq.org/: HTTPConnectionPool(host=\'docs.seleniumhq.org\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'docs.seleniumhq.org\', port=80): Failed to resolve \'docs.seleniumhq.org\' ([Errno -2] Name or service not known)""))', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403', 'https://docs.openedx.org/projects/xblock-sdk: 404', 'https://github.com/openedx/xblock-sdk/blob/main/LICENSE.txt: 404']",True,"['https://docs.djangoproject.com/en/1.11/topics/testing/tools/', 'http://coverage.readthedocs.org/', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/sdk/get_started_sdk.html', 'https://discuss.openedx.org', 'https://github.com/openedx/xblock-sdk/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/xblock-sdk', 'https://img.shields.io/pypi/v/xblock-sdk.svg', 'https://pypi.python.org/pypi/xblock-sdk/', 'https://github.com/openedx/xblock-sdk/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/xblock-sdk/actions', 'https://codecov.io/github/openedx/xblock-sdk/coverage.svg?branch=main', 'https://codecov.io/github/openedx/xblock-sdk?branch=main', 'https://readthedocs.org/projects/xblock-sdk/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/xblock-sdk.svg', 'https://img.shields.io/github/license/openedx/xblock-sdk.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/index.html', 'https://openedx.atlassian.net/wiki/display/OPEN/XBlock+review+guidelines', 'https://github.com/openedx/xblock-sdk/blob/master/sample_xblocks/README.rst', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/43385346/XBlocks+Directory']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-sdk,"['3', '3.12']",,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/help-tokens,,,,True,2026-06-01,True,True,False,False,92,0,[],0,,0,0,,,5,"[""asgiref==3.8.1"", ""sqlparse==0.4.4"", ""backports-zoneinfo==0.2.1 ; python_version < \""3.9\"""", ""typing-extensions==4.10.0"", ""django==4.2.11""]",92,"[""snowballstemmer==3.1.0"", ""dill==0.4.1"", ""lxml[html-clean]==6.1.1"", ""pylint-celery==0.3"", ""markupsafe==3.0.3"", ""jinja2==3.1.6"", ""backports-zoneinfo==0.2.1 ; python_version < \""3.9\"""", ""pylint-plugin-utils==0.9.0"", ""secretstorage==3.5.0"", ""pylint==4.0.5"", ""six==1.17.0"", ""chardet==7.4.3"", ""platformdirs==4.9.6"", ""code-annotations==3.0.0"", ""astroid==4.0.4"", ""distlib==0.4.0"", ""jaraco-context==6.1.2"", ""pyproject-hooks==1.2.0"", ""more-itertools==11.1.0"", ""pluggy==1.6.0"", ""requests-toolbelt==1.0.0"", ""pytest-django==4.12.0"", ""pygments==2.20.0"", ""docutils==0.22.4"", ""filelock==3.29.0"", ""keyring==25.7.0"", ""markdown-it-py==4.2.0"", ""asgiref==3.8.1"", ""cffi==2.0.0"", ""polib==1.2.0"", ""twine==6.2.0"", ""stevedore==5.8.0"", ""click==8.4.1"", ""requests==2.34.2"", ""wheel==0.47.0"", ""sqlparse==0.4.4"", ""pip-tools==7.5.3"", ""django==4.2.11"", ""certifi==2026.5.20"", ""jaraco-functools==4.5.0"", ""pip==26.1.1"", ""readme-renderer==44.0"", ""rich==15.0.0"", ""pytest==9.0.3"", ""packaging==26.2"", ""pyproject-api==1.10.0"", ""pytest-cov==7.1.0"", ""isort==8.0.1"", ""nh3==0.3.5"", ""jaraco-classes==3.4.0"", ""urllib3==2.7.0"", ""click-log==0.4.0"", ""mccabe==0.7.0"", ""lxml-html-clean==0.4.5"", ""charset-normalizer==3.4.7"", ""pytest-catchlog==1.2.2"", ""coverage==7.14.1"", ""sqlparse==0.5.5"", ""diff-cover==10.2.1"", ""python-discovery==1.3.1"", ""setuptools==82.0.1"", ""pycparser==3.0"", ""pylint-django==2.7.0"", ""codecov==2.1.13"", ""edx-i18n-tools==2.0.0"", ""virtualenv==21.3.3"", ""tox==4.54.0"", ""text-unidecode==1.3"", ""tomlkit==0.15.0"", ""tomli-w==1.2.0"", ""pyyaml==6.0.3"", ""rfc3986==2.0.0"", ""idna==3.16"", ""django==5.2.14"", ""id==1.6.1"", ""typing-extensions==4.10.0"", ""path==16.16.0"", ""iniconfig==2.3.0"", ""coverage[toml]==7.14.1"", ""python-slugify==8.0.4"", ""edx-lint==6.1.0"", ""cachetools==7.1.4"", ""mdurl==0.1.2"", ""pydocstyle==6.3.0"", ""build==1.5.0"", ""pycodestyle==2.14.0"", ""py==1.11.0"", ""colorama==0.4.6"", ""jeepney==0.9.0"", ""asgiref==3.11.1"", ""cryptography==48.0.0"", ""edx-django-release-util==1.5.0""]",5,"[""edx-i18n-tools"", ""pytest-django"", ""code-annotations"", ""edx-django-release-util"", ""pylint-django""]",5,"[""edx-i18n-tools"", ""pytest-django"", ""code-annotations"", ""edx-django-release-util"", ""pylint-django""]",3,"[""edx-i18n-tools"", ""code-annotations"", ""edx-django-release-util""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,61,"{""total_duration"": ""0 minutes 41 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 22 seconds""}]}",Other,2017-04-26 19:09:45,master,A Django app for resolving help tokens to full URLs.,340,6,True,False,False,False,False,False,False,2026-05-30 15:26:30,GNU AGPLv3,6,True,0,0,0,0,3137,15760,0,True,True,False,False,True,False,False,,openedx,2,[],True,"['https://docs.openedx.org/en/latest/learners', 'https://docs.openedx.org/en/latest/educators', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/help-tokens/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/help-tokens/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/help-tokens.svg', 'https://pypi.python.org/pypi/help-tokens/', 'https://github.com/openedx/help-tokens/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/help-tokens/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/help-tokens/coverage.svg?branch=master', 'http://codecov.io/github/edx/help-tokens?branch=master', 'https://img.shields.io/pypi/pyversions/help-tokens.svg', 'https://img.shields.io/github/license/edx/help-tokens.svg', 'https://github.com/openedx/help-tokens/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,help-tokens,"['3', '3.11', '3.12']",https://github.com/openedx/help-tokens,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/xblock-free-text-response,,,,True,2026-06-01,True,True,False,False,81,0,[],0,{},0,3,"{""eslint"": ""8.12.0"", ""less"": ""4.1.2"", ""csslint"": ""1.0.5""}",{},16,"[""pyyaml==6.0.2"", ""django==4.2.19"", ""fs==2.4.16"", ""markupsafe==3.0.2"", ""python-dateutil==2.9.0.post0"", ""xblock==5.1.2"", ""appdirs==1.4.4"", ""pytz==2025.1"", ""lxml==4.9.4"", ""six==1.17.0"", ""webob==1.8.9"", ""web-fragments==2.2.0"", ""asgiref==3.8.1"", ""sqlparse==0.5.3"", ""simplejson==3.19.3"", ""mako==1.3.9""]",78,"[""pyyaml==6.0.2"", ""markdown-it-py==3.0.0"", ""python-dateutil==2.9.0.post0"", ""coveralls==4.0.1"", ""rich==13.9.4"", ""jinja2==3.1.5"", ""sqlparse==0.5.3"", ""python-slugify==8.0.4"", ""s3transfer==0.11.2"", ""wheel==0.45.1"", ""jmespath==1.0.1"", ""filelock==3.17.0"", ""binaryornot==0.4.4"", ""pbr==6.1.1"", ""pygments==2.19.1"", ""requests==2.32.3"", ""six==1.17.0"", ""packaging==24.2"", ""docopt==0.6.2"", ""pluggy==1.5.0"", ""setuptools==75.8.0"", ""virtualenv==20.29.2"", ""web-fragments==2.2.0"", ""webob==1.8.9"", ""pylint==3.3.4"", ""certifi==2025.1.31"", ""coverage==7.6.11"", ""build==1.2.2.post1"", ""edx-opaque-keys==2.11.0"", ""cookiecutter==2.6.0"", ""mako==1.3.9"", ""stevedore==5.4.0"", ""text-unidecode==1.3"", ""lxml==4.9.4"", ""lazy==1.6"", ""asgiref==3.8.1"", ""mock==5.1.0"", ""xblock-sdk==0.12.0"", ""botocore==1.36.17"", ""pyproject-api==1.9.0"", ""simplejson==3.19.3"", ""typing-extensions==4.12.2"", ""markupsafe==3.0.2"", ""appdirs==1.4.4"", ""fs-s3fs==1.1.1"", ""pypng==0.20220715.0"", ""urllib3==2.2.3"", ""pytz==2025.1"", ""distlib==0.3.9"", ""types-python-dateutil==2.9.0.20241206"", ""tomlkit==0.13.2"", ""django==4.2.19"", ""astroid==3.3.8"", ""xblock==5.1.2"", ""isort==6.0.0"", ""ddt==1.7.2"", ""click==8.1.8"", ""tox==4.24.1"", ""django-pyfs==3.2.0"", ""cachetools==5.5.1"", ""colorama==0.4.6"", ""pymongo==4.11.1"", ""charset-normalizer==3.4.1"", ""pyproject-hooks==1.2.0"", ""coverage[toml]==7.6.11"", ""chardet==5.2.0"", ""boto3==1.36.17"", ""pip-tools==7.4.1"", ""pycodestyle==2.12.1"", ""dnspython==2.7.0"", ""mccabe==0.7.0"", ""arrow==1.3.0"", ""pip==24.2"", ""idna==3.10"", ""fs==2.4.16"", ""platformdirs==4.3.6"", ""mdurl==0.1.2"", ""dill==0.3.9""]",5,"[""web-fragments"", ""xblock"", ""django-pyfs"", ""edx-opaque-keys"", ""xblock-sdk""]",5,"[""web-fragments"", ""xblock"", ""django-pyfs"", ""edx-opaque-keys"", ""xblock-sdk""]",4,"[""xblock"", ""edx-opaque-keys"", ""xblock-sdk"", ""web-fragments""]",False,,True,False,True,False,False,False,True,True,True,True,True,True,True,True,False,True,True,False,True,False,False,15,"{""total_duration"": ""71852 minutes 58 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, translations_validate)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, translations_validate)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, csslint)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, quality)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, django52)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, eslint)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, eslint)"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2020-01-27 18:09:29,master,,428,18,True,False,False,False,True,False,False,2026-05-15 04:57:19,GNU AGPLv3,4,True,3078,236,2484,7271,6853,58878,0,False,True,False,False,True,False,False,,openedx,7,[],False,"['https://coveralls.io/repos/github/Stanford-Online/xblock-free-text-response/badge.svg?branch=master', 'https://coveralls.io/github/Stanford-Online/xblock-free-text-response?branch=master', 'https://github.com/openedx/xblock-free-text-response/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/xblock-free-text-response/actions?query=workflow%3A%22Python+CI%22']",True,True,False,False,,,True,,,0,False,True,False,False,,False,xblock-free-text-response,"['3', '3.11', '3.12']",https://github.com/Stanford-Online/xblock-free-text-response,True,True,True,False,False,False,False,False,False,[],[],[],[] -openedx/frontend-app-communications,,,,False,2026-06-01,False,False,False,False,39,0,,0,{},29,10,"{""@edx/browserslist-config"": ""^1.2.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""axios-mock-adapter"": ""1.21.2"", ""glob"": ""7.2.3"", ""jest"": ""29.7.0"", ""prettier"": ""2.8.1"", ""rosie"": ""2.1.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^6.6.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@edx/tinymce-language-selector"": ""1.1.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.0"", ""@openedx/frontend-plugin-framework"": ""^1.6.0"", ""@openedx/paragon"": ""^23.3.0"", ""@tinymce/tinymce-react"": ""3.14.0"", ""axios"": ""0.27.2"", ""classnames"": ""2.3.2"", ""core-js"": ""3.26.1"", ""jquery"": ""3.6.1"", ""popper.js"": ""1.16.1"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""redux"": ""4.2.0"", ""regenerator-runtime"": ""0.13.11"", ""tinymce"": ""5.10.7""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,21,"{""total_duration"": ""23617 minutes 5 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 29 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2021-12-03 16:33:28,master,Frontend to manage instructor-learner communications,5221,62,True,False,False,False,False,False,False,2026-06-01 00:36:20,GNU AGPLv3,3,True,0,0,386,152177,1716,0,0,False,False,False,False,False,False,False,@edx/frontend-app-communications,openedx,0,"['https://openedx.org/slack: 403', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-communications: 404']",False,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/edx/frontend-app-communications.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-communications/issues', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-communications.svg', 'https://github.com/openedx/frontend-app-communications/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-communications/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-communications?branch=master']",True,True,False,False,,,True,2022-12-12,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/browserslist-config,,,,False,2026-06-01,False,False,False,False,1,0,,0,{},0,1,"{""browserslist"": ""4.24.2""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,False,False,True,1,"{""total_duration"": ""0 minutes 20 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2021-11-02 20:06:24,master,,41,6,True,False,False,False,False,False,False,2026-05-20 13:27:14,GNU AGPLv3,0,False,0,0,0,341,0,0,0,False,False,False,False,False,False,False,@edx/browserslist-config,openedx,0,['https://www.npmjs.com/package/@edx/browserslist-config: 403'],False,"['https://img.shields.io/npm/l/@edx/browserslist-config', 'https://img.shields.io/npm/v/@edx/browserslist-config', 'https://github.com/browserslist/browserslist', 'https://support.edx.org/hc/en-us/articles/206211848-What-are-the-system-requirements-and-supported-browsers-on-edX']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/auth-backends,,,,True,2026-06-01,True,True,False,False,76,0,[],0,,0,0,,,33,"[""edx-django-utils==8.0.1"", ""python3-openid==3.2.0"", ""text-unidecode==1.3"", ""social-auth-core==4.8.5"", ""requests==2.32.5"", ""certifi==2026.2.25"", ""asgiref==3.11.1"", ""six==1.17.0"", ""pycparser==3.0"", ""code-annotations==2.3.2"", ""defusedxml==0.7.1"", ""charset-normalizer==3.4.5"", ""markupsafe==3.0.3"", ""edx-toggles==5.4.1"", ""jinja2==3.1.6"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""oauthlib==3.3.1"", ""django==5.2.12"", ""pynacl==1.6.2"", ""idna==3.11"", ""pyyaml==6.0.3"", ""requests-oauthlib==2.0.0"", ""urllib3==2.6.3"", ""social-auth-app-django==5.7.0"", ""cryptography==46.0.5"", ""sqlparse==0.5.5"", ""django-crum==0.7.9"", ""pyjwt[crypto]==2.11.0"", ""click==8.3.1"", ""cffi==2.0.0"", ""django-waffle==5.0.0"", ""python-slugify==8.0.4""]",76,"[""astroid==4.0.4"", ""dill==0.4.1"", ""pylint==4.0.5"", ""edx-django-release-util==1.5.0"", ""edx-django-utils==8.0.1"", ""python3-openid==3.2.0"", ""unittest2==1.1.0"", ""pycodestyle==2.14.0"", ""pyproject-hooks==1.2.0"", ""text-unidecode==1.3"", ""social-auth-core==4.8.5"", ""isort==8.0.1"", ""pygments==2.19.2"", ""requests==2.32.5"", ""setuptools==82.0.0"", ""certifi==2026.2.25"", ""asgiref==3.11.1"", ""tomlkit==0.14.0"", ""six==1.17.0"", ""defusedxml==0.7.1"", ""code-annotations==2.3.2"", ""pycparser==3.0"", ""charset-normalizer==3.4.5"", ""markupsafe==3.0.3"", ""edx-toggles==5.4.1"", ""filelock==3.25.0"", ""pylint-celery==0.3"", ""pylint-django==2.7.0"", ""coverage[toml]==7.13.4"", ""packaging==26.0"", ""pip==26.0.1"", ""linecache2==1.0.0"", ""argparse==1.4.0"", ""jinja2==3.1.6"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""django==5.2.12"", ""oauthlib==3.3.1"", ""pytest-django==4.12.0"", ""platformdirs==4.9.4"", ""pynacl==1.6.2"", ""idna==3.11"", ""pyyaml==6.0.3"", ""py==1.11.0"", ""traceback2==1.4.0"", ""typing-extensions==4.15.0"", ""wheel==0.46.3"", ""ddt==1.7.2"", ""httpretty==1.1.4"", ""pluggy==1.6.0"", ""pip-tools==7.5.3"", ""build==1.4.0"", ""pylint-plugin-utils==0.9.0"", ""distlib==0.4.0"", ""requests-oauthlib==2.0.0"", ""click-log==0.4.0"", ""urllib3==2.6.3"", ""social-auth-app-django==5.7.0"", ""cryptography==46.0.5"", ""pytest==9.0.2"", ""pytest-cov==7.0.0"", ""edx-lint==5.6.0"", ""tox==3.28.0"", ""sqlparse==0.5.5"", ""mccabe==0.7.0"", ""django-crum==0.7.9"", ""pyjwt[crypto]==2.11.0"", ""virtualenv==21.1.0"", ""pycryptodomex==3.23.0"", ""click==8.3.1"", ""cffi==2.0.0"", ""iniconfig==2.3.0"", ""python-discovery==1.1.0"", ""django-waffle==5.0.0"", ""responses==0.26.0"", ""python-slugify==8.0.4""]",8,"[""edx-toggles"", ""pytest-django"", ""django-waffle"", ""pylint-django"", ""code-annotations"", ""edx-django-release-util"", ""edx-django-utils"", ""social-auth-app-django""]",9,"[""edx-toggles"", ""pytest-django"", ""django-waffle"", ""pylint-django"", ""code-annotations"", ""edx-django-release-util"", ""django-crum"", ""edx-django-utils"", ""social-auth-app-django""]",6,"[""edx-toggles"", ""django-waffle"", ""code-annotations"", ""edx-django-release-util"", ""edx-django-utils"", ""social-auth-app-django""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,False,True,True,18,"{""total_duration"": ""0 minutes 44 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 32 seconds""}]}",Other,2015-02-17 19:08:53,master,Custom authentication backends and views for edX services,411,24,True,False,False,False,False,False,False,2026-05-30 14:58:12,GNU AGPLv3,5,True,0,0,0,0,2244,41146,0,True,True,False,False,True,False,False,,openedx,4,"['http://edx.devstack.lms: HTTPConnectionPool(host=\'edx.devstack.lms\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'edx.devstack.lms\', port=80): Failed to resolve \'edx.devstack.lms\' ([Errno -2] Name or service not known)""))']",False,"['https://github.com/openedx/auth-backends/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/auth-backends/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/auth-backends/coverage.svg?branch=master', 'http://codecov.io/github/edx/auth-backends?branch=master', 'https://courses.stage.edx.org', 'http://python-social-auth.readthedocs.io/en/latest/strategies.html', 'https://github.com/openedx/auth-backends/releases', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,edx-auth-backends,"['3', '3.12']",https://github.com/openedx/auth-backends,True,True,True,True,False,False,False,False,False,[],[],,[] -openedx/enterprise-subsidy,,,,True,2026-06-01,True,True,False,False,178,0,[],0,,0,0,,,92,"[""getsmarter-api-clients==0.6.3"", ""edx-toggles==5.4.1"", ""pyyaml==6.0.3"", ""referencing==0.37.0"", ""idna==3.11"", ""sqlparse==0.5.5"", ""code-annotations==2.3.0"", ""markupsafe==3.0.3"", ""typing-extensions==4.15.0"", ""h11==0.16.0"", ""jsonfield2==4.0.0.post0"", ""openedx-events==10.5.0"", ""redis==7.1.0"", ""openedx-ledger==1.6.15"", ""requests-oauthlib==2.0.0"", ""certifi==2026.1.4"", ""ply==3.11"", ""six==1.17.0"", ""edx-django-release-util==1.5.0"", ""attrs==25.4.0"", ""django-log-request-id==2.1.0"", ""django-model-utils==5.0.0"", ""pymongo==4.16.0"", ""django==5.2.10"", ""python-dateutil==2.9.0.post0"", ""text-unidecode==1.3"", ""httpx==0.28.1"", ""rules==3.5"", ""social-auth-core==4.8.3"", ""edx-auth-backends==4.6.2"", ""django-object-actions==5.0.0"", ""cryptography==46.0.3"", ""django-waffle==5.0.0"", ""python-memcached==1.62"", ""urllib3==2.6.3"", ""packaging==25.0"", ""djangoql==0.18.1"", ""django-clearcache==1.2.1"", ""jsonschema-specifications==2025.9.1"", ""greenlet==3.3.0"", ""edx-opaque-keys[django]==3.0.0"", ""confluent-kafka[avro,schema-registry]==2.13.0"", ""cffi==2.0.0"", ""avro==1.12.1"", ""dnspython==2.8.0"", ""oauthlib==3.3.1"", ""drf-spectacular==0.29.0"", ""authlib==1.6.6"", ""pymemcache==4.0.0"", ""defusedxml==0.7.1"", ""httpcore==1.0.9"", ""semantic-version==2.10.0"", ""djangorestframework==3.16.1"", ""edx-ccx-keys==2.0.2"", ""jsonschema==4.26.0"", ""click==8.3.1"", ""rpds-py==0.30.0"", ""django-crum==0.7.9"", ""cachetools==6.2.4"", ""edx-django-utils==8.0.1"", ""edx-drf-extensions==10.6.0"", ""zope-interface==8.2"", ""drf-yasg==1.21.11"", ""drf-jwt==1.19.2"", ""django-filter==25.2"", ""asgiref==3.11.0"", ""django-simple-history==3.4.0"", ""stevedore==5.6.0"", ""mysqlclient==2.2.7"", ""gevent==25.9.1"", ""gunicorn==23.0.0"", ""edx-rbac==2.1.0"", ""fastavro==1.12.1"", ""requests==2.32.5"", ""pyjwt[crypto]==2.10.1"", ""python-slugify==8.0.4"", ""pycparser==2.23"", ""edx-rest-api-client==6.2.0"", ""pynacl==1.6.2"", ""django-extensions==4.1"", ""zope-event==6.1"", ""jinja2==3.1.6"", ""uritemplate==4.2.0"", ""python3-openid==3.2.0"", ""charset-normalizer==3.4.4"", ""pytz==2025.2"", ""social-auth-app-django==5.7.0"", ""psutil==7.2.1"", ""edx-event-bus-kafka==6.1.0"", ""anyio==4.12.1"", ""django-cors-headers==4.9.0"", ""inflection==0.5.1""]",178,"[""django-test-migrations==1.5.0"", ""getsmarter-api-clients==0.6.3"", ""soupsieve==2.8.1"", ""edx-toggles==5.4.1"", ""pyyaml==6.0.3"", ""pydata-sphinx-theme==0.15.4"", ""roman-numerals==4.1.0"", ""referencing==0.37.0"", ""virtualenv==20.36.1"", ""idna==3.11"", ""jaraco-functools==4.4.0"", ""sqlparse==0.5.5"", ""code-annotations==2.3.0"", ""rfc3986==2.0.0"", ""factory-boy==3.3.3"", ""markupsafe==3.0.3"", ""setuptools==80.9.0"", ""typing-extensions==4.15.0"", ""h11==0.16.0"", ""jsonfield2==4.0.0.post0"", ""openedx-events==10.5.0"", ""path==16.16.0"", ""coverage[toml]==7.13.1"", ""polib==1.2.0"", ""redis==7.1.0"", ""openedx-ledger==1.6.15"", ""requests-oauthlib==2.0.0"", ""accessible-pygments==0.0.5"", ""certifi==2026.1.4"", ""ddt==1.7.2"", ""babel==2.17.0"", ""ply==3.11"", ""six==1.17.0"", ""sphinxcontrib-qthelp==2.0.0"", ""astroid==4.0.3"", ""edx-django-release-util==1.5.0"", ""pylint-plugin-utils==0.9.0"", ""tzdata==2025.3"", ""attrs==25.4.0"", ""colorama==0.4.6"", ""sphinxcontrib-serializinghtml==2.0.0"", ""more-itertools==10.8.0"", ""imagesize==1.4.1"", ""django-log-request-id==2.1.0"", ""sphinx==9.1.0"", ""readme-renderer==44.0"", ""lxml-html-clean==0.4.3"", ""django-model-utils==5.0.0"", ""pydocstyle==6.3.0"", ""rich==14.2.0"", ""lxml[html-clean]==6.0.2"", ""pluggy==1.6.0"", ""pymongo==4.16.0"", ""django==5.2.10"", ""pyproject-api==1.10.0"", ""python-dateutil==2.9.0.post0"", ""text-unidecode==1.3"", ""diff-cover==10.2.0"", ""httpx==0.28.1"", ""keyring==25.7.0"", ""rules==3.5"", ""tox==4.34.1"", ""social-auth-core==4.8.3"", ""edx-auth-backends==4.6.2"", ""docutils==0.21.2"", ""django-object-actions==5.0.0"", ""pylint-celery==0.3"", ""cryptography==46.0.3"", ""alabaster==1.0.0"", ""django-waffle==5.0.0"", ""django-dynamic-fixture==4.0.1"", ""wheel==0.45.1"", ""python-memcached==1.62"", ""urllib3==2.6.3"", ""packaging==25.0"", ""djangoql==0.18.1"", ""django-clearcache==1.2.1"", ""iniconfig==2.3.0"", ""jsonschema-specifications==2025.9.1"", ""mccabe==0.7.0"", ""doc8==2.0.0"", ""greenlet==3.3.0"", ""tomlkit==0.13.3"", ""id==1.5.0"", ""platformdirs==4.5.1"", ""edx-opaque-keys[django]==3.0.0"", ""confluent-kafka[avro,schema-registry]==2.13.0"", ""faker==40.1.0"", ""cffi==2.0.0"", ""secretstorage==3.5.0"", ""avro==1.12.1"", ""dill==0.4.0"", ""pycodestyle==2.14.0"", ""dnspython==2.8.0"", ""edx-lint==5.6.0"", ""oauthlib==3.3.1"", ""sphinxcontrib-devhelp==2.0.0"", ""drf-spectacular==0.29.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""authlib==1.6.6"", ""pymemcache==4.0.0"", ""defusedxml==0.7.1"", ""httpcore==1.0.9"", ""pygments==2.19.2"", ""pytest-django==4.11.1"", ""pylint==4.0.4"", ""semantic-version==2.10.0"", ""snowballstemmer==3.0.1"", ""djangorestframework==3.16.1"", ""edx-ccx-keys==2.0.2"", ""jsonschema==4.26.0"", ""click==8.3.1"", ""rpds-py==0.30.0"", ""mdurl==0.1.2"", ""sphinx-book-theme==1.1.4"", ""pytest==9.0.2"", ""pyproject-hooks==1.2.0"", ""django-crum==0.7.9"", ""cachetools==6.2.4"", ""edx-django-utils==8.0.1"", ""edx-drf-extensions==10.6.0"", ""zope-interface==8.2"", ""drf-yasg==1.21.11"", ""drf-jwt==1.19.2"", ""pylint-django==2.7.0"", ""django-filter==25.2"", ""asgiref==3.11.0"", ""django-simple-history==3.4.0"", ""isort==7.0.0"", ""stevedore==5.6.0"", ""pip-tools==7.5.2"", ""mysqlclient==2.2.7"", ""build==1.4.0"", ""chardet==5.2.0"", ""twine==6.2.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""gevent==25.9.1"", ""gunicorn==23.0.0"", ""requests-toolbelt==1.0.0"", ""edx-rbac==2.1.0"", ""fastavro==1.12.1"", ""requests==2.32.5"", ""pyjwt[crypto]==2.10.1"", ""responses==0.25.8"", ""python-slugify==8.0.4"", ""pycparser==2.23"", ""edx-rest-api-client==6.2.0"", ""docutils==0.22.4"", ""pytest-cov==7.0.0"", ""filelock==3.20.3"", ""beautifulsoup4==4.14.3"", ""distlib==0.4.0"", ""pynacl==1.6.2"", ""jaraco-context==6.0.2"", ""django-debug-toolbar==6.1.0"", ""jeepney==0.9.0"", ""nh3==0.3.2"", ""django-extensions==4.1"", ""edx-i18n-tools==1.9.0"", ""zope-event==6.1"", ""jinja2==3.1.6"", ""uritemplate==4.2.0"", ""mock==5.2.0"", ""python3-openid==3.2.0"", ""charset-normalizer==3.4.4"", ""pytz==2025.2"", ""click-log==0.4.0"", ""jaraco-classes==3.4.0"", ""social-auth-app-django==5.7.0"", ""psutil==7.2.1"", ""pip==25.3"", ""restructuredtext-lint==2.0.2"", ""markdown-it-py==4.0.0"", ""edx-event-bus-kafka==6.1.0"", ""anyio==4.12.1"", ""django-cors-headers==4.9.0"", ""inflection==0.5.1""]",20,"[""edx-drf-extensions"", ""edx-rest-api-client"", ""django-extensions"", ""django-waffle"", ""djangorestframework"", ""django-debug-toolbar"", ""edx-toggles"", ""edx-i18n-tools"", ""pytest-django"", ""edx-django-utils"", ""django-filter"", ""factory-boy"", ""code-annotations"", ""edx-rbac"", ""django-object-actions"", ""edx-auth-backends"", ""social-auth-app-django"", ""django-cors-headers"", ""pylint-django"", ""edx-django-release-util""]",28,"[""edx-drf-extensions"", ""edx-rest-api-client"", ""django-extensions"", ""drf-jwt"", ""django-waffle"", ""djangorestframework"", ""django-debug-toolbar"", ""rules"", ""edx-toggles"", ""edx-i18n-tools"", ""drf-yasg"", ""pytest-django"", ""edx-django-utils"", ""django-filter"", ""factory-boy"", ""django-simple-history"", ""code-annotations"", ""edx-rbac"", ""django-object-actions"", ""edx-auth-backends"", ""social-auth-app-django"", ""django-dynamic-fixture"", ""django-crum"", ""django-model-utils"", ""django-cors-headers"", ""pylint-django"", ""authlib"", ""edx-django-release-util""]",15,"[""edx-drf-extensions"", ""edx-rest-api-client"", ""django-debug-toolbar"", ""edx-toggles"", ""edx-i18n-tools"", ""django-extensions"", ""code-annotations"", ""edx-rbac"", ""edx-django-utils"", ""django-waffle"", ""django-cors-headers"", ""django-filter"", ""edx-auth-backends"", ""social-auth-app-django"", ""edx-django-release-util""]",False,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,False,True,True,True,True,True,96,"{""total_duration"": ""24014 minutes 25 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""360 minutes 14 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""3 minutes 44 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2022-12-21 21:18:24,main,Captures and balances enterprise-subsidized transactions.,1997,13,True,False,False,False,False,False,False,2026-05-18 20:36:24,GNU AGPLv3,4,True,0,0,856,0,10403,687743,2314,True,True,False,False,True,False,False,,openedx,3,['https://open-edx-backstage.herokuapp.com/catalog/default/component/enterprise-subsidy: 404'],True,"['https://github.com/openedx/enterprise-subsidy/tree/main/docs/decisions', 'https://github.com/openedx/enterprise-subsidy/tree/main/docs/caching.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/enterprise-subsidy/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/enterprise-subsidy/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/enterprise-subsidy/actions', 'https://codecov.io/github/openedx/enterprise-subsidy/coverage.svg?branch=main', 'https://codecov.io/github/openedx/enterprise-subsidy?branch=main', 'https://img.shields.io/github/license/openedx/enterprise-subsidy.svg', 'https://github.com/openedx/enterprise-subsidy/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-learner-dashboard,,,,False,2026-06-01,True,True,False,False,42,0,,0,{},28,14,"{""@edx/browserslist-config"": ""^1.3.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""copy-webpack-plugin"": ""^13.0.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-expect-message"": ""^1.1.3"", ""jest-when"": ""^3.6.0"", ""react-dev-utils"": ""^12.0.0"", ""react-test-renderer"": ""^18.3.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-enterprise-hotjar"": ""7.2.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""^1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""^5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""^5.15.4"", ""@fortawesome/react-fontawesome"": ""^0.2.0"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@tanstack/react-query"": ""^5.90.16"", ""classnames"": ""^2.3.1"", ""core-js"": ""3.49.0"", ""font-awesome"": ""4.7.0"", ""history"": ""5.3.0"", ""lodash"": ""^4.17.21"", ""moment"": ""^2.29.4"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-intl"": ""6.8.9"", ""react-router-dom"": ""6.30.3"", ""react-share"": ""^5.2.2"", ""regenerator-runtime"": ""^0.14.0"", ""util"": ""^0.12.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,27,"{""total_duration"": ""5012 minutes 38 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2022-06-03 14:59:36,master,Learner Dashboard MFE,9508,198,True,False,False,False,False,False,False,2026-05-20 02:36:35,GNU AGPLv3,9,True,0,0,224,409312,2330,0,0,False,False,False,False,True,False,False,@edx/frontend-app-learner-dashboard,openedx,0,[],False,"['https://img.shields.io/github/license/openedx/frontend-app-learner-dashboard.svg', 'https://github.com/openedx/frontend-app-learner-dashboard/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-learner-dashboard/coverage.svg?branch=master', 'https://app.codecov.io/github/openedx/frontend-app-learner-dashboard?branch=master', 'https://github.com/openedx/frontend-plugin-framework', 'https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3875962884/How+to+submit+an+open+source+contribution+for+Product+Review', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-learner-dashboard/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575906333/Learner+Home', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2025-02-17,4,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/forum,,,,True,2026-06-01,False,False,False,False,163,0,[],0,,0,0,,,67,"[""httpx==0.28.1"", ""sqlparse==0.5.5"", ""wcwidth==0.6.0"", ""annotated-types==0.7.0"", ""cffi==2.0.0"", ""elasticsearch==7.13.4"", ""python-dateutil==2.9.0.post0"", ""pymongo==4.16.0"", ""urllib3==1.26.20"", ""billiard==4.2.4"", ""idna==3.11"", ""edx-toggles==5.4.1"", ""kombu==5.6.2"", ""stevedore==5.7.0"", ""celery==5.6.2"", ""attrs==25.4.0"", ""typesense==2.0.0"", ""amqp==5.3.1"", ""edx-opaque-keys[django]==3.1.0"", ""text-unidecode==1.3"", ""markupsafe==3.0.3"", ""event-tracking==3.3.0"", ""camel-converter[pydantic]==5.1.0"", ""pytz==2026.1.post1"", ""edx-search==4.4.0"", ""charset-normalizer==3.4.5"", ""certifi==2026.2.25"", ""django-crum==0.7.9"", ""django-waffle==5.0.0"", ""anyio==4.12.1"", ""djangorestframework==3.16.1"", ""fastavro==1.12.1"", ""jinja2==3.1.6"", ""mysqlclient==2.2.8"", ""openedx-atlas==0.7.0"", ""typing-extensions==4.15.0"", ""click-didyoumean==0.3.1"", ""pydantic==2.12.5"", ""click==8.3.1"", ""tzdata==2025.3"", ""tzlocal==5.3.1"", ""meilisearch==0.40.0"", ""vine==5.1.0"", ""edx-django-utils==8.0.1"", ""beautifulsoup4==4.14.3"", ""click-plugins==1.1.1.2"", ""six==1.17.0"", ""h11==0.16.0"", ""httpcore==1.0.9"", ""django==5.2.12"", ""openedx-events==10.5.0"", ""psutil==7.2.2"", ""typing-inspection==0.4.2"", ""pycparser==3.0"", ""requests==2.32.5"", ""edx-ccx-keys==2.0.2"", ""pynacl==1.6.2"", ""dnspython==2.8.0"", ""pyyaml==6.0.3"", ""prompt-toolkit==3.0.52"", ""pydantic-core==2.41.5"", ""python-slugify==8.0.4"", ""packaging==26.0"", ""code-annotations==2.3.2"", ""soupsieve==2.8.3"", ""click-repl==0.3.0"", ""asgiref==3.11.1""]",163,"[""faker==40.8.0"", ""markdown-it-py==4.0.0"", ""django-stubs==5.2.9"", ""cffi==2.0.0"", ""pymongo==4.16.0"", ""coverage[toml]==7.13.4"", ""billiard==4.2.4"", ""typesense==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""types-pyyaml==6.0.12.20250915"", ""event-tracking==3.3.0"", ""edx-search==4.4.0"", ""pytest==9.0.2"", ""soupsieve==2.8.3"", ""certifi==2026.2.25"", ""openedx-atlas==0.7.0"", ""pygments==2.19.2"", ""python-discovery==1.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""types-requests==2.31.0.6"", ""sphinx==9.1.0"", ""meilisearch==0.40.0"", ""doc8==0.11.2"", ""pydata-sphinx-theme==0.15.4"", ""six==1.17.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""django==5.2.12"", ""openedx-events==10.5.0"", ""pytest-cov==7.0.0"", ""edx-i18n-tools==1.9.0"", ""mdurl==0.1.2"", ""sentinels==1.1.1"", ""tomli-w==1.2.0"", ""edx-ccx-keys==2.0.2"", ""more-itertools==10.8.0"", ""pynacl==1.6.2"", ""pylint==4.0.5"", ""alabaster==1.0.0"", ""click-log==0.4.0"", ""pathspec==1.0.4"", ""mongomock==4.3.0"", ""colorama==0.4.6"", ""click-repl==0.3.0"", ""typing-extensions==4.15.0"", ""rich==14.3.3"", ""secretstorage==3.5.0"", ""dill==0.4.1"", ""diff-cover==10.2.0"", ""python-dateutil==2.9.0.post0"", ""jaraco-functools==4.4.0"", ""build==1.4.0"", ""kombu==5.6.2"", ""pytest-django==4.12.0"", ""amqp==5.3.1"", ""text-unidecode==1.3"", ""pluggy==1.6.0"", ""mypy-extensions==1.1.0"", ""pytz==2026.1.post1"", ""chardet==7.0.1"", ""charset-normalizer==3.4.5"", ""anyio==4.12.1"", ""platformdirs==4.9.4"", ""id==1.5.0"", ""click-didyoumean==0.3.1"", ""path==16.16.0"", ""pydantic==2.12.5"", ""tzdata==2025.3"", ""tzlocal==5.3.1"", ""astroid==4.0.4"", ""distlib==0.4.0"", ""pylint-plugin-utils==0.9.0"", ""rfc3986==2.0.0"", ""setuptools==82.0.0"", ""psutil==7.2.2"", ""django-stubs-ext==5.2.9"", ""roman-numerals==4.1.0"", ""dnspython==2.8.0"", ""prompt-toolkit==3.0.52"", ""sphinxcontrib-jsmath==1.0.1"", ""pylint-celery==0.3"", ""httpx==0.28.1"", ""jaraco-classes==3.4.0"", ""librt==0.8.1"", ""sqlparse==0.5.5"", ""annotated-types==0.7.0"", ""elasticsearch==7.13.4"", ""sphinxcontrib-devhelp==2.0.0"", ""tox==4.49.0"", ""edx-toggles==5.4.1"", ""sphinx-book-theme==1.1.4"", ""celery==5.6.2"", ""attrs==25.4.0"", ""polib==1.2.0"", ""wheel==0.46.3"", ""types-beautifulsoup4==4.12.0.20250516"", ""mysqlclient==2.2.8"", ""vine==5.1.0"", ""wcwidth==0.6.0"", ""click==8.3.1"", ""jaraco-context==6.1.0"", ""babel==2.18.0"", ""requests-toolbelt==1.0.0"", ""click-plugins==1.1.1.2"", ""djangorestframework-stubs==3.16.8"", ""h11==0.16.0"", ""pytokens==0.4.1"", ""pycparser==3.0"", ""requests==2.32.5"", ""imagesize==2.0.0"", ""pyyaml==6.0.3"", ""cryptography==46.0.5"", ""pydantic-core==2.41.5"", ""python-slugify==8.0.4"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pip==26.0.1"", ""code-annotations==2.3.2"", ""twine==6.2.0"", ""asgiref==3.11.1"", ""keyring==25.7.0"", ""mypy==1.19.1"", ""urllib3==1.26.20"", ""edx-lint==5.6.0"", ""idna==3.11"", ""lxml[html-clean]==6.0.2"", ""stevedore==5.7.0"", ""virtualenv==21.1.0"", ""lxml-html-clean==0.4.4"", ""black==26.3.0"", ""pycodestyle==2.14.0"", ""readme-renderer==44.0"", ""edx-opaque-keys[django]==3.1.0"", ""markupsafe==3.0.3"", ""types-html5lib==1.1.11.20251117"", ""camel-converter[pydantic]==5.1.0"", ""types-urllib3==1.26.25.14"", ""docutils==0.22.4"", ""django-crum==0.7.9"", ""django-waffle==5.0.0"", ""fastavro==1.12.1"", ""jinja2==3.1.6"", ""mccabe==0.7.0"", ""djangorestframework==3.16.1"", ""pydocstyle==6.3.0"", ""pyproject-api==1.10.0"", ""tomlkit==0.14.0"", ""accessible-pygments==0.0.5"", ""jeepney==0.9.0"", ""nh3==0.3.3"", ""edx-django-utils==8.0.1"", ""isort==8.0.1"", ""restructuredtext-lint==2.0.2"", ""beautifulsoup4==4.14.3"", ""httpcore==1.0.9"", ""pylint-django==2.7.0"", ""filelock==3.25.0"", ""pyproject-hooks==1.2.0"", ""snowballstemmer==3.0.1"", ""cachetools==7.0.3"", ""packaging==26.0"", ""types-webencodings==0.5.0.20251108"", ""pip-tools==7.5.3"", ""iniconfig==2.3.0"", ""typing-inspection==0.4.2""]",10,"[""edx-search"", ""django-waffle"", ""event-tracking"", ""pylint-django"", ""edx-django-utils"", ""pytest-django"", ""djangorestframework"", ""code-annotations"", ""edx-i18n-tools"", ""edx-toggles""]",11,"[""edx-search"", ""django-waffle"", ""event-tracking"", ""pylint-django"", ""edx-django-utils"", ""pytest-django"", ""djangorestframework"", ""code-annotations"", ""django-crum"", ""edx-i18n-tools"", ""edx-toggles""]",7,"[""edx-search"", ""django-waffle"", ""event-tracking"", ""edx-django-utils"", ""code-annotations"", ""edx-i18n-tools"", ""edx-toggles""]",False,,True,True,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,13,"{""total_duration"": ""1985 minutes 42 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, e2e)"", ""duration"": ""3 minutes 10 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""2 minutes 1 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, py)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 45 seconds""}]}",Other,2024-07-25 08:43:29,master,Python rewrite of the legacy Open edX Ruby forum,834,22,True,False,False,False,False,False,False,2026-05-30 15:24:47,GNU AGPLv3,5,True,0,0,873,0,5775,701211,0,False,False,False,False,True,False,False,,openedx,1,"['https://docs.openedx.org/projects/forum/how-tos/how-to-deploy-this-component.html: 404', 'https://docs.openedx.org/projects/forum: 404']",True,"['https://openedx.org', 'https://github.com/openedx/frontend-app-discussions', 'https://github.com/openedx/cs_comments_service', 'https://discuss.openedx.org/t/axim-funded-contribution-proposal-forum-rewrite-from-ruby-mongodb-to-python-mysql/12788', 'https://github.com/overhangio/tutor-forum', 'https://docs.tutor.edly.io/', 'https://docs.tutor.edly.io/tutorials/main.html', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/forum/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/forum', 'https://github.com/openedx/forum/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/forum/actions/workflows/ci.yml', 'https://img.shields.io/github/license/openedx/forum.svg', 'https://github.com/openedx/forum/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-forum,"['3', '3.12']",https://github.com/openedx/forum,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/paragon,,,,False,2026-06-01,True,True,False,False,93,0,,0,{},44,49,"{""@babel/cli"": ""^7.16.8"", ""@babel/core"": ""^7.17.8"", ""@babel/eslint-parser"": ""^7.18.2"", ""@babel/plugin-proposal-class-properties"": ""^7.16.7"", ""@babel/plugin-proposal-object-rest-spread"": ""^7.16.7"", ""@babel/preset-env"": ""^7.16.8"", ""@babel/preset-react"": ""^7.16.7"", ""@babel/preset-typescript"": ""^7.16.7"", ""@edx/browserslist-config"": ""^1.5.0"", ""@edx/eslint-config"": ""^4.4.0"", ""@edx/stylelint-config-edx"": ""^2.3.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@formatjs/cli"": ""^5.0.2"", ""@semantic-release/changelog"": ""^6.0.1"", ""@semantic-release/git"": ""^10.0.1"", ""@testing-library/jest-dom"": ""^6.6"", ""@testing-library/react"": ""^16.1"", ""@testing-library/user-event"": ""^14.5"", ""@types/jest"": ""^29.5.10"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""@types/react-responsive"": ""^9.0.0"", ""@types/react-table"": ""^7.7.19"", ""@types/react-test-renderer"": ""^18.0.0"", ""@types/uuid"": ""^9.0.0"", ""@typescript-eslint/eslint-plugin"": ""^5.22.0"", ""@typescript-eslint/parser"": ""^5.22.0"", ""axios-mock-adapter"": ""^2.0.0"", ""babel-jest"": ""^29.7.0"", ""babel-loader"": ""^8.2.4"", ""commander"": ""^9.3.0"", ""eslint"": ""8.57.1"", ""eslint-config-airbnb"": ""19.0.4"", ""eslint-config-airbnb-typescript"": ""^17.0.0"", ""eslint-plugin-import"": ""2.32.0"", ""eslint-plugin-jsonc"": ""^2.18.1"", ""eslint-plugin-jsx-a11y"": ""6.10.2"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.7.0"", ""jest-cli"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""markdown-loader-jest"": ""^0.1.1"", ""react"": ""^18"", ""react-test-renderer"": ""^18"", ""regenerator-runtime"": ""^0.14.0"", ""semantic-release"": ""^25.0.0"", ""stylelint"": ""^15.11.0"", ""ts-jest"": ""^29.1.2"", ""typescript"": ""^4.7.4""}","{""@popperjs/core"": ""^2.11.4"", ""@tokens-studio/sd-transforms"": ""^1.2.4"", ""axios"": ""^1.0.0"", ""bootstrap"": ""^4.6.2"", ""chalk"": ""^4.1.2"", ""child_process"": ""^1.0.2"", ""chroma-js"": ""^3.0.0"", ""classnames"": ""^2.3.1"", ""cli-progress"": ""^3.12.0"", ""commander"": ""^9.4.1"", ""email-prop-type"": ""^3.0.0"", ""file-selector"": ""^0.10.0"", ""glob"": ""^13.0.0"", ""inquirer"": ""^8.2.5"", ""js-toml"": ""^1.0.0"", ""lodash.uniqby"": ""^4.7.0"", ""log-update"": ""^4.0.0"", ""lz-string"": ""^1.5.0"", ""mailto-link"": ""^2.0.0"", ""minimist"": ""^1.2.8"", ""ora"": ""^5.4.1"", ""postcss"": ""^8.4.21"", ""postcss-combine-duplicated-selectors"": ""^10.0.3"", ""postcss-custom-media"": ""^9.1.2"", ""postcss-import"": ""^15.1.0"", ""postcss-map"": ""^0.11.0"", ""postcss-minify"": ""^1.1.0"", ""prop-types"": ""^15.8.1"", ""react-bootstrap"": ""^1.6.5"", ""react-colorful"": ""^5.6.1"", ""react-dropzone"": ""^14.2.1"", ""react-focus-on"": ""^3.5.4"", ""react-imask"": ""^7.1.3"", ""react-loading-skeleton"": ""^3.1.0"", ""react-popper"": ""^2.2.5"", ""react-proptype-conditional-require"": ""^1.0.4"", ""react-responsive"": ""^10.0.0"", ""react-table"": ""^7.7.0"", ""react-transition-group"": ""^4.4.2"", ""sass"": ""^1.58.3"", ""style-dictionary"": ""^4.4.0"", ""tabbable"": ""^5.3.3"", ""uncontrollable"": ""^7.2.1"", ""uuid"": ""^9.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,True,True,False,False,False,False,False,False,True,True,True,177,"{""total_duration"": ""12 minutes 19 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""12 minutes 19 seconds""}, {""name"": ""tests"", ""duration"": ""10 minutes 29 seconds""}, {""name"": ""Pages changed - paragon-openedx-v23"", ""duration"": ""2 minutes 33 seconds""}, {""name"": ""Header rules - paragon-openedx-v23"", ""duration"": ""2 minutes 33 seconds""}, {""name"": ""Redirect rules - paragon-openedx-v23"", ""duration"": ""2 minutes 33 seconds""}, {""name"": ""Pages changed - paragon-openedx"", ""duration"": ""1 minutes 36 seconds""}, {""name"": ""Header rules - paragon-openedx"", ""duration"": ""1 minutes 36 seconds""}, {""name"": ""Redirect rules - paragon-openedx"", ""duration"": ""1 minutes 36 seconds""}, {""name"": ""commitlint / commitlint"", ""duration"": ""0 minutes 16 seconds""}, {""name"": ""Syncing branches"", ""duration"": ""0 minutes 8 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2017-04-27 18:57:22,release-23.x,"💎 An accessible, theme-ready design system built for learning applications and Open edX.",349818,99,True,False,False,False,False,False,False,2026-05-31 14:54:28,Apache License 2.0,57,True,271597,0,237,4367759,2202,0,2709,False,False,False,False,True,False,False,,openedx,0,"['https://www.npmjs.com/package/@openedx/paragon: 403', 'https://cdn.jsdelivr.net/npm/@my-brand/core.min.css: 404', 'https://cdn.jsdelivr.net/npm/@my-brand/light.min.css: 404', 'https://github.com/openedx/eslint-config-edx/tree/master/packages/eslint-config-edx: 404', 'https://www.npmjs.com/package/eslint-config-airbnb: 403', 'https://facebook.github.io/jest/: 404', 'https://facebook.github.io/jest/docs/en/api.html: 404', 'https://facebook.github.io/jest/docs/en/getting-started.html: 404', 'http://facebook.github.io/jest/docs/en/snapshot-testing.html: 404']",False,"['https://github.com/openedx/paragon/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/paragon/actions/workflows/release.yml', 'https://img.shields.io/npm/v/@openedx/paragon.svg', 'https://img.shields.io/badge/status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/paragon.svg', 'https://codecov.io/gh/edx/paragon/branch/master/graph/badge.svg?token=x1tZmNduy9', 'https://codecov.io/gh/edx/paragon', 'https://img.shields.io/npm/dw/@openedx/paragon', 'https://www.w3.org/WAI/standards-guidelines/aria/', 'https://openedx.org/', 'https://paragon-openedx.netlify.app/', 'https://openedx.org/slack', 'https://openedx.slack.com/archives/C02NR285KV4', 'https://github.com/openedx/paragon/issues/new?template=blank-issue.md', 'https://calendar.google.com/calendar/embed?src=c_v86shrnegshsqgp4fj2k94u7bc%40group.calendar.google.com&ctz=America%2FNew_York', 'https://github.com/openedx/brand-openedx', 'https://formatjs.io/docs/react-intl/', 'https://github.com/openedx/paragon/tree/release-22.x', 'https://paragon-openedx-v22.netlify.app/', 'https://github.com/openedx/paragon/tree/release-23.x', 'https://paragon-openedx-v23.netlify.app/', 'https://github.com/openedx/paragon/tree/next', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/paragon/issues', 'https://github.com/orgs/openedx/projects/43/views/15', 'https://github.com/openedx/frontend-build', 'http://eslint.org/docs/user-guide/integrations', 'http://eslint.org/docs/rules/comma-dangle', 'https://github.com/evcohen/eslint-plugin-jsx-a11y', 'https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md', 'https://github.com/airbnb/enzyme', 'http://airbnb.io/enzyme/', 'http://airbnb.io/enzyme/docs/api/index.html', 'https://github.com/openedx/paragon/blob/master/src/Dropdown/deprecated/Dropdown.test.jsx', 'https://github.com/openedx/paragon/blob/master/src/CheckBox/CheckBox.test.jsx', 'https://github.com/semantic-release/semantic-release', 'https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular', 'https://github.com/conventional-changelog/commitlint/blob/master/%40commitlint/config-angular-type-enum/index.js', 'https://github.com/openedx/frontend-app-payment/pull/48', 'https://backstage.openedx.org/catalog/default/component/paragon', 'https://github.com/amzn/style-dictionary', 'https://github.com/openedx/frontend-platform/pull/440']",True,True,False,False,,,True,2026-04-22,2025-10-10,10,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-ios,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,False,False,False,False,False,False,False,True,True,True,16,"{""total_duration"": ""0 minutes 29 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-03-13 09:15:29,main,The mobile app for iOS for the Open EdX Platform.,13069,30,True,False,False,False,False,False,False,2026-05-28 08:47:00,Apache License 2.0,4,False,0,0,0,537,433,70039,1844,False,False,False,False,False,False,False,,openedx,0,"['https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403', 'https://app.transifex.com/open-edx/openedx-translations/openedx-app-ios/: 404']",False,"['https://github.com/openedx/openedx-app-ios.git', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://github.com/openedx/openedx-atlas', 'https://github.com/openedx/openedx-translations', 'https://github.com/openedx/openedx-translations/blob/6448167e9695a921f003ff6bd8f40f006a2d6743/translations/openedx-app-ios/I18N/I18N/uk.lproj/Localizable.strings', 'https://github.com/openedx/openedx-atlas/issues/20', 'https://github.com/apps/transifex-integration', 'https://github.com/openedx/openedx-app-ios/blob/main/LICENSE']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-authn,,,,False,2026-06-01,True,True,False,False,41,0,,0,{},30,11,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.9.1"", ""babel-plugin-formatjs"": ""10.5.41"", ""eslint-plugin-import"": ""2.32.0"", ""glob"": ""7.2.3"", ""history"": ""5.3.0"", ""jest"": ""30.3.0"", ""react-test-renderer"": ""^18.3.1"", ""ts-jest"": ""^29.4.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.2"", ""@optimizely/react-sdk"": ""^2.9.1"", ""@tanstack/react-query"": ""^5.90.19"", ""@testing-library/react"": ""^16.2.0"", ""algoliasearch"": ""^4.14.3"", ""algoliasearch-helper"": ""^3.26.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.43.0"", ""fastest-levenshtein"": ""1.0.16"", ""form-urlencoded"": ""6.1.6"", ""prop-types"": ""15.8.1"", ""query-string"": ""7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""6.1.0"", ""react-loading-skeleton"": ""3.5.0"", ""react-responsive"": ""8.2.0"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""react-zendesk"": ""^0.1.13"", ""regenerator-runtime"": ""0.14.1"", ""universal-cookie"": ""7.2.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,51,"{""total_duration"": ""2 minutes 31 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 31 seconds""}, {""name"": ""autoupdate"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2020-09-28 13:08:13,master,Open edX micro-frontend application for new login and registration experience.,17267,261,True,False,False,False,False,False,False,2026-05-27 21:32:31,GNU AGPLv3,20,True,0,0,1165,555109,1657,0,0,False,False,False,False,False,False,False,@edx/frontend-app-authn,openedx,0,"['https://support.example.com: HTTPSConnectionPool(host=\'support.example.com\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'support.example.com\', port=443): Failed to resolve \'support.example.com\' ([Errno -5] No address associated with hostname)""))', 'https://travis-ci.com/edx/frontend-app-authn: 404']",False,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/edx/frontend-app-authn.git', 'https://github.com/nvm-sh/nvm', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html', 'https://github.com/openedx/frontend-app-authn/blob/master/.github/pull_request_template.md', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-authn/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/group/2u-infinity', 'https://github.com/openedx/frontend-app-authn/blob/master/LICENSE', 'https://api.travis-ci.com/edx/frontend-app-authn.svg?branch=master', 'https://img.shields.io/codecov/c/github/edx/frontend-app-authn', 'https://codecov.io/gh/edx/frontend-app-authn', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-03-27,2024-12-05,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/wg-marketing,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""1388 minutes 55 seconds"", ""checks"": [{""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-04-19 17:26:44,main,Marketing Working Group,6,2,True,False,False,False,False,False,False,2025-10-30 15:17:11,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/didkit-python,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""6 minutes 54 seconds"", ""checks"": [{""name"": ""windows"", ""duration"": ""6 minutes 54 seconds""}, {""name"": ""linux-x86_64"", ""duration"": ""6 minutes 6 seconds""}, {""name"": ""CI (3.11)"", ""duration"": ""6 minutes 0 seconds""}, {""name"": ""CI (3.10)"", ""duration"": ""5 minutes 40 seconds""}, {""name"": ""CI (3.12)"", ""duration"": ""5 minutes 35 seconds""}, {""name"": ""macos (aarch64)"", ""duration"": ""5 minutes 5 seconds""}, {""name"": ""macos (x64)"", ""duration"": ""4 minutes 47 seconds""}, {""name"": ""linux-aarch64"", ""duration"": ""4 minutes 41 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2026-03-12 15:11:16,main,Python bindings for DIDKit.,183,1,True,False,False,False,True,False,False,2026-05-30 14:52:54,,0,True,0,0,0,0,0,7345,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://badge.fury.io/py/openedx-didkit.svg', 'https://badge.fury.io/py/openedx-didkit', 'https://spruceid.dev/docs/didkit/', 'https://github.com/spruceid/ssi', 'https://pypi.org/project/openedx-didkit/', 'https://github.com/GlugovGrGlib/didkit-python', 'https://github.com/spruceid/didkit-python']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-component-footer,,,,False,2026-06-01,False,False,False,False,26,0,,0,{},8,18,"{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/browserslist-config"": ""^1.1.1"", ""@edx/frontend-platform"": ""^8.2.1"", ""@openedx/frontend-build"": ""^14.3.1"", ""@openedx/paragon"": ""^23.3.0"", ""@testing-library/jest-dom"": ""^5.16.4"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/user-event"": ""^14.6.1"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-redux"": ""8.1.3"", ""react-router-dom"": ""6.30.2"", ""react-test-renderer"": ""18.3.1"", ""redux"": ""4.2.1"", ""semantic-release"": ""21.1.2"", ""ts-jest"": ""^29.1.2""}","{""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-regular-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""classnames"": ""^2.5.1"", ""lodash"": ""^4.17.21""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,22,"{""total_duration"": ""2 minutes 21 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""2 minutes 21 seconds""}, {""name"": ""tests"", ""duration"": ""1 minutes 48 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-01-02 20:14:34,master,Site footer component for edX frontend apps.,16296,155,True,False,False,False,False,False,False,2026-05-28 23:13:24,GNU AGPLv3,15,True,0,0,252,40107,1299,0,0,False,False,False,False,False,False,False,@edx/frontend-component-footer,openedx,0,"['https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://travis-ci.com/edx/frontend-component-footer: 404']",False,"['https://github.com/openedx/devstack', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx', 'https://github.com/openedx/frontend-component-footer.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-component-footer/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://api.travis-ci.com/edx/frontend-component-footer.svg?branch=master', 'https://img.shields.io/codecov/c/github/edx/frontend-component-footer', 'https://img.shields.io/npm/v/@edx/frontend-component-footer.svg', 'https://img.shields.io/npm/dt/@edx/frontend-component-footer.svg', 'https://img.shields.io/npm/l/@edx/frontend-component-footer.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-04-06,2022-11-21,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/codejail-service,,,,True,2026-06-01,False,False,False,False,138,0,[],0,,0,0,,,58,"[""attrs==25.3.0"", ""cycler==0.12.1"", ""psutil==7.1.0"", ""python-dateutil==2.9.0.post0"", ""referencing==0.36.2"", ""python-slugify==8.0.4"", ""pillow==12.1.1"", ""tqdm==4.67.3"", ""edx-toggles==5.4.1"", ""chem==2.0.0"", ""django-waffle==5.0.0"", ""regex==2026.2.28"", ""codejail-includes==2.0.0"", ""text-unidecode==1.3"", ""lxml-html-clean==0.4.4"", ""mpmath==1.3.0"", ""cffi==2.0.0"", ""packaging==26.0"", ""click==8.3.1"", ""fonttools==4.62.1"", ""pyyaml==6.0.2"", ""rpds-py==0.27.1"", ""random2==1.0.2"", ""jsonschema-specifications==2025.9.1"", ""packaging==25.0"", ""matplotlib==3.10.8"", ""pycparser==2.23"", ""asgiref==3.9.1"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""numpy==1.26.4"", ""edx-django-utils==8.0.0"", ""pynacl==1.6.0"", ""jsonschema==4.25.1"", ""pycparser==3.0"", ""cryptography==45.0.7"", ""click==8.3.0"", ""nltk==3.9.3"", ""networkx==3.6.1"", ""joblib==1.5.3"", ""kiwisolver==1.5.0"", ""django==4.2.24"", ""code-annotations==2.3.0"", ""openedx-calc==5.0.0"", ""scipy==1.17.1"", ""pyparsing==3.3.2"", ""contourpy==1.3.3"", ""lxml[html-clean]==5.3.2"", ""djangorestframework==3.16.1"", ""markupsafe==3.0.2"", ""gunicorn==23.0.0"", ""six==1.17.0"", ""django-crum==0.7.9"", ""stevedore==5.5.0"", ""typing-extensions==4.15.0"", ""sympy==1.14.0"", ""edx-codejail==4.0.0"", ""sqlparse==0.5.3""]",138,"[""python-dateutil==2.9.0.post0"", ""psutil==7.1.0"", ""sphinx-book-theme==1.1.4"", ""django-waffle==5.0.0"", ""jaraco-classes==3.4.0"", ""text-unidecode==1.3"", ""build==1.3.0"", ""iniconfig==2.1.0"", ""jaraco-functools==4.3.0"", ""pytest-cov==7.0.0"", ""fonttools==4.62.1"", ""pytest-django==4.11.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pycodestyle==2.14.0"", ""isort==6.0.1"", ""edx-django-utils==8.0.0"", ""jsonschema==4.25.1"", ""click==8.3.0"", ""nltk==3.9.3"", ""virtualenv==20.34.0"", ""snowballstemmer==3.0.1"", ""networkx==3.6.1"", ""pydocstyle==6.3.0"", ""code-annotations==2.3.0"", ""platformdirs==4.4.0"", ""pip-tools==7.5.0"", ""scipy==1.17.1"", ""markupsafe==3.0.2"", ""rich==14.1.0"", ""filelock==3.19.1"", ""six==1.17.0"", ""diff-cover==9.6.0"", ""stevedore==5.5.0"", ""alabaster==1.0.0"", ""sphinx==8.2.3"", ""pydata-sphinx-theme==0.15.4"", ""pylint==3.3.8"", ""beautifulsoup4==4.13.5"", ""pluggy==1.6.0"", ""readme-renderer==44.0"", ""referencing==0.36.2"", ""rfc3986==2.0.0"", ""babel==2.17.0"", ""mpmath==1.3.0"", ""cryptography==46.0.1"", ""tomlkit==0.13.3"", ""random2==1.0.2"", ""pycparser==2.23"", ""asgiref==3.9.1"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""imagesize==1.4.1"", ""jeepney==0.9.0"", ""django==4.2.24"", ""charset-normalizer==3.4.3"", ""requests==2.32.5"", ""pyparsing==3.3.2"", ""colorama==0.4.6"", ""pylint-django==2.6.1"", ""jaraco-context==6.0.1"", ""doc8==2.0.0"", ""twine==6.2.0"", ""mccabe==0.7.0"", ""secretstorage==3.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""distlib==0.4.0"", ""sympy==1.14.0"", ""more-itertools==10.8.0"", ""edx-lint==5.6.0"", ""edx-codejail==4.0.0"", ""sqlparse==0.5.3"", ""tox==4.30.2"", ""attrs==25.3.0"", ""pylint-celery==0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""requests-toolbelt==1.0.0"", ""certifi==2025.8.3"", ""edx-toggles==5.4.1"", ""regex==2026.2.28"", ""nh3==0.3.0"", ""codejail-includes==2.0.0"", ""setuptools==80.9.0"", ""docutils==0.22.2"", ""lxml-html-clean==0.4.4"", ""cffi==2.0.0"", ""docutils==0.21.2"", ""coverage[toml]==7.10.7"", ""pygments==2.19.2"", ""astroid==3.3.11"", ""click==8.3.1"", ""rpds-py==0.27.1"", ""packaging==25.0"", ""numpy==1.26.4"", ""sphinxcontrib-applehelp==2.0.0"", ""markdown-it-py==4.0.0"", ""kiwisolver==1.5.0"", ""openedx-calc==5.0.0"", ""pytest==8.4.2"", ""chardet==5.2.0"", ""contourpy==1.3.3"", ""lxml[html-clean]==5.3.2"", ""djangorestframework==3.16.1"", ""sphinxcontrib-qthelp==2.0.0"", ""gunicorn==23.0.0"", ""click-log==0.4.0"", ""pip==24.2"", ""dill==0.4.0"", ""accessible-pygments==0.0.5"", ""mdurl==0.1.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""cycler==0.12.1"", ""urllib3==2.5.0"", ""restructuredtext-lint==1.4.0"", ""python-slugify==8.0.4"", ""pillow==12.1.1"", ""tqdm==4.67.3"", ""wheel==0.45.1"", ""packaging==26.0"", ""pyyaml==6.0.2"", ""jsonschema-specifications==2025.9.1"", ""keyring==25.6.0"", ""matplotlib==3.10.8"", ""pynacl==1.6.0"", ""ddt==1.7.2"", ""pycparser==3.0"", ""idna==3.10"", ""cryptography==45.0.7"", ""roman-numerals-py==3.1.0"", ""joblib==1.5.3"", ""soupsieve==2.8"", ""id==1.5.0"", ""pyproject-hooks==1.2.0"", ""pyproject-api==1.9.1"", ""django-crum==0.7.9"", ""cachetools==6.2.0"", ""typing-extensions==4.15.0"", ""chem==2.0.0""]",7,"[""edx-toggles"", ""pylint-django"", ""code-annotations"", ""django-waffle"", ""pytest-django"", ""edx-django-utils"", ""djangorestframework""]",8,"[""edx-toggles"", ""pylint-django"", ""django-crum"", ""code-annotations"", ""django-waffle"", ""pytest-django"", ""edx-django-utils"", ""djangorestframework""]",4,"[""edx-toggles"", ""edx-django-utils"", ""code-annotations"", ""django-waffle""]",True,,True,True,True,False,False,True,True,True,True,False,False,False,True,True,True,False,True,True,True,True,True,4,"{""total_duration"": ""0 minutes 36 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, py312)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2025-01-13 21:44:45,main,Experimental repository for refactoring codejail for containerization,229,3,True,False,False,False,False,False,False,2026-05-19 10:43:24,Apache License 2.0,1,True,0,0,0,0,4039,89024,0,False,True,False,False,True,False,False,,openedx,0,['https://docs.openedx.org/projects/codejail-service: 404'],True,"['https://github.com/openedx/codejail', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://github.com/openedx/codejail-service/issues/3', 'https://discuss.openedx.org', 'https://github.com/openedx/codejail-service/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/codejail-service', 'https://github.com/openedx/codejail-service/workflows/Python%20CI/badge.svg', 'https://github.com/openedx/codejail-service/actions', 'https://codecov.io/github/openedx/codejail-service/coverage.svg?branch=main', 'https://codecov.io/github/openedx/codejail-service?branch=main', 'https://readthedocs.org/projects/codejail-service/badge/?version=latest', 'https://img.shields.io/github/license/openedx/codejail-service.svg', 'https://github.com/openedx/codejail-service/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-drf-extensions,,,,True,2026-06-01,True,True,False,False,90,0,[],0,,0,0,,,26,"[""click==8.3.0"", ""django-crum==0.7.9"", ""edx-opaque-keys==3.0.0"", ""pyjwt[crypto]==2.10.1"", ""pymongo==4.15.3"", ""djangorestframework==3.16.1"", ""pynacl==1.6.0"", ""drf-jwt==1.19.2"", ""edx-django-utils==8.0.1"", ""asgiref==3.10.0"", ""pycparser==2.23"", ""stevedore==5.5.0"", ""typing-extensions==4.15.0"", ""sqlparse==0.5.3"", ""psutil==7.1.0"", ""dnspython==2.8.0"", ""certifi==2025.10.5"", ""cryptography==46.0.2"", ""requests==2.32.5"", ""idna==3.10"", ""semantic-version==2.10.0"", ""django==4.2.25"", ""cffi==2.0.0"", ""django-waffle==5.0.0"", ""charset-normalizer==3.4.3"", ""urllib3==2.5.0""]",90,"[""edx-opaque-keys==3.0.0"", ""pylint==3.3.9"", ""sphinx-book-theme==1.1.3"", ""wheel==0.45.1"", ""edx-django-utils==8.0.1"", ""babel==2.17.0"", ""colorama==0.4.6"", ""pylint-django==2.6.1"", ""stevedore==5.5.0"", ""pip-tools==7.5.1"", ""sphinxcontrib-devhelp==2.0.0"", ""semantic-version==2.10.0"", ""click-log==0.4.0"", ""faker==37.11.0"", ""iniconfig==2.1.0"", ""chardet==5.2.0"", ""cachetools==6.2.0"", ""charset-normalizer==3.4.3"", ""urllib3==2.5.0"", ""edx-lint==5.6.0"", ""tzdata==2025.2"", ""pyyaml==6.0.3"", ""pygments==2.19.2"", ""pymongo==4.15.3"", ""snowballstemmer==3.0.1"", ""djangorestframework==3.16.1"", ""pynacl==1.6.0"", ""drf-jwt==1.19.2"", ""pluggy==1.6.0"", ""virtualenv==20.35.1"", ""pycparser==2.23"", ""code-annotations==2.3.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sqlparse==0.5.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""certifi==2025.10.5"", ""pytest==8.4.2"", ""pydata-sphinx-theme==0.15.4"", ""six==1.17.0"", ""cffi==2.0.0"", ""tox==4.31.0"", ""build==1.3.0"", ""ddt==1.7.2"", ""packaging==25.0"", ""pylint-celery==0.3"", ""tomlkit==0.13.3"", ""pytest-django==4.11.1"", ""mccabe==0.7.0"", ""sphinxcontrib-applehelp==2.0.0"", ""dill==0.4.0"", ""isort==6.1.0"", ""asgiref==3.10.0"", ""typing-extensions==4.15.0"", ""dnspython==2.8.0"", ""jinja2==3.1.6"", ""sphinxcontrib-serializinghtml==2.0.0"", ""beautifulsoup4==4.14.2"", ""soupsieve==2.8"", ""django==4.2.25"", ""docutils==0.19"", ""httpretty==1.1.4"", ""django-waffle==5.0.0"", ""setuptools==80.9.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pyproject-hooks==1.2.0"", ""markupsafe==3.0.3"", ""click==8.3.0"", ""django-crum==0.7.9"", ""pyproject-api==1.10.0"", ""pyjwt[crypto]==2.10.1"", ""accessible-pygments==0.0.5"", ""sphinx==5.3.0"", ""pytest-cov==7.0.0"", ""text-unidecode==1.3"", ""pylint-plugin-utils==0.9.0"", ""psutil==7.1.0"", ""coverage[toml]==7.10.7"", ""astroid==3.3.11"", ""cryptography==46.0.2"", ""platformdirs==4.5.0"", ""requests==2.32.5"", ""idna==3.10"", ""pycodestyle==2.14.0"", ""imagesize==1.4.1"", ""factory-boy==2.12.0"", ""distlib==0.4.0"", ""pip==25.2"", ""filelock==3.20.0"", ""alabaster==0.7.16"", ""python-slugify==8.0.4""]",8,"[""edx-opaque-keys"", ""edx-django-utils"", ""pytest-django"", ""django-waffle"", ""pylint-django"", ""code-annotations"", ""djangorestframework"", ""factory-boy""]",10,"[""edx-opaque-keys"", ""edx-django-utils"", ""drf-jwt"", ""pytest-django"", ""django-waffle"", ""pylint-django"", ""django-crum"", ""code-annotations"", ""djangorestframework"", ""factory-boy""]",4,"[""edx-opaque-keys"", ""edx-django-utils"", ""django-waffle"", ""code-annotations""]",True,,False,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,False,True,True,44,"{""total_duration"": ""1 minutes 30 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42-drflatest)"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 45 seconds""}]}",Other,2016-03-11 12:28:52,master,edX extensions for Django REST Framework,796,22,True,False,False,False,False,False,False,2026-05-30 15:13:08,Apache License 2.0,12,True,0,0,0,0,3063,221404,0,True,True,False,False,True,False,True,,openedx,4,[],False,"['https://github.com/openedx/edx-drf-extensions/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-drf-extensions/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/edx/edx-drf-extensions/coverage.svg?branch=master', 'https://codecov.io/github/edx/edx-drf-extensions?branch=master', 'https://readthedocs.org/projects/edx-drf-extensions/badge/?version=latest', 'http://edx-drf-extensions.readthedocs.io/en/latest/', 'https://www.django-rest-framework.org/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-drf-extensions,"['3', '3.11']",https://github.com/openedx/edx-drf-extensions,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-translations,,,,True,2026-06-01,True,True,False,False,41,0,[],0,{},0,1,"{""@formatjs/cli"": ""^6.7.2""}",{},0,[],40,"[""pygments==2.19.2"", ""packaging==25.0"", ""path==16.16.0"", ""setuptools==80.9.0"", ""lxml[html-clean]==6.0.2"", ""asttokens==3.0.1"", ""charset-normalizer==3.4.4"", ""polib==1.2.0"", ""regex==2025.11.3"", ""lxml-html-clean==0.4.3"", ""python-slugify==8.0.4"", ""requests==2.32.5"", ""sqlparse==0.5.4"", ""pip==25.3"", ""responses==0.25.8"", ""pyseeyou==1.0.2"", ""six==1.17.0"", ""transifex-python==3.7.0"", ""text-unidecode==1.3"", ""build==1.3.0"", ""certifi==2025.11.12"", ""future==1.0.0"", ""coverage[toml]==7.13.0"", ""pytest==9.0.2"", ""urllib3==2.6.2"", ""wheel==0.45.1"", ""django==5.2.9"", ""click==8.3.1"", ""transifex-client==0.12.5"", ""pyyaml==6.0.3"", ""pyproject-hooks==1.2.0"", ""idna==3.11"", ""toolz==1.1.0"", ""pytest-cov==7.0.0"", ""edx-i18n-tools==1.9.0"", ""parsimonious==0.11.0"", ""pluggy==1.6.0"", ""asgiref==3.11.0"", ""iniconfig==2.3.0"", ""pip-tools==7.5.2""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",False,,False,True,True,False,False,False,True,True,True,True,False,True,False,True,False,False,False,False,True,True,True,68,"{""total_duration"": ""0 minutes 44 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2022-08-03 20:53:06,main,Open edX Translation files in sync with Transifex,481379,160,True,False,False,False,False,False,False,2026-06-01 02:38:43,Creative Commons Attribution Share Alike 4.0 International,53,False,0,0,0,0,2291,52681,1375,False,False,False,False,True,False,False,,openedx,0,['https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403'],False,"['https://app.transifex.com/open-edx/', 'https://github.com/openedx/open-edx-proposals/pull/367', 'https://github.com/openedx/openedx-atlas', 'https://github.com/openedx/openedx-translations/actions/workflows/sync-translations.yml', 'https://docs.tutor.edly.io/tutorials/nightly.html', 'https://github.com/openedx/openedx-platform', 'https://docs.tutor.edly.io/', 'https://github.com/openedx/openedx-platform/tree/release/ulmo', 'https://github.com/openedx/openedx-translations/tree/main/.github/workflows', 'https://github.com/openedx/openedx-translations/blob/main/Makefile']",True,True,False,False,,,False,,,,False,False,False,True,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-events,,,,True,2026-06-01,True,True,False,False,121,0,[],0,,0,0,,,20,"[""django==5.2.14"", ""attrs==26.1.0"", ""psutil==7.2.2"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""click==8.4.1"", ""edx-opaque-keys[django]==4.0.0"", ""asgiref==3.11.1"", ""six==1.17.0"", ""fastavro==1.12.2"", ""pycparser==3.0"", ""stevedore==5.8.0"", ""pymongo==4.17.0"", ""edx-ccx-keys==2.0.2"", ""dnspython==2.8.0"", ""pynacl==1.6.2"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""edx-django-utils==8.0.1"", ""django-waffle==5.0.0""]",121,"[""rich==15.0.0"", ""isort==8.0.1"", ""dill==0.4.1"", ""attrs==26.1.0"", ""psutil==7.2.2"", ""sphinx-book-theme==1.2.0"", ""coverage[toml]==7.14.0"", ""click-log==0.4.0"", ""edx-opaque-keys[django]==4.0.0"", ""starlette==1.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinx-autobuild==2025.8.25"", ""iniconfig==2.3.0"", ""soupsieve==2.8.4"", ""babel==2.18.0"", ""code-annotations==3.0.0"", ""mccabe==0.7.0"", ""pip-tools==7.5.3"", ""accessible-pygments==0.0.5"", ""imagesize==2.0.0"", ""pymongo==4.17.0"", ""jaraco-context==6.1.2"", ""edx-ccx-keys==2.0.2"", ""anyio==4.13.0"", ""pylint-django==2.7.0"", ""colorama==0.4.6"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""pydata-sphinx-theme==0.16.1"", ""python-discovery==1.3.1"", ""virtualenv==21.3.3"", ""tomlkit==0.15.0"", ""markdown-it-py==4.2.0"", ""build==1.5.0"", ""requests-toolbelt==1.0.0"", ""sphinx-copybutton==0.5.2"", ""edx-lint==6.1.0"", ""pylint-plugin-utils==0.9.0"", ""pytest-cov==7.1.0"", ""keyring==25.7.0"", ""platformdirs==4.9.6"", ""idna==3.16"", ""pygments==2.20.0"", ""watchfiles==1.2.0"", ""fastavro==1.12.2"", ""python-slugify==8.0.4"", ""pip==26.1.1"", ""text-unidecode==1.3"", ""h11==0.16.0"", ""stevedore==5.8.0"", ""diff-cover==10.2.1"", ""ruff==0.15.14"", ""chardet==7.4.3"", ""dnspython==2.8.0"", ""markupsafe==3.0.3"", ""websockets==16.0"", ""roman-numerals==4.1.0"", ""edx-django-utils==8.0.1"", ""sphinxcontrib-mermaid==2.0.2"", ""packaging==26.2"", ""django-waffle==5.0.0"", ""jaraco-functools==4.5.0"", ""sphinx==9.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""docutils==0.22.4"", ""nh3==0.3.5"", ""cffi==2.0.0"", ""rfc3986==2.0.0"", ""click==8.4.1"", ""pycodestyle==2.14.0"", ""wheel==0.47.0"", ""pylint==4.0.5"", ""jaraco-classes==3.4.0"", ""charset-normalizer==3.4.7"", ""secretstorage==3.5.0"", ""pyproject-hooks==1.2.0"", ""pyproject-api==1.10.0"", ""pluggy==1.6.0"", ""jinja2==3.1.6"", ""requests==2.34.2"", ""pytest==9.0.3"", ""snowballstemmer==3.1.0"", ""mdurl==0.1.2"", ""beautifulsoup4==4.14.3"", ""pytest-django==4.12.0"", ""tox==4.54.0"", ""readme-renderer==44.0"", ""smmap==5.0.3"", ""cachetools==7.1.4"", ""cryptography==48.0.0"", ""django==5.2.14"", ""urllib3==2.7.0"", ""sphinxcontrib-applehelp==2.0.0"", ""django-crum==0.7.9"", ""filelock==3.29.0"", ""astroid==4.0.4"", ""doc8==2.0.0"", ""id==1.6.1"", ""asgiref==3.11.1"", ""more-itertools==11.1.0"", ""tomli-w==1.2.0"", ""six==1.17.0"", ""setuptools==82.0.1"", ""ddt==1.7.2"", ""alabaster==1.0.0"", ""pycparser==3.0"", ""sphinxcontrib-qthelp==2.0.0"", ""uvicorn==0.48.0"", ""distlib==0.4.0"", ""certifi==2026.5.20"", ""docutils==0.21.2"", ""pylint-celery==0.3"", ""restructuredtext-lint==2.0.2"", ""pynacl==1.6.2"", ""twine==6.2.0"", ""jeepney==0.9.0"", ""gitdb==4.0.12"", ""sphinxcontrib-jsmath==1.0.1"", ""pyyaml==6.0.3"", ""gitpython==3.1.50"", ""sphinxcontrib-htmlhelp==2.1.0""]",5,"[""code-annotations"", ""django-waffle"", ""edx-django-utils"", ""pylint-django"", ""pytest-django""]",6,"[""code-annotations"", ""django-waffle"", ""edx-django-utils"", ""pylint-django"", ""django-crum"", ""pytest-django""]",3,"[""edx-django-utils"", ""code-annotations"", ""django-waffle""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,23,"{""total_duration"": ""2003 minutes 58 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2021-04-07 23:40:38,main,Open edX events from the Hooks Extensions Framework,1416,32,True,False,False,False,False,False,False,2026-06-01 00:54:10,Apache License 2.0,9,True,0,0,0,0,5324,292325,0,True,True,False,False,True,False,False,,openedx,0,[],True,"['https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx-events.readthedocs.io/en/latest/', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-events/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-events', 'https://img.shields.io/pypi/v/openedx-events.svg', 'https://pypi.python.org/pypi/openedx-events/', 'https://github.com/openedx/openedx-events/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-events/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-events/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-events?branch=main', 'https://readthedocs.org/projects/openedx-events/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-events.svg', 'https://img.shields.io/github/license/openedx/openedx-events.svg', 'https://github.com/openedx/openedx-events/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-events,"['3', '3.12']",https://github.com/openedx/openedx-events,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-account,,,,False,2026-06-01,False,False,False,False,60,0,,0,{},53,7,"{""@edx/browserslist-config"": ""1.5.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""6.9.1"", ""@testing-library/react"": ""14.3.1"", ""jest-environment-jsdom"": ""^30.3.0"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""1.5.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""^6.6.0"", ""@fortawesome/free-brands-svg-icons"": ""^6.6.0"", ""@fortawesome/free-regular-svg-icons"": ""^6.6.0"", ""@fortawesome/free-solid-svg-icons"": ""^6.6.0"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@tensorflow-models/blazeface"": ""0.1.0"", ""@tensorflow/tfjs-converter"": ""4.22.0"", ""@tensorflow/tfjs-core"": ""4.22.0"", ""bowser"": ""2.14.1"", ""classnames"": ""2.5.1"", ""core-js"": ""3.49.0"", ""font-awesome"": ""4.7.0"", ""form-urlencoded"": ""6.1.6"", ""formdata-polyfill"": ""4.0.10"", ""jslib-html5-camera-photo"": ""3.3.4"", ""lodash.camelcase"": ""4.3.0"", ""lodash.debounce"": ""4.0.8"", ""lodash.findindex"": ""4.6.0"", ""lodash.get"": ""4.4.2"", ""lodash.isempty"": ""4.4.0"", ""lodash.merge"": ""4.6.2"", ""lodash.omit"": ""4.18.0"", ""lodash.pick"": ""4.4.0"", ""lodash.pickby"": ""4.6.0"", ""lodash.snakecase"": ""4.1.1"", ""long"": ""5.3.2"", ""memoize-one"": ""^6.0.0"", ""prop-types"": ""15.8.1"", ""qs"": ""6.15.0"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""^6.25.1"", ""react-router-dom"": ""^6.25.1"", ""react-router-hash-link"": ""2.4.3"", ""react-scrollspy"": ""3.4.3"", ""react-transition-group"": ""4.4.5"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""2.13.9"", ""redux-logger"": ""3.0.6"", ""redux-saga"": ""1.4.2"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""0.14.1"", ""reselect"": ""^5.1.1"", ""universal-cookie"": ""7.2.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,79,"{""total_duration"": ""20166 minutes 22 seconds"", ""checks"": [{""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2019-04-23 15:40:26,master,Open edX micro-frontend application for managing user account information.,20886,182,True,False,False,False,False,False,False,2026-05-18 20:05:19,GNU AGPLv3,22,True,0,0,5411,532186,2011,0,0,False,False,False,False,True,False,False,@edx/frontend-app-account,openedx,0,"['https://support.example.com: HTTPSConnectionPool(host=\'support.example.com\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'support.example.com\', port=443): Failed to resolve \'support.example.com\' ([Errno -5] No address associated with hostname)""))', 'https://openedx.github.io/frontend-platform/module-Config.html: 404']",False,"['https://github.com/openedx/frontend-app-profile', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-plugin-framework', 'https://support.edx.org/hc/en-us/articles/206212088-What-if-I-did-not-receive-a-password-reset-message', 'https://github.com/openedx/frontend-app-account.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-build', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-account/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml', 'https://img.shields.io/codecov/c/github/edx/frontend-app-account', 'https://codecov.io/gh/openedx/frontend-app-account/', 'https://img.shields.io/npm/v/@edx/frontend-app-account.svg', 'https://img.shields.io/npm/dt/@edx/frontend-app-account.svg', 'https://img.shields.io/npm/l/@edx/frontend-app-account.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-04-06,2025-11-03,6,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/enterprise-access,,,,True,2026-06-01,True,True,False,False,202,0,[],0,,0,0,,,117,"[""djangoql==0.18.1"", ""jinja2==3.1.6"", ""typing-extensions==4.15.0"", ""drf-spectacular==0.29.0"", ""charset-normalizer==3.4.4"", ""requests-oauthlib==2.0.0"", ""click==8.3.1"", ""mysqlclient==2.2.7"", ""stripe==14.1.0"", ""simplejson==3.20.2"", ""jsonfield2==4.0.0.post0"", ""djangorestframework==3.16.1"", ""idna==3.11"", ""semantic-version==2.10.0"", ""drf-jwt==1.19.2"", ""python-dateutil==2.9.0.post0"", ""edx-django-release-util==1.5.0"", ""edx-rbac==2.1.0"", ""gunicorn==23.0.0"", ""backoff==1.10.0"", ""edx-django-utils==8.0.1"", ""drf-yasg==1.21.11"", ""django==5.2.10"", ""django-log-request-id==2.1.0"", ""edx-opaque-keys[django]==3.0.0"", ""django-model-utils==5.0.0"", ""cffi==2.0.0"", ""cattrs==25.3.0"", ""certifi==2026.1.4"", ""gevent==25.9.1"", ""coreapi==2.3.3"", ""edx-celeryutils==1.4.0"", ""django-celery-results==2.6.0"", ""prompt-toolkit==3.0.52"", ""redis==7.1.0"", ""pymongo==4.16.0"", ""dnspython==2.8.0"", ""edx-ccx-keys==2.0.2"", ""django-object-actions==5.0.0"", ""click-repl==0.3.0"", ""oauthlib==3.3.1"", ""cryptography==46.0.3"", ""edx-event-bus-kafka==6.1.0"", ""stevedore==5.6.0"", ""edx-auth-backends==4.6.2"", ""pycparser==2.23"", ""itypes==1.2.0"", ""python-slugify==8.0.4"", ""click-plugins==1.1.1.2"", ""text-unidecode==1.3"", ""social-auth-app-django==5.7.0"", ""djangorestframework-csv==3.0.2"", ""edx-drf-extensions==10.6.0"", ""defusedxml==0.7.1"", ""pynacl==1.6.2"", ""python3-openid==3.2.0"", ""openedx-events==10.5.0"", ""kombu==5.6.2"", ""asgiref==3.11.0"", ""pygments==2.19.2"", ""click-didyoumean==0.3.1"", ""vine==5.1.0"", ""jsonschema==4.26.0"", ""markupsafe==3.0.3"", ""billiard==4.2.4"", ""django-rest-swagger==2.2.0"", ""six==1.17.0"", ""greenlet==3.3.0"", ""celery==5.6.2"", ""wcwidth==0.2.14"", ""django-filter==25.2"", ""tzdata==2025.3"", ""jsonschema-specifications==2025.9.1"", ""psutil==7.2.1"", ""edx-braze-client==0.2.5"", ""pyyaml==6.0.3"", ""edx-rest-api-client==6.2.0"", ""attrs==25.4.0"", ""ply==3.11"", ""sqlparse==0.5.5"", ""zope-event==6.1"", ""packaging==25.0"", ""django-cors-headers==4.9.0"", ""inflection==0.5.1"", ""avro==1.12.1"", ""tzlocal==5.3.1"", ""pymemcache==4.0.0"", ""django-extensions==4.1"", ""rpds-py==0.30.0"", ""django-waffle==5.0.0"", ""openapi-codec==1.3.2"", ""zope-interface==8.2"", ""edx-api-doc-tools==2.1.0"", ""rules==3.5"", ""social-auth-core==4.8.3"", ""django-simple-history==3.11.0"", ""amqp==5.3.1"", ""uritemplate==4.2.0"", ""analytics-python==1.4.post1"", ""python-memcached==1.62"", ""confluent-kafka[avro,schema-registry]==2.6.1"", ""referencing==0.37.0"", ""django-crum==0.7.9"", ""edx-enterprise-subsidy-client==2.0.19"", ""edx-toggles==5.4.1"", ""django-crispy-forms==2.5"", ""code-annotations==2.3.0"", ""pyjwt[crypto]==2.10.1"", ""monotonic==1.6"", ""urllib3==2.6.3"", ""crispy-bootstrap5==2025.6"", ""requests==2.32.5"", ""coreschema==0.0.4"", ""pytz==2025.2"", ""fastavro==1.12.1"", ""jsonfield==3.2.0"", ""django-countries==8.2.0""]",202,"[""jaraco-functools==4.4.0"", ""cachetools==6.2.4"", ""djangoql==0.18.1"", ""jinja2==3.1.6"", ""pycodestyle==2.14.0"", ""pylint==4.0.4"", ""typing-extensions==4.15.0"", ""requests-toolbelt==1.0.0"", ""distlib==0.4.0"", ""drf-spectacular==0.29.0"", ""django-debug-toolbar==6.1.0"", ""charset-normalizer==3.4.4"", ""alabaster==1.0.0"", ""pytest-cov==7.0.0"", ""requests-oauthlib==2.0.0"", ""click==8.3.1"", ""mysqlclient==2.2.7"", ""stripe==14.1.0"", ""simplejson==3.20.2"", ""jsonfield2==4.0.0.post0"", ""djangorestframework==3.16.1"", ""django-dynamic-fixture==4.0.1"", ""idna==3.11"", ""pydocstyle==6.3.0"", ""semantic-version==2.10.0"", ""drf-jwt==1.19.2"", ""python-dateutil==2.9.0.post0"", ""faker==40.1.0"", ""colorama==0.4.6"", ""edx-django-release-util==1.5.0"", ""edx-rbac==2.1.0"", ""tox==4.34.1"", ""gunicorn==23.0.0"", ""dill==0.4.0"", ""docutils==0.21.2"", ""sphinx-book-theme==1.1.4"", ""backoff==1.10.0"", ""edx-django-utils==8.0.1"", ""jeepney==0.9.0"", ""jaraco-context==6.0.2"", ""beautifulsoup4==4.14.3"", ""drf-yasg==1.21.11"", ""mccabe==0.7.0"", ""django==5.2.10"", ""sphinx==9.1.0"", ""django-log-request-id==2.1.0"", ""edx-opaque-keys[django]==3.0.0"", ""astroid==4.0.3"", ""django-model-utils==5.0.0"", ""cffi==2.0.0"", ""cattrs==25.3.0"", ""pylint-django==2.7.0"", ""edx-i18n-tools==1.9.0"", ""certifi==2026.1.4"", ""filelock==3.20.3"", ""coreapi==2.3.3"", ""pip-tools==7.5.2"", ""gevent==25.9.1"", ""edx-celeryutils==1.4.0"", ""django-celery-results==2.6.0"", ""prompt-toolkit==3.0.52"", ""sphinxcontrib-jsmath==1.0.1"", ""redis==7.1.0"", ""pymongo==4.16.0"", ""dnspython==2.8.0"", ""roman-numerals==4.1.0"", ""soupsieve==2.8.1"", ""platformdirs==4.5.1"", ""docutils==0.22.4"", ""pluggy==1.6.0"", ""polib==1.2.0"", ""edx-ccx-keys==2.0.2"", ""django-object-actions==5.0.0"", ""nh3==0.3.2"", ""click-repl==0.3.0"", ""oauthlib==3.3.1"", ""cryptography==46.0.3"", ""edx-event-bus-kafka==6.1.0"", ""click-log==0.4.0"", ""secretstorage==3.5.0"", ""stevedore==5.6.0"", ""imagesize==1.4.1"", ""sphinxcontrib-devhelp==2.0.0"", ""edx-auth-backends==4.6.2"", ""pycparser==2.23"", ""itypes==1.2.0"", ""python-slugify==8.0.4"", ""setuptools==80.9.0"", ""more-itertools==10.8.0"", ""click-plugins==1.1.1.2"", ""factory-boy==3.3.3"", ""rich==14.2.0"", ""text-unidecode==1.3"", ""sphinxcontrib-qthelp==2.0.0"", ""social-auth-app-django==5.7.0"", ""djangorestframework-csv==3.0.2"", ""path==16.16.0"", ""edx-drf-extensions==10.6.0"", ""defusedxml==0.7.1"", ""pynacl==1.6.2"", ""python3-openid==3.2.0"", ""openedx-events==10.5.0"", ""kombu==5.6.2"", ""asgiref==3.11.0"", ""pygments==2.19.2"", ""click-didyoumean==0.3.1"", ""vine==5.1.0"", ""jsonschema==4.26.0"", ""markupsafe==3.0.3"", ""billiard==4.2.4"", ""django-rest-swagger==2.2.0"", ""accessible-pygments==0.0.5"", ""six==1.17.0"", ""greenlet==3.3.0"", ""celery==5.6.2"", ""jaraco-classes==3.4.0"", ""wcwidth==0.2.14"", ""django-filter==25.2"", ""pyproject-api==1.10.0"", ""jsonschema-specifications==2025.9.1"", ""tzdata==2025.3"", ""psutil==7.2.1"", ""edx-braze-client==0.2.5"", ""twine==6.2.0"", ""pyyaml==6.0.3"", ""edx-rest-api-client==6.2.0"", ""rfc3986==2.0.0"", ""attrs==25.4.0"", ""pydata-sphinx-theme==0.15.4"", ""ply==3.11"", ""wheel==0.45.1"", ""build==1.4.0"", ""coverage[toml]==7.13.1"", ""edx-lint==5.6.0"", ""babel==2.17.0"", ""dictdiffer==0.9.0"", ""isort==7.0.0"", ""lxml-html-clean==0.4.3"", ""sqlparse==0.5.5"", ""sphinxcontrib-serializinghtml==2.0.0"", ""zope-event==6.1"", ""ddt==1.7.2"", ""packaging==25.0"", ""django-cors-headers==4.9.0"", ""tomlkit==0.13.3"", ""inflection==0.5.1"", ""freezegun==1.5.5"", ""id==1.5.0"", ""pytest-dictsdiff==0.5.8"", ""avro==1.12.1"", ""pytest-django==4.11.1"", ""tzlocal==5.3.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""keyring==25.7.0"", ""pymemcache==4.0.0"", ""django-extensions==4.1"", ""rpds-py==0.30.0"", ""pyproject-hooks==1.2.0"", ""django-waffle==5.0.0"", ""diff-cover==10.2.0"", ""openapi-codec==1.3.2"", ""pylint-celery==0.3"", ""pytest==9.0.2"", ""zope-interface==8.2"", ""edx-api-doc-tools==2.1.0"", ""rules==3.5"", ""social-auth-core==4.8.3"", ""pylint-plugin-utils==0.9.0"", ""django-simple-history==3.11.0"", ""amqp==5.3.1"", ""virtualenv==20.36.1"", ""mdurl==0.1.2"", ""pip==25.3"", ""restructuredtext-lint==2.0.2"", ""chardet==5.2.0"", ""uritemplate==4.2.0"", ""iniconfig==2.3.0"", ""sphinxcontrib-applehelp==2.0.0"", ""analytics-python==1.4.post1"", ""python-memcached==1.62"", ""confluent-kafka[avro,schema-registry]==2.6.1"", ""referencing==0.37.0"", ""django-crum==0.7.9"", ""edx-enterprise-subsidy-client==2.0.19"", ""doc8==2.0.0"", ""edx-toggles==5.4.1"", ""snowballstemmer==3.0.1"", ""markdown-it-py==4.0.0"", ""django-crispy-forms==2.5"", ""code-annotations==2.3.0"", ""pyjwt[crypto]==2.10.1"", ""monotonic==1.6"", ""urllib3==2.6.3"", ""crispy-bootstrap5==2025.6"", ""requests==2.32.5"", ""coreschema==0.0.4"", ""pytz==2025.2"", ""readme-renderer==44.0"", ""lxml[html-clean]==6.0.2"", ""fastavro==1.12.1"", ""jsonfield==3.2.0"", ""django-countries==8.2.0""]",25,"[""django-countries"", ""pylint-django"", ""edx-django-release-util"", ""pytest-django"", ""django-cors-headers"", ""edx-drf-extensions"", ""django-extensions"", ""django-debug-toolbar"", ""social-auth-app-django"", ""django-filter"", ""edx-auth-backends"", ""edx-rest-api-client"", ""edx-i18n-tools"", ""django-waffle"", ""django-object-actions"", ""edx-rbac"", ""factory-boy"", ""django-crispy-forms"", ""django-celery-results"", ""edx-toggles"", ""edx-celeryutils"", ""edx-django-utils"", ""edx-api-doc-tools"", ""code-annotations"", ""djangorestframework""]",35,"[""django-countries"", ""pylint-django"", ""edx-django-release-util"", ""drf-jwt"", ""pytest-django"", ""django-cors-headers"", ""edx-drf-extensions"", ""django-extensions"", ""django-simple-history"", ""drf-yasg"", ""django-model-utils"", ""django-dynamic-fixture"", ""django-debug-toolbar"", ""social-auth-app-django"", ""django-rest-swagger"", ""djangorestframework-csv"", ""django-filter"", ""edx-auth-backends"", ""edx-rest-api-client"", ""rules"", ""edx-i18n-tools"", ""django-waffle"", ""django-object-actions"", ""edx-rbac"", ""factory-boy"", ""django-crispy-forms"", ""django-celery-results"", ""jsonfield"", ""edx-toggles"", ""edx-celeryutils"", ""edx-django-utils"", ""django-crum"", ""edx-api-doc-tools"", ""code-annotations"", ""djangorestframework""]",20,"[""django-countries"", ""edx-django-release-util"", ""django-cors-headers"", ""edx-drf-extensions"", ""django-extensions"", ""django-debug-toolbar"", ""social-auth-app-django"", ""django-filter"", ""edx-auth-backends"", ""edx-rest-api-client"", ""edx-i18n-tools"", ""django-waffle"", ""edx-rbac"", ""django-crispy-forms"", ""django-celery-results"", ""edx-toggles"", ""edx-celeryutils"", ""edx-django-utils"", ""edx-api-doc-tools"", ""code-annotations""]",True,,True,False,True,True,False,False,True,True,True,True,False,False,True,True,True,False,True,False,True,True,True,78,"{""total_duration"": ""2156 minutes 14 seconds"", ""checks"": [{""name"": ""tests (3.12, pinned)"", ""duration"": ""11 minutes 28 seconds""}, {""name"": ""tests (3.12, 5.2)"", ""duration"": ""11 minutes 27 seconds""}, {""name"": ""upgrade_requirements (3.12)"", ""duration"": ""2 minutes 19 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2022-01-07 21:05:23,main,Service to manage access to content for enterprise users,8125,18,True,False,False,False,False,False,False,2026-06-01 03:19:00,GNU AGPLv3,22,True,0,0,4135,0,10959,3236104,3206,True,True,False,False,True,False,False,,openedx,5,"['https://openedx-slack-invite.herokuapp.com/: 404', 'https://github.com/edx/enterprise-access/workflows/Python%20CI/badge.svg?branch=main: 404', 'https://enterprise-access.readthedocs.io/en/latest/: 404']",True,"['https://github.com/edx/devstack', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/enterprise-access.svg', 'https://pypi.python.org/pypi/enterprise-access/', 'https://github.com/edx/enterprise-access/actions', 'https://codecov.io/github/edx/enterprise-access/coverage.svg?branch=main', 'https://codecov.io/github/edx/enterprise-access?branch=main', 'https://readthedocs.org/projects/enterprise-access/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/enterprise-access.svg', 'https://img.shields.io/github/license/edx/enterprise-access.svg', 'https://github.com/edx/enterprise-access/blob/main/LICENSE.txt']",True,True,False,False,,,True,,,0,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/RecommenderXBlock,,,,True,2026-06-01,True,True,False,False,26,0,[],0,,0,0,,,17,"[""django==5.2.12"", ""lxml[html-clean]==6.0.2"", ""lxml-html-clean==0.4.4"", ""polib==1.2.0"", ""pyyaml==6.0.3"", ""simplejson==3.20.2"", ""sqlparse==0.5.5"", ""fs==2.4.16"", ""path==16.16.0"", ""webencodings==0.5.1"", ""webob==1.8.9"", ""appdirs==1.4.4"", ""asgiref==3.11.1"", ""edx-i18n-tools==1.9.0"", ""web-fragments==3.1.0"", ""bleach==6.3.0"", ""six==1.17.0""]",26,"[""wheel==0.46.3"", ""polib==1.2.0"", ""pyyaml==6.0.3"", ""pip==26.0.1"", ""webencodings==0.5.1"", ""setuptools==82.0.0"", ""lxml[html-clean]==6.0.2"", ""sqlparse==0.5.5"", ""fs==2.4.16"", ""webob==1.8.9"", ""appdirs==1.4.4"", ""click==8.3.1"", ""pip-tools==7.5.3"", ""six==1.17.0"", ""build==1.4.0"", ""path==16.16.0"", ""pycodestyle==2.14.0"", ""asgiref==3.11.1"", ""edx-i18n-tools==1.9.0"", ""bleach==6.3.0"", ""django==5.2.12"", ""packaging==26.0"", ""lxml-html-clean==0.4.4"", ""simplejson==3.20.2"", ""web-fragments==3.1.0"", ""pyproject-hooks==1.2.0""]",2,"[""web-fragments"", ""edx-i18n-tools""]",2,"[""web-fragments"", ""edx-i18n-tools""]",2,"[""web-fragments"", ""edx-i18n-tools""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,False,True,False,False,True,False,False,29,"{""total_duration"": ""2221 minutes 8 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 16 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 12 seconds""}]}",Other,2017-07-07 15:37:29,master,"edX: An XBlock to recommend resources to other students, written by Daniel Li, under my supervision",1423,15,True,False,False,False,False,False,False,2026-05-30 13:37:31,GNU AGPLv3,4,True,17972,0,19728,70007,1429,56828,0,False,False,False,False,False,False,False,,openedx,3,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,recommender-xblock,"['3', '3.12']",https://github.com/openedx/RecommenderXBlock,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-toggles,,,,True,2026-06-01,True,True,False,False,112,0,[],0,,0,0,,,18,"[""edx-django-utils==8.0.1"", ""jinja2==3.1.6"", ""django==5.2.13"", ""python-slugify==8.0.4"", ""pycparser==3.0"", ""stevedore==5.7.0"", ""sqlparse==0.5.5"", ""pynacl==1.6.2"", ""markupsafe==3.0.3"", ""cffi==2.0.0"", ""pyyaml==6.0.3"", ""click==8.3.2"", ""text-unidecode==1.3"", ""code-annotations==3.0.0"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""asgiref==3.11.1"", ""psutil==7.2.2""]",112,"[""pylint-django==2.7.0"", ""pygments==2.20.0"", ""markupsafe==3.0.3"", ""coverage[toml]==7.13.5"", ""iniconfig==2.3.0"", ""sphinxcontrib-qthelp==2.0.0"", ""click-log==0.4.0"", ""atlassian-python-api==4.0.7"", ""pyproject-api==1.10.0"", ""sphinxcontrib-devhelp==2.0.0"", ""build==1.4.2"", ""babel==2.18.0"", ""charset-normalizer==3.4.7"", ""beautifulsoup4==4.14.3"", ""django==5.2.13"", ""python-discovery==1.2.1"", ""polib==1.2.0"", ""cffi==2.0.0"", ""mdurl==0.1.2"", ""code-annotations==3.0.0"", ""six==1.17.0"", ""colorama==0.4.6"", ""pycodestyle==2.14.0"", ""jaraco-classes==3.4.0"", ""lxml[html-clean]==6.0.2"", ""soupsieve==2.8.3"", ""twine==6.2.0"", ""pip==26.0.1"", ""sqlparse==0.5.5"", ""lxml-html-clean==0.4.4"", ""pytest==9.0.2"", ""edx-lint==6.0.0"", ""pluggy==1.6.0"", ""text-unidecode==1.3"", ""pyproject-hooks==1.2.0"", ""wheel==0.46.3"", ""python-slugify==8.0.4"", ""platformdirs==4.9.4"", ""pydata-sphinx-theme==0.16.1"", ""pynacl==1.6.2"", ""keyring==25.7.0"", ""docutils==0.21.2"", ""certifi==2026.2.25"", ""virtualenv==21.2.0"", ""more-itertools==11.0.1"", ""packaging==26.0"", ""markdown-it-py==4.0.0"", ""pytest-cov==7.1.0"", ""requests==2.33.1"", ""tox==4.52.0"", ""filelock==3.25.2"", ""django-crum==0.7.9"", ""mccabe==0.7.0"", ""rfc3986==2.0.0"", ""django-waffle==5.0.0"", ""snowballstemmer==3.0.1"", ""edx-i18n-tools==2.0.0"", ""setuptools==82.0.1"", ""accessible-pygments==0.0.5"", ""jaraco-functools==4.4.0"", ""pip-tools==7.5.3"", ""pytest-django==4.12.0"", ""chardet==7.4.0.post2"", ""roman-numerals==4.1.0"", ""wrapt==2.1.2"", ""sphinxcontrib-jsmath==1.0.1"", ""cachetools==7.0.5"", ""rich==14.3.3"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pydocstyle==6.3.0"", ""isort==8.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""idna==3.11"", ""edx-django-utils==8.0.1"", ""jinja2==3.1.6"", ""nh3==0.3.4"", ""stevedore==5.7.0"", ""readme-renderer==44.0"", ""diff-cover==10.2.0"", ""sphinx-book-theme==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""jeepney==0.9.0"", ""urllib3==2.6.3"", ""alabaster==1.0.0"", ""requests-oauthlib==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""click==8.3.2"", ""tomlkit==0.14.0"", ""restructuredtext-lint==2.0.2"", ""pylint-celery==0.3"", ""psutil==7.2.2"", ""pycparser==3.0"", ""id==1.6.1"", ""tomli-w==1.2.0"", ""secretstorage==3.5.0"", ""deprecated==1.3.1"", ""asgiref==3.11.1"", ""path==16.16.0"", ""pylint==4.0.5"", ""pyyaml==6.0.3"", ""sphinx==9.1.0"", ""astroid==4.0.4"", ""imagesize==2.0.0"", ""oauthlib==3.3.1"", ""doc8==2.0.0"", ""cryptography==46.0.6"", ""typing-extensions==4.15.0"", ""requests-toolbelt==1.0.0"", ""dill==0.4.1"", ""jaraco-context==6.1.2"", ""jmespath==1.1.0"", ""distlib==0.4.0""]",6,"[""code-annotations"", ""edx-django-utils"", ""django-waffle"", ""edx-i18n-tools"", ""pylint-django"", ""pytest-django""]",7,"[""code-annotations"", ""edx-django-utils"", ""django-waffle"", ""edx-i18n-tools"", ""pylint-django"", ""django-crum"", ""pytest-django""]",4,"[""code-annotations"", ""edx-django-utils"", ""edx-i18n-tools"", ""django-waffle""]",True,,True,False,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,9,"{""total_duration"": ""0 minutes 40 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2018-07-05 18:19:46,master,Library and utilities for feature toggles,735,16,True,False,False,False,False,False,False,2026-05-30 15:17:44,GNU AGPLv3,1,True,0,0,0,0,4590,90839,0,True,True,False,False,True,False,True,,openedx,3,[],True,"['https://docs.openedx.org/projects/edx-toggles/en/latest/readme.html', 'https://github.com/openedx/edx-toggles', 'https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-toggles.svg', 'https://pypi.python.org/pypi/edx-toggles/', 'https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-toggles?branch=master', 'https://readthedocs.org/projects/edx-toggles/badge/?version=latest', 'http://edx-toggles.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-toggles.svg', 'https://img.shields.io/github/license/edx/edx-toggles.svg', 'https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-toggles,"['3', '3.12']",https://github.com/openedx/edx-toggles,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/opaque-keys,,,,True,2026-06-01,True,True,False,False,85,0,[],0,,0,0,,,4,"[""typing-extensions==4.15.0"", ""dnspython==2.8.0"", ""stevedore==5.8.0"", ""pymongo==4.17.0""]",85,"[""pytest-cov==7.1.0"", ""sphinx-book-theme==1.2.0"", ""tomlkit==0.15.0"", ""pylint-plugin-utils==0.9.0"", ""tomli-w==1.2.0"", ""hypothesis==6.152.9"", ""nh3==0.3.5"", ""sphinxcontrib-jsmath==1.0.1"", ""distlib==0.4.0"", ""mccabe==0.7.0"", ""mock==5.2.0"", ""platformdirs==4.9.6"", ""snowballstemmer==3.1.0"", ""pytest-django==4.12.0"", ""urllib3==2.7.0"", ""click-log==0.4.0"", ""sphinxcontrib-devhelp==2.0.0"", ""imagesize==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""packaging==26.2"", ""markupsafe==3.0.3"", ""iniconfig==2.3.0"", ""pip-tools==7.5.3"", ""soupsieve==2.8.4"", ""sphinxcontrib-applehelp==2.0.0"", ""coverage==7.14.0"", ""python-slugify==8.0.4"", ""cachetools==7.1.4"", ""execnet==2.1.2"", ""pyproject-api==1.10.0"", ""click==8.4.1"", ""wheel==0.47.0"", ""pytest-xdist==3.8.0"", ""pip==26.1.1"", ""charset-normalizer==3.4.7"", ""certifi==2026.5.20"", ""pymongo==4.17.0"", ""stevedore==5.8.0"", ""roman-numerals==4.1.0"", ""edx-lint==6.1.0"", ""pathspec==1.1.1"", ""mypy-extensions==1.1.0"", ""jinja2==3.1.6"", ""code-annotations==3.0.0"", ""docutils==0.22.4"", ""build==1.5.0"", ""sphinx==9.1.0"", ""ast-serialize==0.5.0"", ""virtualenv==21.3.3"", ""sortedcontainers==2.4.0"", ""dill==0.4.1"", ""accessible-pygments==0.0.5"", ""tox==4.54.0"", ""pyyaml==6.0.3"", ""beautifulsoup4==4.14.3"", ""sphinxcontrib-qthelp==2.0.0"", ""filelock==3.29.0"", ""astroid==4.0.4"", ""pyproject-hooks==1.2.0"", ""isort==8.0.1"", ""setuptools==82.0.1"", ""pygments==2.20.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""coverage[toml]==7.14.0"", ""babel==2.18.0"", ""readme-renderer==44.0"", ""text-unidecode==1.3"", ""ddt==1.7.2"", ""dnspython==2.8.0"", ""python-discovery==1.3.1"", ""colorama==0.4.6"", ""mypy==2.1.0"", ""six==1.17.0"", ""pylint==4.0.5"", ""librt==0.11.0"", ""pydata-sphinx-theme==0.16.1"", ""pylint-celery==0.3"", ""alabaster==1.0.0"", ""pycodestyle==2.14.0"", ""pluggy==1.6.0"", ""requests==2.34.2"", ""idna==3.16"", ""typing-extensions==4.15.0"", ""pylint-django==2.7.0"", ""pytest==9.0.3""]",3,"[""code-annotations"", ""pytest-django"", ""pylint-django""]",3,"[""code-annotations"", ""pytest-django"", ""pylint-django""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,12,"{""total_duration"": ""9633 minutes 53 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""3 minutes 1 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, without-django)"", ""duration"": ""2 minutes 40 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2014-05-23 17:24:54,master,,995,21,True,False,False,False,False,False,False,2026-06-01 00:28:12,GNU AGPLv3,2,True,0,0,0,0,1757,258429,0,True,False,False,False,True,False,False,,openedx,0,[],False,"['http://code.edx.org/', 'https://github.com/openedx/opaque-keys/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/opaque-keys/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/edx/opaque-keys/badge.svg?branch=master', 'https://coveralls.io/r/edx/opaque-keys', 'https://github.com/openedx/edx-platform/wiki/Opaque-Keys']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-opaque-keys,"['3', '3.12']",https://github.com/openedx/opaque-keys,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/web-fragments,,,,True,2026-06-01,True,True,False,False,105,0,[],0,,0,0,,,0,[],105,"[""sqlparse==0.5.5"", ""text-unidecode==1.3"", ""jaraco-functools==4.5.0"", ""path==16.16.0"", ""iniconfig==2.3.0"", ""alabaster==1.0.0"", ""jaraco-classes==3.4.0"", ""readme-renderer==44.0"", ""pycodestyle==2.14.0"", ""click-log==0.4.0"", ""asgiref==3.11.1"", ""cryptography==48.0.0"", ""mccabe==0.7.0"", ""sphinx-book-theme==1.2.0"", ""pluggy==1.6.0"", ""jaraco-context==6.1.2"", ""idna==3.17"", ""jinja2==3.1.6"", ""accessible-pygments==0.0.5"", ""dill==0.4.1"", ""markdown-it-py==4.2.0"", ""virtualenv==21.4.1"", ""pytest==9.0.3"", ""astroid==4.0.4"", ""more-itertools==11.1.0"", ""babel==2.18.0"", ""click==8.4.1"", ""soupsieve==2.8.4"", ""colorama==0.4.6"", ""polib==1.2.0"", ""pyproject-api==1.10.1"", ""docutils==0.21.2"", ""rfc3986==2.0.0"", ""rich==15.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""edx-i18n-tools==2.0.0"", ""filelock==3.29.0"", ""snowballstemmer==3.1.0"", ""pip==26.1.1"", ""id==1.6.1"", ""pockets==0.9.1"", ""jeepney==0.9.0"", ""requests==2.34.2"", ""requests-toolbelt==1.0.0"", ""typing-extensions==4.15.0"", ""lxml-html-clean==0.4.5"", ""platformdirs==4.10.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""lxml[html-clean]==6.1.1"", ""sphinxcontrib-devhelp==2.0.0"", ""isort==8.0.1"", ""six==1.17.0"", ""distlib==0.4.0"", ""charset-normalizer==3.4.7"", ""coverage[toml]==7.14.1"", ""restructuredtext-lint==2.0.2"", ""nh3==0.3.5"", ""stevedore==5.8.0"", ""beautifulsoup4==4.14.3"", ""pylint==4.0.5"", ""markupsafe==3.0.3"", ""pytest-cov==7.1.0"", ""keyring==25.7.0"", ""mdurl==0.1.2"", ""pylint-celery==0.3"", ""pyproject-hooks==1.2.0"", ""packaging==26.2"", ""certifi==2026.5.20"", ""tomli-w==1.2.0"", ""secretstorage==3.5.0"", ""pylint-django==2.7.0"", ""setuptools==82.0.1"", ""tox==4.55.0"", ""urllib3==2.7.0"", ""cffi==2.0.0"", ""python-slugify==8.0.4"", ""sphinxcontrib-napoleon==0.7"", ""tomlkit==0.15.0"", ""chardet==7.4.3"", ""wheel==0.47.0"", ""imagesize==2.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""django==5.2.14"", ""ddt==1.3.1"", ""pip-tools==7.5.3"", ""sphinx==9.1.0"", ""edx-lint==6.1.0"", ""docutils==0.23"", ""pydocstyle==6.3.0"", ""pyyaml==6.0.3"", ""roman-numerals==4.1.0"", ""build==1.5.0"", ""python-discovery==1.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""cachetools==7.1.4"", ""pycparser==3.0"", ""pytest-django==4.12.0"", ""code-annotations==3.0.0"", ""pygments==2.20.0"", ""pydata-sphinx-theme==0.16.1"", ""twine==6.2.0"", ""pylint-plugin-utils==0.9.0"", ""doc8==2.0.0"", ""diff-cover==10.2.1""]",4,"[""edx-i18n-tools"", ""pytest-django"", ""pylint-django"", ""code-annotations""]",4,"[""edx-i18n-tools"", ""pytest-django"", ""pylint-django"", ""code-annotations""]",2,"[""edx-i18n-tools"", ""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,42,"{""total_duration"": ""242 minutes 41 seconds"", ""checks"": [{""name"": ""update-pip-graph"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2016-12-08 15:24:36,master,Provides the ability to render fragments of web pages,356,9,True,False,False,False,False,False,False,2026-05-29 07:20:08,Apache License 2.0,1,True,0,0,120,0,3016,27818,0,True,True,False,False,True,False,False,,openedx,2,"['http://web-fragments.readthedocs.io/en/latest/?badge=latest: 404', 'http://web-fragments.readthedocs.io/en/latest/: 404', 'https://web-fragments.readthedocs.org: 404']",True,"['https://img.shields.io/pypi/v/web-fragments.svg', 'https://pypi.python.org/pypi/web-fragments/', 'https://github.com/openedx/web-fragments/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/web-fragments/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/web-fragments/coverage.svg?branch=master', 'http://codecov.io/github/edx/web-fragments?branch=master', 'https://img.shields.io/pypi/pyversions/web-fragments.svg', 'https://img.shields.io/github/license/edx/web-fragments.svg', 'https://github.com/openedx/web-fragments/blob/master/LICENSE.txt', 'https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0012-arch-fragment-views.html', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help']",True,True,False,False,,,False,,,,False,True,True,True,,False,web-fragments,"['3', '3.12']",https://github.com/openedx/web-fragments,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/olxcleaner,,,,True,2026-06-01,False,False,False,False,101,0,[],0,,0,0,,,5,"[""pylatexenc==2.10"", ""lxml==5.2.1"", ""python-dateutil==2.9.0.post0"", ""pytz==2024.1"", ""six==1.16.0""]",101,"[""importlib-resources==6.4.0"", ""pyproject-hooks==1.0.0"", ""jaraco-classes==3.4.0"", ""requests-toolbelt==1.0.0"", ""sphinxcontrib-applehelp==1.0.4"", ""nh3==0.2.17"", ""jinja2==3.1.3"", ""docutils==0.19"", ""packaging==24.0"", ""sphinx==6.2.1"", ""pylatexenc==2.10"", ""diff-cover==9.0.0"", ""click-log==0.4.0"", ""isort==5.13.2"", ""markupsafe==2.1.5"", ""python-dateutil==2.9.0.post0"", ""doc8==1.1.1"", ""click==8.1.7"", ""filelock==3.13.4"", ""pycodestyle==2.11.1"", ""pygments==2.17.2"", ""cachetools==5.3.3"", ""wheel==0.43.0"", ""six==1.16.0"", ""tomlkit==0.12.4"", ""dill==0.3.8"", ""iniconfig==2.0.0"", ""code-annotations==1.8.0"", ""astroid==3.1.0"", ""alabaster==0.7.13"", ""sphinx-book-theme==1.0.1"", ""markdown-it-py==3.0.0"", ""tox==4.14.2"", ""pydata-sphinx-theme==0.14.4"", ""cffi==1.16.0"", ""restructuredtext-lint==1.4.0"", ""more-itertools==10.2.0"", ""mdurl==0.1.2"", ""imagesize==1.4.1"", ""pylint-django==2.5.5"", ""colorama==0.4.6"", ""pylint-celery==0.3"", ""twine==5.0.0"", ""python-slugify==8.0.4"", ""coverage[toml]==7.4.4"", ""pluggy==1.4.0"", ""jeepney==0.8.0"", ""sphinxcontrib-jsmath==1.0.1"", ""rich==13.7.1"", ""platformdirs==4.2.0"", ""jaraco-context==5.3.0"", ""requests==2.31.0"", ""text-unidecode==1.3"", ""backports-tarfile==1.1.0"", ""chardet==5.2.0"", ""pylint-plugin-utils==0.8.2"", ""pytz==2024.1"", ""pkginfo==1.10.0"", ""soupsieve==2.5"", ""cryptography==42.0.5"", ""importlib-metadata==6.11.0"", ""pip-tools==7.4.1"", ""idna==3.7"", ""stevedore==5.2.0"", ""mccabe==0.7.0"", ""urllib3==2.2.1"", ""pycparser==2.22"", ""pytest==8.1.1"", ""setuptools==69.5.1"", ""secretstorage==3.3.3"", ""babel==2.14.0"", ""pip==24.0"", ""jaraco-functools==4.0.1"", ""pytest-cov==5.0.0"", ""edx-lint==5.3.6"", ""distlib==0.3.8"", ""virtualenv==20.25.3"", ""docutils==0.20.1"", ""keyring==25.1.0"", ""pyproject-api==1.6.1"", ""build==1.2.1"", ""readme-renderer==43.0"", ""lxml==5.2.1"", ""zipp==3.18.1"", ""rfc3986==2.0.0"", ""charset-normalizer==3.3.2"", ""snowballstemmer==2.2.0"", ""tomli==2.0.1"", ""sphinxcontrib-qthelp==1.0.3"", ""pydocstyle==6.3.0"", ""sphinxcontrib-devhelp==1.0.2"", ""certifi==2024.2.2"", ""pylint==3.1.0"", ""beautifulsoup4==4.12.3"", ""sphinxcontrib-serializinghtml==1.1.5"", ""pyyaml==6.0.1"", ""typing-extensions==4.11.0"", ""pbr==6.0.0"", ""accessible-pygments==0.0.4"", ""sphinxcontrib-htmlhelp==2.0.1"", ""exceptiongroup==1.2.1""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,False,False,False,False,True,True,True,False,False,True,True,True,9,"{""total_duration"": ""0 minutes 17 seconds"", ""checks"": [{""name"": ""Python Tests (ubuntu-latest, 3.11)"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""Python Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 15 seconds""}]}",Other,2021-04-02 16:44:34,master,Tool for checking edX courses for errors and creating content reports,243,6,True,False,False,False,True,False,False,2026-05-30 15:27:43,GNU GPLv3,0,True,0,0,1361,0,3140,180832,0,False,True,False,False,True,False,False,,openedx,0,[],False,"['https://github.com/openedx/olxcleaner/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/olxcleaner/actions/workflows/ci.yaml', 'https://codecov.io/gh/jolyonb/olxcleaner/branch/master/graphs/badge.svg', 'https://codecov.io/gh/jolyonb/olxcleaner', 'https://github.com/openedx/olxcleaner']",True,True,False,False,,,False,,,,False,False,False,True,,False,olxcleaner,"['3.11', '3.12']",https://github.com/openedx/olxcleaner,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-user-groups,,,,True,2026-06-01,False,False,False,False,105,0,[],0,,0,0,,,4,"[""django==4.2.21"", ""sqlparse==0.5.3"", ""asgiref==3.8.1"", ""openedx-atlas==0.7.0""]",105,"[""lxml-html-clean==0.4.2"", ""cachetools==6.0.0"", ""filelock==3.18.0"", ""pyproject-api==1.9.1"", ""packaging==25.0"", ""edx-lint==5.6.0"", ""platformdirs==4.3.8"", ""pylint-django==2.6.1"", ""markdown-it-py==3.0.0"", ""rich==14.0.0"", ""build==1.3.0"", ""path==16.16.0"", ""doc8==1.1.2"", ""pluggy==1.6.0"", ""tomlkit==0.13.2"", ""backports-tarfile==1.2.0"", ""pycparser==2.22"", ""imagesize==1.4.1"", ""pylint==3.3.7"", ""pyproject-hooks==1.2.0"", ""dill==0.4.0"", ""jaraco-context==6.0.1"", ""jinja2==3.1.6"", ""pytest-cov==6.1.1"", ""polib==1.2.0"", ""mccabe==0.7.0"", ""code-annotations==2.3.0"", ""click==8.2.1"", ""markupsafe==3.0.2"", ""django==4.2.21"", ""twine==6.1.0"", ""accessible-pygments==0.0.5"", ""six==1.17.0"", ""keyring==25.6.0"", ""asgiref==3.8.1"", ""iniconfig==2.1.0"", ""requests-toolbelt==1.0.0"", ""pydocstyle==6.3.0"", ""lxml[html-clean]==5.4.0"", ""diff-cover==9.3.1"", ""openedx-atlas==0.7.0"", ""restructuredtext-lint==1.4.0"", ""sphinxcontrib-applehelp==2.0.0"", ""beautifulsoup4==4.13.4"", ""astroid==3.3.10"", ""pydata-sphinx-theme==0.15.4"", ""pytest-django==4.11.1"", ""virtualenv==20.31.2"", ""jaraco-classes==3.4.0"", ""zipp==3.23.0"", ""sphinx-book-theme==1.1.4"", ""id==1.5.0"", ""chardet==5.2.0"", ""requests==2.32.3"", ""typing-extensions==4.13.2"", ""stevedore==5.4.1"", ""sqlparse==0.5.3"", ""jaraco-functools==4.1.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinx==8.2.3"", ""docutils==0.21.2"", ""tox==4.26.0"", ""soupsieve==2.7"", ""snowballstemmer==3.0.1"", ""mdurl==0.1.2"", ""pygments==2.19.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""idna==3.10"", ""pyyaml==6.0.2"", ""python-slugify==8.0.4"", ""isort==6.0.1"", ""build==1.2.2.post1"", ""rfc3986==2.0.0"", ""colorama==0.4.6"", ""pylint-plugin-utils==0.8.2"", ""setuptools==80.9.0"", ""nh3==0.2.21"", ""certifi==2025.4.26"", ""distlib==0.3.9"", ""coverage[toml]==7.8.2"", ""cffi==1.17.1"", ""cryptography==45.0.3"", ""pip-tools==7.5.0"", ""jeepney==0.9.0"", ""more-itertools==10.7.0"", ""readme-renderer==44.0"", ""secretstorage==3.3.3"", ""click-log==0.4.0"", ""alabaster==1.0.0"", ""pbr==6.1.1"", ""edx-i18n-tools==1.9.0"", ""pycodestyle==2.13.0"", ""wheel==0.45.1"", ""roman-numerals-py==3.1.0"", ""importlib-metadata==8.7.0"", ""pylint-celery==0.3"", ""pytest==8.3.5"", ""text-unidecode==1.3"", ""charset-normalizer==3.4.2"", ""urllib3==2.2.3"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pip==24.2"", ""babel==2.17.0""]",4,"[""pylint-django"", ""code-annotations"", ""pytest-django"", ""edx-i18n-tools""]",4,"[""pylint-django"", ""code-annotations"", ""pytest-django"", ""edx-i18n-tools""]",2,"[""code-annotations"", ""edx-i18n-tools""]",True,,True,True,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""0 minutes 36 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2025-05-23 16:04:03,main,"Specifications for user group methods, data models, and APIs used in the management of user groups within the Open edX ecosystem.",2918,2,True,False,False,False,False,False,False,2026-05-30 15:31:56,GNU AGPLv3,8,True,0,0,873,0,5137,10665,0,False,True,False,False,True,False,False,,openedx,0,['https://docs.openedx.org/projects/openedx-user-groups: 404'],True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4901404678/User+Groups', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-user-groups/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-user-groups', 'https://img.shields.io/pypi/v/openedx-user-groups.svg', 'https://pypi.python.org/pypi/openedx-user-groups/', 'https://github.com/openedx/openedx-user-groups/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-user-groups/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-user-groups/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-user-groups?branch=main', 'https://readthedocs.org/projects/openedx-user-groups/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-user-groups.svg', 'https://img.shields.io/github/license/edunext/openedx-user-groups.svg', 'https://github.com/openedx/openedx-user-groups/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-user-groups,"['3', '3.12']",https://github.com/openedx/openedx-user-groups,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/xblock-google-drive,,,,True,2026-06-01,True,True,False,False,95,0,[],0,,0,0,,,81,"[""markupsafe==3.0.3"", ""fs-s3fs==1.1.1"", ""requests==2.34.2"", ""pylint==4.0.5"", ""simplejson==4.1.1"", ""snowballstemmer==3.1.0"", ""pyproject-hooks==1.2.0"", ""fs==2.4.16"", ""distlib==0.4.0"", ""backports-functools-lru-cache==2.0.0"", ""mock==5.2.0"", ""botocore==1.43.14"", ""asgiref==3.11.1"", ""binaryornot==0.6.0"", ""s3transfer==0.17.0"", ""iniconfig==2.3.0"", ""openedx-django-pyfs==4.0.0"", ""cookiecutter==2.7.1"", ""charset-normalizer==3.4.7"", ""pip-tools==7.5.3"", ""build==1.5.0"", ""click-log==0.4.0"", ""stevedore==5.8.0"", ""chardet==7.4.3"", ""pylint-celery==0.3"", ""xblock[django]==6.1.0"", ""boto3==1.43.14"", ""webob==1.8.9"", ""python-slugify==8.0.4"", ""pluggy==1.6.0"", ""text-unidecode==1.3"", ""lxml-html-clean==0.4.5"", ""urllib3==2.7.0"", ""xblock-sdk==0.14.0"", ""coverage[toml]==7.14.0"", ""diff-cover==10.2.1"", ""wheel==0.47.0"", ""sqlparse==0.5.5"", ""pygments==2.20.0"", ""pypng==0.20220715.0"", ""ddt==1.7.2"", ""platformdirs==4.9.6"", ""jinja2==3.1.6"", ""idna==3.16"", ""pylint-plugin-utils==0.9.0"", ""packaging==26.2"", ""caniusepython3==7.3.0"", ""pytest==9.0.3"", ""isort==8.0.1"", ""mdurl==0.1.2"", ""astroid==4.0.4"", ""pylint-django==2.7.0"", ""pytest-cov==7.1.0"", ""tzdata==2026.2"", ""tomlkit==0.15.0"", ""lxml[html-clean]==6.1.1"", ""pycodestyle==2.14.0"", ""lazy==1.6"", ""django==5.2.14"", ""polib==1.2.0"", ""edx-lint==6.1.0"", ""pytest-django==4.12.0"", ""rich==15.0.0"", ""code-annotations==3.0.0"", ""appdirs==1.4.4"", ""pydocstyle==6.3.0"", ""markdown-it-py==4.2.0"", ""python-dateutil==2.9.0.post0"", ""click==8.4.1"", ""pyyaml==6.0.3"", ""arrow==1.4.0"", ""edx-i18n-tools==2.0.0"", ""dill==0.4.1"", ""path==16.16.0"", ""web-fragments==4.0.0"", ""certifi==2026.5.20"", ""six==1.17.0"", ""mccabe==0.7.0"", ""jmespath==1.1.0"", ""pytz==2026.2"", ""mako==1.3.12""]",95,"[""markupsafe==3.0.3"", ""setuptools==82.0.1"", ""fs-s3fs==1.1.1"", ""requests==2.34.2"", ""pylint==4.0.5"", ""simplejson==4.1.1"", ""snowballstemmer==3.1.0"", ""pyproject-hooks==1.2.0"", ""fs==2.4.16"", ""distlib==0.4.0"", ""backports-functools-lru-cache==2.0.0"", ""mock==5.2.0"", ""botocore==1.43.14"", ""asgiref==3.11.1"", ""binaryornot==0.6.0"", ""cachetools==7.1.4"", ""s3transfer==0.17.0"", ""iniconfig==2.3.0"", ""openedx-django-pyfs==4.0.0"", ""python-discovery==1.3.1"", ""coveralls==4.1.0"", ""cookiecutter==2.7.1"", ""charset-normalizer==3.4.7"", ""pip-tools==7.5.3"", ""build==1.5.0"", ""click-log==0.4.0"", ""stevedore==5.8.0"", ""colorama==0.4.6"", ""chardet==7.4.3"", ""pip==26.1.1"", ""pylint-celery==0.3"", ""xblock[django]==6.1.0"", ""boto3==1.43.14"", ""webob==1.8.9"", ""python-slugify==8.0.4"", ""pluggy==1.6.0"", ""virtualenv==21.3.3"", ""pyproject-api==1.10.0"", ""shellingham==1.5.4"", ""text-unidecode==1.3"", ""lxml-html-clean==0.4.5"", ""urllib3==2.7.0"", ""xblock-sdk==0.14.0"", ""filelock==3.29.0"", ""coverage[toml]==7.14.0"", ""diff-cover==10.2.1"", ""wheel==0.47.0"", ""annotated-doc==0.0.4"", ""sqlparse==0.5.5"", ""pygments==2.20.0"", ""pypng==0.20220715.0"", ""ddt==1.7.2"", ""platformdirs==4.9.6"", ""jinja2==3.1.6"", ""idna==3.16"", ""tomli-w==1.2.0"", ""pylint-plugin-utils==0.9.0"", ""packaging==26.2"", ""caniusepython3==7.3.0"", ""pytest==9.0.3"", ""isort==8.0.1"", ""mdurl==0.1.2"", ""astroid==4.0.4"", ""pylint-django==2.7.0"", ""pytest-cov==7.1.0"", ""tzdata==2026.2"", ""tomlkit==0.15.0"", ""lxml[html-clean]==6.1.1"", ""tox==4.54.0"", ""pycodestyle==2.14.0"", ""lazy==1.6"", ""django==5.2.14"", ""typer==0.25.1"", ""polib==1.2.0"", ""edx-lint==6.1.0"", ""pytest-django==4.12.0"", ""rich==15.0.0"", ""code-annotations==3.0.0"", ""appdirs==1.4.4"", ""pydocstyle==6.3.0"", ""markdown-it-py==4.2.0"", ""python-dateutil==2.9.0.post0"", ""click==8.4.1"", ""pyyaml==6.0.3"", ""arrow==1.4.0"", ""edx-i18n-tools==2.0.0"", ""dill==0.4.1"", ""path==16.16.0"", ""web-fragments==4.0.0"", ""certifi==2026.5.20"", ""six==1.17.0"", ""mccabe==0.7.0"", ""jmespath==1.1.0"", ""pytz==2026.2"", ""mako==1.3.12""]",6,"[""pytest-django"", ""pylint-django"", ""xblock-sdk"", ""code-annotations"", ""edx-i18n-tools"", ""web-fragments""]",6,"[""pytest-django"", ""pylint-django"", ""xblock-sdk"", ""code-annotations"", ""edx-i18n-tools"", ""web-fragments""]",4,"[""web-fragments"", ""xblock-sdk"", ""code-annotations"", ""edx-i18n-tools""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,True,True,True,False,True,True,True,3,"{""total_duration"": ""9962 minutes 47 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2014-11-10 13:34:07,master,,326,41,True,False,False,False,False,False,False,2026-06-01 00:20:26,GNU AGPLv3,1,True,2558,0,7206,10803,4542,30107,0,True,True,False,False,True,False,False,,openedx,0,['https://openedx.atlassian.net/wiki/display/OpenOPS/Running+Fullstack: 404'],False,"['https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html', 'https://xblock-tutorial.readthedocs.io/en/latest/', 'https://travis-ci.org/edx-solutions/xblock-google-drive.svg?branch=master', 'https://travis-ci.org/edx-solutions/xblock-google-drive']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-google-drive,['3.12'],https://github.com/openedx/xblock-google-drive,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-component-header,,,,False,2026-06-01,False,False,False,False,29,0,,0,{},10,19,"{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/browserslist-config"": ""^1.1.1"", ""@edx/frontend-platform"": ""^8.3.1"", ""@openedx/frontend-build"": ""^14.3.2"", ""@openedx/paragon"": ""^23.0.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""^16.2.0"", ""jest"": ""30.2.0"", ""jest-environment-jsdom"": ""^30.0.0"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-redux"": ""^8.1.1"", ""react-router-dom"": ""6.30.2"", ""react-test-renderer"": ""^18.3.1"", ""redux"": ""4.2.1"", ""redux-saga"": ""1.4.2"", ""ts-jest"": ""^29.4.4""}","{""@edx/frontend-plugin-notifications"": ""^2.0.11"", ""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-regular-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""^0.2.0"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""classnames"": ""^2.5.1"", ""react-responsive"": ""8.2.0"", ""react-transition-group"": ""4.4.5""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,34,"{""total_duration"": ""2 minutes 28 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""2 minutes 27 seconds""}, {""name"": ""tests"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-09-11 15:55:45,master,,12997,186,True,False,False,False,False,False,False,2026-05-28 23:56:02,GNU AGPLv3,19,True,0,0,252,71110,1298,0,0,False,False,False,False,False,False,False,@edx/frontend-component-header,openedx,0,"['https://github.com/openedx/frontend-template-application/blob/master/src/index.jsx: 404', 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://api.travis-ci.com/edx/frontend-component-header.svg?branch=master: 404', 'https://travis-ci.com/edx/frontend-component-header: 404']",False,"['https://github.com/openedx/devstack', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-component-header.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx', 'https://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-component-header/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/codecov/c/github/edx/frontend-component-header', 'https://img.shields.io/npm/v/@edx/frontend-component-header.svg', 'https://img.shields.io/npm/dt/@edx/frontend-component-header.svg', 'https://img.shields.io/npm/l/@edx/frontend-component-header.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-04-06,2022-07-11,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-django-utils,,,,True,2026-06-01,True,True,False,False,122,0,[],0,,0,0,,,11,"[""asgiref==3.10.0"", ""django-crum==0.7.9"", ""pynacl==1.6.0"", ""stevedore==5.5.0"", ""cffi==2.0.0"", ""sqlparse==0.5.3"", ""django==4.2.25"", ""django-waffle==5.0.0"", ""psutil==7.1.0"", ""click==8.3.0"", ""pycparser==2.23""]",122,"[""more-itertools==10.8.0"", ""mock==5.2.0"", ""rich==14.1.0"", ""platformdirs==4.4.0"", ""jaraco-context==6.0.1"", ""twine==6.2.0"", ""urllib3==2.5.0"", ""pydocstyle==6.3.0"", ""build==1.3.0"", ""sphinx-book-theme==1.1.4"", ""six==1.17.0"", ""python-slugify==8.0.4"", ""pycparser==2.23"", ""accessible-pygments==0.0.5"", ""django-crum==0.7.9"", ""sphinxcontrib-jsmath==1.0.1"", ""ddtrace==3.15.0"", ""jeepney==0.9.0"", ""pylint-celery==0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""mdurl==0.1.2"", ""sqlparse==0.5.3"", ""pycodestyle==2.14.0"", ""pynacl==1.6.0"", ""pytest==8.4.2"", ""cffi==2.0.0"", ""beautifulsoup4==4.14.2"", ""sphinxcontrib-qthelp==2.0.0"", ""dill==0.4.0"", ""factory-boy==3.3.3"", ""doc8==0.11.2"", ""colorama==0.4.6"", ""coverage[toml]==7.10.7"", ""pyyaml==6.0.3"", ""filelock==3.19.1"", ""pip-tools==7.5.1"", ""backports-tarfile==1.2.0"", ""envier==0.6.1"", ""babel==2.17.0"", ""rfc3986==2.0.0"", ""jinja2-pluralize==0.3.0"", ""edx-i18n-tools==1.9.0"", ""stevedore==5.5.0"", ""chardet==5.2.0"", ""docutils==0.21.2"", ""ddt==1.7.2"", ""inflect==7.5.0"", ""path==16.16.0"", ""markupsafe==3.0.3"", ""lxml[html-clean]==6.0.2"", ""keyring==25.6.0"", ""iniconfig==2.1.0"", ""bytecode==0.17.0"", ""wheel==0.45.1"", ""nh3==0.3.0"", ""tzdata==2025.2"", ""mccabe==0.7.0"", ""pyproject-api==1.9.1"", ""cryptography==46.0.2"", ""click==8.3.0"", ""jaraco-functools==4.3.0"", ""restructuredtext-lint==1.4.0"", ""jaraco-classes==3.4.0"", ""imagesize==1.4.1"", ""newrelic==11.0.0"", ""pylint==3.3.9"", ""typing-extensions==4.15.0"", ""pygments==2.19.2"", ""click-log==0.4.0"", ""pylint-plugin-utils==0.9.0"", ""text-unidecode==1.3"", ""setuptools==80.9.0"", ""wrapt==1.17.3"", ""snowballstemmer==3.0.1"", ""psutil==7.1.0"", ""diff-cover==6.2.1"", ""polib==1.2.0"", ""zipp==3.23.0"", ""roman-numerals-py==3.1.0"", ""tox==4.30.3"", ""opentelemetry-api==1.37.0"", ""distlib==0.4.0"", ""packaging==25.0"", ""virtualenv==20.34.0"", ""pyproject-hooks==1.2.0"", ""pydata-sphinx-theme==0.15.4"", ""soupsieve==2.8"", ""alabaster==1.0.0"", ""jinja2==3.1.6"", ""sphinxcontrib-applehelp==2.0.0"", ""edx-lint==5.6.0"", ""pylint-django==2.6.1"", ""lxml-html-clean==0.4.3"", ""requests-toolbelt==1.0.0"", ""readme-renderer==44.0"", ""typeguard==4.4.4"", ""tomlkit==0.13.3"", ""id==1.5.0"", ""requests==2.32.5"", ""idna==3.10"", ""cachetools==6.2.0"", ""python-dateutil==2.9.0.post0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pip==25.2"", ""secretstorage==3.4.0"", ""django==4.2.25"", ""charset-normalizer==3.4.3"", ""django-waffle==5.0.0"", ""isort==6.1.0"", ""protobuf==6.32.1"", ""sphinx==8.2.3"", ""importlib-metadata==8.7.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""code-annotations==2.3.0"", ""asgiref==3.10.0"", ""certifi==2025.10.5"", ""markdown-it-py==4.0.0"", ""faker==37.8.0"", ""pytest-django==4.11.1"", ""astroid==3.3.11"", ""pluggy==1.6.0"", ""pytest-cov==7.0.0""]",6,"[""pylint-django"", ""edx-i18n-tools"", ""pytest-django"", ""factory-boy"", ""code-annotations"", ""django-waffle""]",8,"[""pylint-django"", ""edx-i18n-tools"", ""pytest-django"", ""factory-boy"", ""code-annotations"", ""django-crum"", ""newrelic"", ""django-waffle""]",3,"[""code-annotations"", ""edx-i18n-tools"", ""django-waffle""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,14,"{""total_duration"": ""17113 minutes 52 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2018-07-20 15:12:04,master,edX utilities for Django Application development.,808,28,True,False,False,False,False,False,False,2026-05-06 16:37:48,Apache License 2.0,8,True,0,0,0,0,3359,309143,0,True,True,False,False,True,False,False,,openedx,3,[],True,"['https://edx-django-utils.readthedocs.org', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://discuss.openedx.org', 'https://github.com/openedx/django-config-models/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-django-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-django-utils/blob/master/.github/ISSUE_TEMPLATE.md', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/edx-django-utils', 'https://img.shields.io/pypi/v/edx-django-utils.svg', 'https://pypi.python.org/pypi/edx-django-utils/', 'https://github.com/openedx/edx-django-utils/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-django-utils/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-django-utils/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-django-utils?branch=master', 'https://readthedocs.org/projects/edx-django-utils/badge/?version=latest', 'http://edx-django-utils.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-django-utils.svg', 'https://img.shields.io/github/license/edx/edx-django-utils.svg', 'https://github.com/openedx/edx-django-utils/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-django-utils,"['3', '3.12']",https://github.com/openedx/edx-django-utils,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-authz,,,,True,2026-06-01,True,True,False,False,134,0,[],0,,0,0,,,49,"[""urllib3==2.7.0"", ""pillow==12.2.0"", ""click==8.4.1"", ""edx-opaque-keys[django]==4.0.0"", ""wcmatch==10.1"", ""inflection==0.5.1"", ""casbin-django-orm-adapter==1.7.0"", ""pyjwt[crypto]==2.13.0"", ""attrs==26.1.0"", ""dnspython==2.8.0"", ""pyyaml==6.0.3"", ""openedx-events==11.2.0"", ""pynacl==1.6.2"", ""typing-extensions==4.15.0"", ""edx-organizations==8.0.0"", ""bracex==2.6"", ""semantic-version==2.10.0"", ""asgiref==3.11.1"", ""edx-django-utils==8.0.1"", ""simpleeval==1.0.7"", ""djangorestframework==3.17.1"", ""pytz==2026.2"", ""edx-api-doc-tools==3.0.0"", ""packaging==26.2"", ""pycasbin==2.8.0"", ""pymongo==4.17.0"", ""openedx-atlas==0.7.0"", ""edx-drf-extensions==10.6.0"", ""cffi==2.0.0"", ""django-waffle==5.0.0"", ""requests==2.34.2"", ""stevedore==5.8.0"", ""sqlparse==0.5.5"", ""fastavro==1.12.2"", ""edx-ccx-keys==2.0.2"", ""charset-normalizer==3.4.7"", ""drf-yasg==1.21.15"", ""psutil==7.2.2"", ""six==1.17.0"", ""cryptography==48.0.0"", ""uritemplate==4.2.0"", ""idna==3.16"", ""certifi==2026.5.20"", ""drf-jwt==1.19.2"", ""pycparser==3.0"", ""django-crum==0.7.9"", ""django==5.2.14"", ""django-simple-history==3.11.0"", ""django-model-utils==5.0.0""]",134,"[""jinja2==3.1.6"", ""cachetools==7.1.4"", ""click==8.4.1"", ""pytest==9.0.3"", ""wcmatch==10.1"", ""pyjwt[crypto]==2.13.0"", ""python-discovery==1.3.1"", ""attrs==26.1.0"", ""pyyaml==6.0.3"", ""openedx-events==11.2.0"", ""typing-extensions==4.15.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""asgiref==3.11.1"", ""djangorestframework==3.17.1"", ""rich==15.0.0"", ""code-annotations==3.0.0"", ""diff-cover==10.2.1"", ""build==1.5.0"", ""pytest-django==4.12.0"", ""restructuredtext-lint==2.0.2"", ""click-log==0.4.0"", ""pylint==4.0.5"", ""requests==2.34.2"", ""pygments==2.20.0"", ""edx-ccx-keys==2.0.2"", ""secretstorage==3.5.0"", ""six==1.17.0"", ""pylint-plugin-utils==0.9.0"", ""virtualenv==21.3.3"", ""rfc3986==2.0.0"", ""edx-lint==6.1.0"", ""sphinx-book-theme==1.2.0"", ""pycasbin==2.8.0"", ""cryptography==48.0.0"", ""more-itertools==11.1.0"", ""django-model-utils==5.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""nh3==0.3.5"", ""edx-opaque-keys[django]==4.0.0"", ""jaraco-functools==4.5.0"", ""sphinxcontrib-devhelp==2.0.0"", ""keyring==25.7.0"", ""pynacl==1.6.2"", ""ddt==1.7.2"", ""doc8==2.0.0"", ""platformdirs==4.9.6"", ""edx-django-utils==8.0.1"", ""simpleeval==1.0.7"", ""tox==4.54.0"", ""docutils==0.21.2"", ""text-unidecode==1.3"", ""pymongo==4.17.0"", ""tomlkit==0.15.0"", ""edx-drf-extensions==10.6.0"", ""django-waffle==5.0.0"", ""stevedore==5.8.0"", ""pytest-cov==7.1.0"", ""fastavro==1.12.2"", ""edx-i18n-tools==2.0.0"", ""charset-normalizer==3.4.7"", ""roman-numerals==4.1.0"", ""markdown-it-py==4.2.0"", ""drf-jwt==1.19.2"", ""inflection==0.5.1"", ""imagesize==2.0.0"", ""polib==1.2.0"", ""readme-renderer==44.0"", ""jeepney==0.9.0"", ""pylint-django==2.7.0"", ""tomli-w==1.2.0"", ""soupsieve==2.8.4"", ""mdurl==0.1.2"", ""pip-tools==7.5.3"", ""semantic-version==2.10.0"", ""jaraco-classes==3.4.0"", ""sphinx==9.1.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""packaging==26.2"", ""alabaster==1.0.0"", ""requests-toolbelt==1.0.0"", ""setuptools==82.0.1"", ""chardet==7.4.3"", ""babel==2.18.0"", ""uritemplate==4.2.0"", ""beautifulsoup4==4.14.3"", ""lxml-html-clean==0.4.5"", ""pycparser==3.0"", ""snowballstemmer==3.1.0"", ""pyproject-api==1.10.0"", ""iniconfig==2.3.0"", ""django-simple-history==3.11.0"", ""django-crum==0.7.9"", ""pylint-celery==0.3"", ""id==1.6.1"", ""lxml[html-clean]==6.1.1"", ""coverage[toml]==7.14.0"", ""urllib3==2.7.0"", ""ruff==0.15.14"", ""pillow==12.2.0"", ""dill==0.4.1"", ""sphinxcontrib-qthelp==2.0.0"", ""casbin-django-orm-adapter==1.7.0"", ""isort==8.0.1"", ""astroid==4.0.4"", ""dnspython==2.8.0"", ""pip==26.1.1"", ""sphinxcontrib-jsmath==1.0.1"", ""pyproject-hooks==1.2.0"", ""distlib==0.4.0"", ""path==16.16.0"", ""accessible-pygments==0.0.5"", ""edx-organizations==8.0.0"", ""colorama==0.4.6"", ""bracex==2.6"", ""python-slugify==8.0.4"", ""twine==6.2.0"", ""wheel==0.47.0"", ""pytz==2026.2"", ""jaraco-context==6.1.2"", ""edx-api-doc-tools==3.0.0"", ""pydocstyle==6.3.0"", ""openedx-atlas==0.7.0"", ""filelock==3.29.0"", ""cffi==2.0.0"", ""sqlparse==0.5.5"", ""drf-yasg==1.21.15"", ""psutil==7.2.2"", ""mccabe==0.7.0"", ""idna==3.16"", ""certifi==2026.5.20"", ""pluggy==1.6.0"", ""django==5.2.14""]",10,"[""edx-organizations"", ""edx-api-doc-tools"", ""edx-drf-extensions"", ""pytest-django"", ""djangorestframework"", ""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""pylint-django"", ""django-waffle""]",15,"[""edx-organizations"", ""edx-api-doc-tools"", ""edx-drf-extensions"", ""django-model-utils"", ""django-crum"", ""pytest-django"", ""djangorestframework"", ""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""pylint-django"", ""django-waffle"", ""drf-yasg"", ""drf-jwt"", ""django-simple-history""]",7,"[""edx-organizations"", ""edx-api-doc-tools"", ""edx-drf-extensions"", ""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""django-waffle""]",True,,True,True,True,True,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,16,"{""total_duration"": ""1092 minutes 34 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 49 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2025-05-20 17:33:52,main,"Specifications for the authorization model, policy data structures, and enforcement APIs that define how access control is evaluated and managed across the Open edX ecosystem.",890,9,True,False,False,False,False,False,False,2026-06-01 00:33:22,GNU AGPLv3,6,True,0,0,873,0,5393,1019518,0,False,True,False,False,True,False,False,,openedx,0,['https://github.com/openedx/openedx-authz/blob/main/LICENSE.txt: 404'],True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx-authz.readthedocs.io/en/latest/', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-authz/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-authz', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4724490259/PRD+Roles+Permissions', 'https://openedx-authz.readthedocs.io/en/latest/concepts/core_roles_and_permissions/content_library_roles.html', 'https://img.shields.io/pypi/v/openedx-authz.svg', 'https://pypi.python.org/pypi/openedx-authz/', 'https://github.com/openedx/openedx-authz/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-authz/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-authz/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-authz?branch=main', 'https://readthedocs.org/projects/openedx-authz/badge/?version=latest', 'https://docs.openedx.org/projects/openedx-authz', 'https://img.shields.io/pypi/pyversions/openedx-authz.svg', 'https://img.shields.io/github/license/openedx/openedx-authz.svg', 'https://img.shields.io/badge/Status-Experimental-yellow']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-authz,"['3', '3.12']",https://github.com/openedx/openedx-authz,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-authoring,,,,False,2026-06-01,True,True,False,False,88,0,,0,{},71,17,"{""@edx/stylelint-config-edx"": ""2.3.3"", ""@edx/typescript-config"": ""^1.0.1"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/lodash"": ""^4.17.17"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""axios-mock-adapter"": ""2.1.0"", ""dprint"": ""^0.54.0"", ""fetch-mock-jest"": ""^1.5.1"", ""jest-canvas-mock"": ""^2.5.2"", ""jest-expect-message"": ""^1.1.3"", ""oxlint"": ""^1.42.0"", ""oxlint-tsgolint"": ""^0.17.0"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""^1.5.4""}","{""@codemirror/lang-html"": ""^6.0.0"", ""@codemirror/lang-markdown"": ""^6.0.0"", ""@codemirror/lang-xml"": ""^6.0.0"", ""@codemirror/lint"": ""^6.2.1"", ""@codemirror/state"": ""^6.0.0"", ""@codemirror/view"": ""^6.0.0"", ""@dnd-kit/core"": ""^6.1.0"", ""@dnd-kit/modifiers"": ""^7.0.0"", ""@dnd-kit/sortable"": ""^8.0.0"", ""@dnd-kit/utilities"": ""^3.2.2"", ""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/browserslist-config"": ""1.5.1"", ""@edx/frontend-component-footer"": ""^14.9.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-enterprise-hotjar"": ""^7.2.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@openedx-plugins/course-app-calculator"": ""file:plugins/course-apps/calculator"", ""@openedx-plugins/course-app-dates"": ""file:plugins/course-apps/dates"", ""@openedx-plugins/course-app-edxnotes"": ""file:plugins/course-apps/edxnotes"", ""@openedx-plugins/course-app-learning_assistant"": ""file:plugins/course-apps/learning_assistant"", ""@openedx-plugins/course-app-live"": ""file:plugins/course-apps/live"", ""@openedx-plugins/course-app-ora_settings"": ""file:plugins/course-apps/ora_settings"", ""@openedx-plugins/course-app-proctoring"": ""file:plugins/course-apps/proctoring"", ""@openedx-plugins/course-app-progress"": ""file:plugins/course-apps/progress"", ""@openedx-plugins/course-app-teams"": ""file:plugins/course-apps/teams"", ""@openedx-plugins/course-app-wiki"": ""file:plugins/course-apps/wiki"", ""@openedx-plugins/course-app-xpert_unit_summary"": ""file:plugins/course-apps/xpert_unit_summary"", ""@openedx/frontend-build"": ""^14.6.6"", ""@openedx/frontend-plugin-framework"": ""^1.8.0"", ""@openedx/paragon"": ""^23.5.0"", ""@redux-devtools/extension"": ""^3.3.0"", ""@reduxjs/toolkit"": ""2.11.2"", ""@tanstack/react-query"": ""5.95.2"", ""@tanstack/react-table"": ""^8.21.3"", ""@tinymce/tinymce-react"": ""^6.0.0"", ""classnames"": ""2.5.1"", ""codemirror"": ""^6.0.0"", ""email-validator"": ""2.0.4"", ""fast-xml-parser"": ""^5.0.0"", ""file-saver"": ""^2.0.5"", ""formik"": ""2.4.9"", ""frontend-components-tinymce-advanced-plugins"": ""^1.0.3"", ""jszip"": ""^3.10.1"", ""lodash"": ""4.18.1"", ""meilisearch"": ""^0.41.0"", ""moment"": ""2.30.1"", ""moment-shortformat"": ""^2.1.0"", ""prop-types"": ""^15.8.1"", ""react"": ""^18.3.1"", ""react-datepicker"": ""^8.10.0"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.0.13"", ""react-helmet"": ""^6.1.0"", ""react-onclickoutside"": ""^6.13.0"", ""react-redux"": ""7.2.9"", ""react-responsive"": ""10.0.1"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""react-select"": ""5.10.2"", ""react-textarea-autosize"": ""^8.5.3"", ""react-transition-group"": ""4.4.5"", ""redux"": ""4.2.1"", ""redux-logger"": ""^3.0.6"", ""redux-thunk"": ""^2.4.1"", ""reselect"": ""^4.1.5"", ""tinymce"": ""^5.10.4"", ""universal-cookie"": ""^8.0.0"", ""uuid"": ""^11.1.0"", ""xmlchecker"": ""^0.1.0"", ""yup"": ""0.32.11""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,False,True,True,33,"{""total_duration"": ""2838 minutes 8 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""8 minutes 43 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""coverage"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2020-05-06 18:34:51,master,"Front-end for the Open edX Studio experience, implemented in React and Paragon.",52120,196,True,False,False,False,False,False,False,2026-05-27 11:11:51,GNU AGPLv3,30,False,0,0,388,3187166,1967,0,0,False,False,False,False,False,False,False,@edx/frontend-app-authoring,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://travis-ci.com/edx/frontend-app-course-authoring: 404', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-course-authoring: 404']",False,"['https://github.com/openedx/edx-platform/tree/master/cms', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-authoring.git', 'https://github.com/nvm-sh/nvm', 'https://discuss.openedx.org/t/repo-rename-frontend-app-course-authoring-frontend-app-authoring/13930/2', 'https://github.com/openedx/frontend-app-learning', 'https://github.com/openedx/frontend-app-discussions/', 'https://github.com/edx/edx-exams', 'https://github.com/open-craft/tutor-contrib-meilisearch', 'https://docs.tutor.edly.io/', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/Automattic/node-canvas/issues/1733', 'https://api.travis-ci.com/edx/frontend-app-course-authoring.svg?branch=master', 'https://codecov.io/gh/edx/frontend-app-course-authoring/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/frontend-app-course-authoring', 'https://img.shields.io/npm/l/@edx/frontend-app-authoring.svg', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-course-authoring/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-course-authoring.svg', 'https://github.com/openedx/frontend-app-course-authoring/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://codecov.io/github/openedx/frontend-app-course-authoring/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-course-authoring?branch=master']",True,True,False,False,,,True,2026-04-16,2025-04-07,2,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xblock-in-video-quiz,,,,True,2026-06-01,True,True,False,False,71,0,[],0,,0,0,,,16,"[""six==1.17.0"", ""python-dateutil==2.9.0.post0"", ""simplejson==4.1.1"", ""mako==1.3.12"", ""fs==2.4.16"", ""pyyaml==6.0.3"", ""asgiref==3.11.1"", ""appdirs==1.4.4"", ""webob==1.8.9"", ""django==5.2.14"", ""web-fragments==4.0.0"", ""lxml==6.1.1"", ""pytz==2026.2"", ""xblock==6.1.0"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5""]",71,"[""certifi==2026.5.20"", ""simplejson==4.1.1"", ""python-slugify==8.0.4"", ""click-log==0.4.0"", ""jinja2==3.1.6"", ""pycodestyle==2.14.0"", ""pylint-django==2.7.0"", ""platformdirs==4.9.6"", ""setuptools==82.0.1"", ""packaging==26.2"", ""cachetools==7.1.4"", ""isort==8.0.1"", ""pytest-django==4.12.0"", ""pyproject-hooks==1.2.0"", ""mccabe==0.7.0"", ""pluggy==1.6.0"", ""web-fragments==4.0.0"", ""markdown-it-py==4.2.0"", ""urllib3==2.7.0"", ""idna==3.16"", ""typer==0.25.1"", ""pytz==2026.2"", ""edx-lint==6.1.0"", ""pylint-celery==0.3"", ""distlib==0.4.0"", ""six==1.17.0"", ""tomli-w==1.2.0"", ""shellingham==1.5.4"", ""rich==15.0.0"", ""python-discovery==1.3.1"", ""fs==2.4.16"", ""asgiref==3.11.1"", ""pylint==4.0.5"", ""lxml==6.1.1"", ""pip==26.1.1"", ""xblock==6.1.0"", ""markupsafe==3.0.3"", ""text-unidecode==1.3"", ""wheel==0.47.0"", ""sqlparse==0.5.5"", ""coverage[toml]==7.14.0"", ""mako==1.3.12"", ""pip-tools==7.5.3"", ""virtualenv==21.3.3"", ""appdirs==1.4.4"", ""stevedore==5.8.0"", ""mock==5.2.0"", ""iniconfig==2.3.0"", ""build==1.5.0"", ""requests==2.34.2"", ""charset-normalizer==3.4.7"", ""python-dateutil==2.9.0.post0"", ""astroid==4.0.4"", ""dill==0.4.1"", ""coveralls==4.1.0"", ""tomlkit==0.15.0"", ""mdurl==0.1.2"", ""filelock==3.29.0"", ""pyyaml==6.0.3"", ""click==8.4.1"", ""annotated-doc==0.0.4"", ""pyproject-api==1.10.0"", ""tox==4.54.0"", ""webob==1.8.9"", ""pygments==2.20.0"", ""django==5.2.14"", ""pylint-plugin-utils==0.9.0"", ""colorama==0.4.6"", ""coverage==7.14.0"", ""pytest==9.0.3"", ""code-annotations==3.0.0""]",5,"[""code-annotations"", ""xblock"", ""pytest-django"", ""web-fragments"", ""pylint-django""]",5,"[""code-annotations"", ""xblock"", ""pytest-django"", ""web-fragments"", ""pylint-django""]",3,"[""web-fragments"", ""code-annotations"", ""xblock""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,False,False,12,"{""total_duration"": ""8222 minutes 19 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2020-01-27 18:10:28,master,,464,24,True,False,False,False,False,False,False,2026-05-31 01:04:06,GNU AGPLv3,2,False,1625,0,90,6580,1446,13037,0,False,False,False,False,False,False,False,,openedx,2,['https://github.com/openedx/xblock-in-video-quiz@LATEST_RELEASE: 404'],False,"['https://github.com/Stanford-Online/xblock-in-video-quiz', 'https://github.com/openedx/xblock-in-video-quiz/releases/tag/final-bsd-3c-contribution']",True,True,False,False,,,False,,,,False,True,False,True,,False,invideoquiz-xblock,"['3', '3.12']",,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/enmerkar-underscore,,,,True,2026-06-01,True,True,False,False,50,0,[],0,,0,0,,,5,"[""sqlparse==0.5.3"", ""asgiref==3.10.0"", ""babel==2.17.0"", ""django==4.2.25"", ""enmerkar==0.7.1""]",50,"[""six==1.17.0"", ""setuptools==80.9.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pytest-pep8==1.0.6"", ""pyyaml==6.0.3"", ""imagesize==1.4.1"", ""jinja2==3.1.6"", ""babel==2.17.0"", ""execnet==2.1.1"", ""requests==2.32.5"", ""sphinxcontrib-htmlhelp==2.1.0"", ""mccabe==0.7.0"", ""sphinxcontrib-applehelp==2.0.0"", ""coverage[toml]==7.11.0"", ""iniconfig==2.3.0"", ""sqlparse==0.5.3"", ""pytest-flakes==4.0.5"", ""asgiref==3.10.0"", ""certifi==2025.10.5"", ""pip==25.2"", ""django==4.2.25"", ""enmerkar==0.7.1"", ""urllib3==2.5.0"", ""build==1.3.0"", ""click==8.3.0"", ""packaging==25.0"", ""pycodestyle==2.14.0"", ""wheel==0.45.1"", ""pip-tools==7.5.1"", ""sphinxcontrib-jsmath==1.0.1"", ""pytest-cache==1.0"", ""pep8==1.7.1"", ""roman-numerals-py==3.1.0"", ""pyflakes==3.4.0"", ""sphinx==8.2.3"", ""sphinxcontrib-devhelp==2.0.0"", ""python-coveralls==2.9.3"", ""flake8==7.3.0"", ""pytest==8.4.2"", ""markupsafe==3.0.3"", ""charset-normalizer==3.4.4"", ""pluggy==1.6.0"", ""alabaster==1.0.0"", ""docutils==0.21.2"", ""pytest-cov==7.0.0"", ""snowballstemmer==3.0.1"", ""idna==3.11"", ""pygments==2.19.2"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-serializinghtml==2.0.0""]",0,[],1,"[""enmerkar""]",0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""76028 minutes 5 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, django52)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2020-02-13 15:38:04,master,Django Babel Underscore Extractor,199,7,True,False,False,False,True,False,False,2026-05-18 07:50:46,Modified BSD License,2,True,0,0,0,0,2121,12889,0,True,False,False,False,True,False,False,,openedx,1,"[""https://pypip.in/d/django-babel-underscore/badge.png: HTTPSConnectionPool(host='pypip.in', port=443): Max retries exceeded with url: /d/django-babel-underscore/badge.png (Caused by ConnectTimeoutError(, 'Connection to pypip.in timed out. (connect timeout=None)'))"", 'http://django-babel-underscore.readthedocs.org: 404']",False,"['https://badge.fury.io/py/django-babel-underscore.png', 'http://badge.fury.io/py/django-babel-underscore', 'https://github.com/openedx/enmerkar-underscore/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/enmerkar-underscore/actions?query=workflow%3A%22Python+CI%22', 'https://pypi.python.org/pypi/django-babel-underscore']",True,True,False,False,,,False,,,,False,True,False,True,,False,enmerkar-underscore,"['3', '3.11', '3.12']",https://github.com/openedx/enmerkar-underscore,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/wg-security,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""70559 minutes 10 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2023-01-13 16:25:20,main,A repo to keep public issues related to Security Working Group Work,17,2,True,False,False,False,False,False,False,2025-10-30 15:17:42,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/FeedbackXBlock,,,,True,2026-06-01,True,True,False,False,129,0,[],0,,0,0,,,31,"[""botocore==1.42.88"", ""sqlparse==0.5.5"", ""lazy==1.6"", ""python-dateutil==2.9.0.post0"", ""s3transfer==0.16.0"", ""openedx-django-pyfs==4.0.0"", ""urllib3==2.6.3"", ""six==1.17.0"", ""simplejson==3.20.2"", ""xblock[django]==6.0.0"", ""boto3==1.42.88"", ""fs==2.4.16"", ""django-crum==0.7.9"", ""django==5.2.13"", ""jmespath==1.1.0"", ""markupsafe==3.0.3"", ""webob==1.8.9"", ""stevedore==5.7.0"", ""openedx-filters==3.1.0"", ""fs-s3fs==1.1.1"", ""dnspython==2.8.0"", ""lxml==6.0.4"", ""pyyaml==6.0.3"", ""pymongo==4.16.0"", ""typing-extensions==4.15.0"", ""asgiref==3.11.1"", ""web-fragments==4.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""pytz==2026.1.post1"", ""mako==1.3.10"", ""appdirs==1.4.4""]",129,"[""sphinxcontrib-serializinghtml==2.0.0"", ""sqlparse==0.5.5"", ""id==1.6.1"", ""setuptools==82.0.1"", ""cffi==2.0.0"", ""annotated-doc==0.0.4"", ""coveralls==4.1.0"", ""ddt==1.7.2"", ""edx-lint==6.0.0"", ""jaraco-functools==4.4.0"", ""pygments==2.20.0"", ""pydata-sphinx-theme==0.16.1"", ""mccabe==0.7.0"", ""sphinxcontrib-devhelp==2.0.0"", ""charset-normalizer==3.4.7"", ""fs==2.4.16"", ""shellingham==1.5.4"", ""markdown-it-py==4.0.0"", ""mdurl==0.1.2"", ""alabaster==1.0.0"", ""pip-tools==7.5.3"", ""mock==5.2.0"", ""more-itertools==11.0.2"", ""sphinxcontrib-applehelp==2.0.0"", ""soupsieve==2.8.3"", ""asgiref==3.11.1"", ""jeepney==0.9.0"", ""twine==6.2.0"", ""web-fragments==4.0.0"", ""code-annotations==3.0.0"", ""jaraco-classes==3.4.0"", ""platformdirs==4.9.6"", ""python-slugify==8.0.4"", ""tomlkit==0.14.0"", ""pyproject-hooks==1.2.0"", ""xblock-sdk==0.14.0"", ""botocore==1.42.88"", ""babel==2.18.0"", ""virtualenv==21.2.1"", ""lazy==1.6"", ""sphinx-book-theme==1.2.0"", ""six==1.17.0"", ""pylint-celery==0.3"", ""rfc3986==2.0.0"", ""xblock[django]==6.0.0"", ""python-discovery==1.2.2"", ""jmespath==1.1.0"", ""webob==1.8.9"", ""stevedore==5.7.0"", ""pycodestyle==2.14.0"", ""tox==4.52.1"", ""fs-s3fs==1.1.1"", ""dnspython==2.8.0"", ""sphinxcontrib-qthelp==2.0.0"", ""jinja2==3.1.6"", ""pymongo==4.16.0"", ""edx-i18n-tools==2.0.0"", ""cachetools==7.0.5"", ""click==8.3.2"", ""astroid==4.0.4"", ""build==1.4.3"", ""imagesize==2.0.0"", ""pyproject-api==1.10.0"", ""polib==1.2.0"", ""appdirs==1.4.4"", ""pylint-django==2.7.0"", ""path==16.16.0"", ""readme-renderer==44.0"", ""cookiecutter==2.7.1"", ""python-dateutil==2.9.0.post0"", ""s3transfer==0.16.0"", ""beautifulsoup4==4.14.3"", ""openedx-django-pyfs==4.0.0"", ""filelock==3.25.2"", ""idna==3.11"", ""tzdata==2026.1"", ""pylint-plugin-utils==0.9.0"", ""lxml[html-clean]==6.0.4"", ""boto3==1.42.88"", ""arrow==1.4.0"", ""click-log==0.4.0"", ""django==5.2.13"", ""markupsafe==3.0.3"", ""iniconfig==2.3.0"", ""requests==2.33.1"", ""pytest==9.0.3"", ""typer==0.24.1"", ""tomli-w==1.2.0"", ""openedx-filters==3.1.0"", ""docutils==0.22.4"", ""pylint==4.0.5"", ""lxml==6.0.4"", ""dill==0.4.1"", ""nh3==0.3.4"", ""rich==15.0.0"", ""pytest-django==4.12.0"", ""isort==8.0.1"", ""cryptography==46.0.7"", ""typing-extensions==4.15.0"", ""roman-numerals==4.1.0"", ""snowballstemmer==3.0.1"", ""pytz==2026.1.post1"", ""keyring==25.7.0"", ""text-unidecode==1.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""binaryornot==0.6.0"", ""pip==26.0.1"", ""certifi==2026.2.25"", ""urllib3==2.6.3"", ""packaging==26.0"", ""simplejson==3.20.2"", ""distlib==0.4.0"", ""lxml-html-clean==0.4.4"", ""django-crum==0.7.9"", ""coverage[toml]==7.13.5"", ""pycparser==3.0"", ""pluggy==1.6.0"", ""jaraco-context==6.1.2"", ""pyyaml==6.0.3"", ""requests-toolbelt==1.0.0"", ""pypng==0.20220715.0"", ""wheel==0.46.3"", ""edx-opaque-keys[django]==4.0.0"", ""accessible-pygments==0.0.5"", ""sphinx==9.1.0"", ""colorama==0.4.6"", ""mako==1.3.10"", ""secretstorage==3.5.0"", ""sphinxcontrib-jsmath==1.0.1""]",6,"[""pylint-django"", ""web-fragments"", ""edx-i18n-tools"", ""code-annotations"", ""pytest-django"", ""xblock-sdk""]",7,"[""pylint-django"", ""django-crum"", ""web-fragments"", ""edx-i18n-tools"", ""code-annotations"", ""pytest-django"", ""xblock-sdk""]",4,"[""edx-i18n-tools"", ""code-annotations"", ""xblock-sdk"", ""web-fragments""]",False,,True,False,True,False,False,False,True,True,True,True,False,False,True,True,False,True,True,False,True,True,True,4,"{""total_duration"": ""5 minutes 23 seconds"", ""checks"": [{""name"": ""Tests (3.12, django52)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Analyze (javascript)"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""Tests (3.12, django42)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""Tests (3.12, quality)"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2022-11-22 21:30:41,master,An XBlock to allow students to provide feedback on course materials,699,15,True,False,True,False,False,False,False,2026-04-14 15:08:30,GNU AGPLv3,0,True,2578,0,11634,3703,3711,43450,0,True,True,False,False,True,False,False,,openedx,0,"['https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/FeedbackXBlock: 404']",True,"['https://img.shields.io/badge/status-deprecated-red', 'https://github.com/openedx/xblocks-extra', 'https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/ci.yml', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/pypi-release.yml/badge.svg', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/pypi-release.yml', 'https://img.shields.io/badge/status-maintained-31c653', 'https://openedx.org/r/xblock', 'https://docs.tutor.edly.io/tutorials/plugin.html', 'https://docs.tutor.edly.io/configuration.html', 'https://discuss.openedx.org', 'https://github.com/openedx/FeedbackXBlock/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,False,,,,False,True,False,True,,False,feedback-xblock,[],,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-milestones,,,,True,2026-06-01,True,True,False,False,55,0,[],0,,0,0,,,11,"[""setuptools==82.0.0"", ""typing-extensions==4.15.0"", ""six==1.17.0"", ""django-model-utils==5.0.0"", ""django==5.2.12"", ""sqlparse==0.5.5"", ""edx-opaque-keys==3.1.0"", ""stevedore==5.7.0"", ""pymongo==4.16.0"", ""asgiref==3.11.1"", ""dnspython==2.8.0""]",55,"[""edx-lint==5.6.0"", ""dill==0.4.1"", ""pyproject-hooks==1.2.0"", ""pycodestyle==2.14.0"", ""pygments==2.19.2"", ""stevedore==5.7.0"", ""asgiref==3.11.1"", ""sqlparse==0.5.5"", ""isort==8.0.1"", ""coverage[toml]==7.13.4"", ""pydocstyle==6.3.0"", ""platformdirs==4.9.4"", ""pluggy==1.6.0"", ""pylint-celery==0.3"", ""tox==4.49.0"", ""tomlkit==0.14.0"", ""setuptools==82.0.0"", ""pytest-django==4.12.0"", ""pyproject-api==1.10.0"", ""typing-extensions==4.15.0"", ""pip==26.0.1"", ""snowballstemmer==3.0.1"", ""click-log==0.4.0"", ""mccabe==0.7.0"", ""cachetools==7.0.3"", ""colorama==0.4.6"", ""distlib==0.4.0"", ""pylint-django==2.7.0"", ""dnspython==2.8.0"", ""python-discovery==1.1.0"", ""click==8.3.1"", ""markupsafe==3.0.3"", ""six==1.17.0"", ""wheel==0.46.3"", ""django-model-utils==5.0.0"", ""jinja2==3.1.6"", ""edx-opaque-keys==3.1.0"", ""python-slugify==8.0.4"", ""pymongo==4.16.0"", ""code-annotations==2.3.2"", ""text-unidecode==1.3"", ""pylint-plugin-utils==0.9.0"", ""pytest==9.0.2"", ""iniconfig==2.3.0"", ""pip-tools==7.5.3"", ""pytest-cov==7.0.0"", ""tomli-w==1.2.0"", ""pylint==4.0.5"", ""packaging==26.0"", ""astroid==4.0.4"", ""django==5.2.12"", ""pyyaml==6.0.3"", ""build==1.4.0"", ""filelock==3.25.0"", ""virtualenv==21.1.0""]",4,"[""edx-opaque-keys"", ""pytest-django"", ""pylint-django"", ""code-annotations""]",5,"[""edx-opaque-keys"", ""code-annotations"", ""pylint-django"", ""django-model-utils"", ""pytest-django""]",2,"[""edx-opaque-keys"", ""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,3,"{""total_duration"": ""0 minutes 50 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 34 seconds""}]}",Other,2014-11-24 16:56:50,master,,337,14,True,False,False,False,False,False,False,2026-05-30 15:14:44,GNU AGPLv3,3,True,0,0,0,0,2187,121038,0,True,True,False,False,True,False,False,,openedx,0,[],True,"['https://github.com/openedx/edx-milestones/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-milestones/actions?query=workflow%3A%22Python+CI%22', 'https://img.shields.io/coveralls/edx/edx-milestones.svg', 'https://coveralls.io/r/edx/edx-milestones?branch=master', 'https://github.com/openedx/edx-platform/blob/master/requirements/edx/base.in', 'https://github.com/openedx/edx-platform/', 'https://docs.openedx.org/en/latest/site_ops/install_configure_run_guide/configuration/enable_prerequisites.html', 'https://docs.openedx.org/en/latest/educators/references/controlling_content_visibility.html', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'http://openedx.slack.com/', 'https://openedx.org/getting-help']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-milestones,"['3', '3.12']",https://github.com/openedx/edx-milestones,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/platform-roadmap,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""15434 minutes 23 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""notifications"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""notifications"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2021-10-26 14:50:21,main,"Tracking the maintenance, enhancement, and advancement of the Open edX project.",34,5,True,False,False,False,False,False,False,2025-10-30 15:11:06,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://github.com/orgs/openedx/projects/4/views/1'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-base,,,,False,2026-06-01,False,False,False,False,97,0,,0,{},81,16,"{""@edx/browserslist-config"": ""^1.5.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@tsconfig/node24"": ""^24.0.4"", ""@types/compression"": ""^1.7.5"", ""@types/jest"": ""^29.5.14"", ""@types/lodash"": ""^4.17.24"", ""@types/node"": ""^24.12.0"", ""@types/react"": ""^18.3.20"", ""@types/react-dom"": ""^18.3.6"", ""axios-mock-adapter"": ""^1.22.0"", ""jest-chain"": ""^1.1.6"", ""jsdoc"": ""^4.0.3"", ""nodemon"": ""^3.1.4""}","{""@babel/core"": ""^7.24.9"", ""@babel/preset-env"": ""^7.24.8"", ""@babel/preset-react"": ""^7.26.3"", ""@babel/preset-typescript"": ""^7.24.7"", ""@edx/new-relic-source-map-webpack-plugin"": ""2.1.0"", ""@eslint/compat"": ""^1.2.1"", ""@eslint/js"": ""^9.13.0"", ""@formatjs/cli"": ""^6.0.3"", ""@formatjs/ts-transformer"": ""^3.13.14"", ""@pmmmwh/react-refresh-webpack-plugin"": ""^0.6.0"", ""@stylistic/eslint-plugin"": ""^2.9.0"", ""@tanstack/react-query-devtools"": ""^5.99.0"", ""@types/eslint__js"": ""^8.42.3"", ""@types/gradient-string"": ""^1.1.6"", ""autoprefixer"": ""^10.4.20"", ""axios"": ""^1.7.9"", ""axios-cache-interceptor"": ""^1.6.0"", ""babel-jest"": ""^29.7.0"", ""babel-plugin-formatjs"": ""^10.5.16"", ""chalk"": ""^4.1.2"", ""classnames"": ""^2.5.1"", ""clean-webpack-plugin"": ""^4.0.0"", ""compression"": ""^1.7.4"", ""css-loader"": ""^7.1.2"", ""cssnano"": ""^6.1.2"", ""eslint"": ""^9.13.0"", ""eslint-plugin-formatjs"": ""^5.1.3"", ""eslint-plugin-jest"": ""^28.8.3"", ""eslint-plugin-jsx-a11y"": ""^6.10.1"", ""eslint-plugin-react"": ""^7.37.2"", ""eslint-plugin-react-hooks"": ""^5.0.0"", ""express"": ""^4.18.2"", ""file-loader"": ""6.2.0"", ""fork-ts-checker-webpack-plugin"": ""^9.0.2"", ""form-urlencoded"": ""^6.1.5"", ""glob"": ""^7.2.3"", ""globals"": ""^15.11.0"", ""gradient-string"": ""^2.0.2"", ""html-webpack-plugin"": ""5.6.7"", ""identity-obj-proxy"": ""3.0.0"", ""image-minimizer-webpack-plugin"": ""3.8.3"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-localstorage-mock"": ""^2.4.26"", ""jwt-decode"": ""^3.1.2"", ""localforage"": ""^1.10.0"", ""localforage-memoryStorageDriver"": ""^0.9.2"", ""lodash"": ""^4.18.1"", ""mini-css-extract-plugin"": ""1.6.2"", ""parse5"": ""7.3.0"", ""postcss"": ""^8.4.47"", ""postcss-custom-media"": ""10.0.8"", ""postcss-loader"": ""7.3.4"", ""postcss-rtlcss"": ""^5.5.0"", ""prop-types"": ""^15.8.1"", ""react-dev-utils"": ""12.0.1"", ""react-focus-on"": ""^3.10.2"", ""react-intl"": ""^6.6.6"", ""react-refresh"": ""0.18.0"", ""react-refresh-typescript"": ""^2.0.9"", ""react-responsive"": ""^10.0.0"", ""react-transition-group"": ""^4.4.5"", ""resolve-url-loader"": ""^5.0.0"", ""sass-embedded"": ""^1.87.0"", ""sass-loader"": ""^16.0.2"", ""sharp"": ""^0.34.0"", ""source-map-loader"": ""4.0.2"", ""style-loader"": ""^4.0.0"", ""ts-loader"": ""^9.5.7"", ""tsconfig-paths-webpack-plugin"": ""^4.2.0"", ""typescript"": ""^5.6.3"", ""typescript-eslint"": ""^8.11.0"", ""universal-cookie"": ""^8.0.1"", ""url-loader"": ""^4.1.1"", ""uuid"": ""^11.0.2"", ""webpack"": ""^5.97.1"", ""webpack-bundle-analyzer"": ""^4.10.1"", ""webpack-cli"": ""^5.1.4"", ""webpack-dev-server"": ""^5.1.0"", ""webpack-merge"": ""^5.10.0"", ""webpack-remove-empty-scripts"": ""1.1.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": ""2 minutes 20 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 20 seconds""}, {""name"": ""Release"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""version-check / mismatch-check"", ""duration"": ""0 minutes 10 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2024-06-26 19:45:23,main,[pre-alpha] Future Open edX frontend framework implemented for OEP-65,51179,10,True,False,False,False,False,False,False,2026-05-16 20:38:36,GNU AGPLv3,3,True,0,0,493,214579,1232,0,0,False,False,False,False,False,False,False,,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))']",False,"['https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0065-arch-frontend-composability.html', 'https://github.com/openedx/frontend-build', 'https://github.com/openedx/frontend-platform', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/openedx/frontend-component-header', 'https://github.com/openedx/frontend-component-footer', 'https://github.com/openedx/open-edx-proposals/pull/598', 'https://discuss.openedx.org/t/oep-65-adjacent-a-frontend-architecture-vision/13223', 'https://github.com/orgs/openedx/projects/65/views/1', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://github.com/openedx/frontend-dev-utils/blob/main/tools/autoinstall/README.md']",True,True,False,False,,,True,2020-01-07,2025-04-25,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-search,,,,True,2026-06-01,False,False,False,False,97,0,[],0,,0,0,,,61,"[""amqp==5.3.1"", ""click==8.3.2"", ""charset-normalizer==3.4.7"", ""click-repl==0.3.0"", ""billiard==4.2.4"", ""urllib3==1.26.20"", ""django-crum==0.7.9"", ""typesense==2.0.0"", ""pycparser==3.0"", ""idna==3.11"", ""meilisearch==0.40.0"", ""kombu==5.6.2"", ""text-unidecode==1.3"", ""six==1.17.0"", ""httpx==0.28.1"", ""pymongo==4.16.0"", ""pytz==2026.1.post1"", ""vine==5.1.0"", ""tzdata==2026.1"", ""wcwidth==0.6.0"", ""event-tracking==4.0.0"", ""camel-converter[pydantic]==5.1.0"", ""dnspython==2.8.0"", ""psutil==7.2.2"", ""pydantic-core==2.41.5"", ""celery==5.6.3"", ""edx-django-utils==8.0.1"", ""django==5.2.13"", ""markupsafe==3.0.3"", ""typing-extensions==4.15.0"", ""sqlparse==0.5.5"", ""python-slugify==8.0.4"", ""packaging==26.0"", ""certifi==2026.2.25"", ""prompt-toolkit==3.0.52"", ""click-didyoumean==0.3.1"", ""openedx-events==11.1.0"", ""attrs==26.1.0"", ""asgiref==3.11.1"", ""tzlocal==5.3.1"", ""requests==2.33.1"", ""stevedore==5.7.0"", ""elasticsearch==7.13.4"", ""pynacl==1.6.2"", ""fastavro==1.12.1"", ""edx-ccx-keys==2.0.2"", ""typing-inspection==0.4.2"", ""click-plugins==1.1.1.2"", ""code-annotations==3.0.0"", ""pyyaml==6.0.3"", ""django-waffle==5.0.0"", ""httpcore==1.0.9"", ""edx-opaque-keys[django]==4.0.0"", ""h11==0.16.0"", ""annotated-types==0.7.0"", ""pydantic==2.12.5"", ""jinja2==3.1.6"", ""python-dateutil==2.9.0.post0"", ""anyio==4.13.0"", ""edx-toggles==6.0.0"", ""cffi==2.0.0""]",97,"[""click-repl==0.3.0"", ""billiard==4.2.4"", ""urllib3==1.26.20"", ""idna==3.11"", ""filelock==3.25.2"", ""kombu==5.6.2"", ""httpx==0.28.1"", ""pymongo==4.16.0"", ""camel-converter[pydantic]==5.1.0"", ""tomli-w==1.2.0"", ""pytest-cov==7.1.0"", ""celery==5.6.3"", ""tomlkit==0.14.0"", ""click-plugins==1.1.1.2"", ""iniconfig==2.3.0"", ""wheel==0.46.3"", ""django-waffle==5.0.0"", ""pydantic==2.12.5"", ""jinja2==3.1.6"", ""pylint==4.0.5"", ""cffi==2.0.0"", ""pip==26.0.1"", ""ddt==1.3.1"", ""django-crum==0.7.9"", ""typesense==2.0.0"", ""meilisearch==0.40.0"", ""mccabe==0.7.0"", ""six==1.17.0"", ""platformdirs==4.9.4"", ""pyproject-api==1.10.0"", ""tox==4.52.0"", ""event-tracking==4.0.0"", ""pip-tools==7.5.3"", ""psutil==7.2.2"", ""pycodestyle==2.14.0"", ""pylint-plugin-utils==0.9.0"", ""certifi==2026.2.25"", ""pyproject-hooks==1.2.0"", ""click-didyoumean==0.3.1"", ""attrs==26.1.0"", ""asgiref==3.11.1"", ""requests==2.33.1"", ""pynacl==1.6.2"", ""code-annotations==3.0.0"", ""pylint-celery==0.3"", ""dill==0.4.1"", ""edx-opaque-keys[django]==4.0.0"", ""python-dateutil==2.9.0.post0"", ""edx-toggles==6.0.0"", ""amqp==5.3.1"", ""click==8.3.2"", ""charset-normalizer==3.4.7"", ""pycparser==3.0"", ""text-unidecode==1.3"", ""pytz==2026.1.post1"", ""vine==5.1.0"", ""coverage[toml]==7.13.5"", ""tzdata==2026.1"", ""wcwidth==0.6.0"", ""colorama==0.4.6"", ""typing-extensions==4.15.0"", ""mock==5.2.0"", ""pluggy==1.6.0"", ""isort==8.0.1"", ""openedx-events==11.1.0"", ""elasticsearch==7.13.4"", ""typing-inspection==0.4.2"", ""edx-ccx-keys==2.0.2"", ""build==1.4.2"", ""httpcore==1.0.9"", ""virtualenv==21.2.0"", ""h11==0.16.0"", ""pylint-django==2.7.0"", ""setuptools==82.0.1"", ""distlib==0.4.0"", ""edx-lint==6.0.0"", ""pygments==2.20.0"", ""dnspython==2.8.0"", ""pydantic-core==2.41.5"", ""edx-django-utils==8.0.1"", ""django==5.2.13"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5"", ""python-slugify==8.0.4"", ""packaging==26.0"", ""prompt-toolkit==3.0.52"", ""tzlocal==5.3.1"", ""cachetools==7.0.5"", ""stevedore==5.7.0"", ""python-discovery==1.2.2"", ""pyyaml==6.0.3"", ""pytest==9.0.3"", ""click-log==0.4.0"", ""annotated-types==0.7.0"", ""astroid==4.0.4"", ""anyio==4.13.0"", ""fastavro==1.12.1""]",6,"[""event-tracking"", ""code-annotations"", ""django-waffle"", ""edx-toggles"", ""pylint-django"", ""edx-django-utils""]",7,"[""event-tracking"", ""code-annotations"", ""django-waffle"", ""edx-toggles"", ""django-crum"", ""pylint-django"", ""edx-django-utils""]",5,"[""event-tracking"", ""code-annotations"", ""django-waffle"", ""edx-toggles"", ""edx-django-utils""]",False,,True,False,True,False,False,False,True,True,True,False,True,False,True,True,False,True,True,False,True,True,True,48,"{""total_duration"": ""2028 minutes 36 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""2 minutes 0 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2015-01-14 19:35:31,master,,486,57,True,False,False,False,False,False,False,2026-06-01 01:05:21,GNU AGPLv3,5,True,0,0,0,0,3723,328817,1642,False,True,False,True,True,False,False,,openedx,2,[],False,"['https://github.com/openedx/edx-search/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-search/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/edx/edx-search/badge.svg?branch=master&service=github', 'https://coveralls.io/github/edx/edx-search?branch=master', 'https://docs.openedx.org/en/latest/site_ops/how-tos/use_typesense_search_backend.html', 'https://github.com/typesense/typesense-python']",True,True,False,False,,,False,,,,False,False,False,True,,False,edx-search,"['3', '3.12']",https://github.com/openedx/edx-search,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-foundation-android,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": """", ""checks"": []}",Other,2024-10-07 11:31:37,main,,157,3,True,False,False,False,False,False,False,2026-05-25 08:05:19,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://jitpack.io'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/brand-openedx,,,,False,2026-06-01,True,True,False,False,2,0,,0,{},0,2,"{""@openedx/paragon"": ""^23.0.0"", ""nodemon"": ""^3.1.10""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": ""730 minutes 11 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}]}",Other,2020-09-08 20:23:21,master,,173,206,True,False,False,False,False,False,False,2026-05-25 07:16:17,GNU AGPLv3,0,False,0,0,0,0,449,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/edx/brand', 'https://docs.openedx.org/projects/openedx-proposals/en/latest/architectural-decisions/oep-0048-brand-customization.html', 'https://styledictionary.com/']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/XBlock,,,,True,2026-06-01,True,True,False,False,99,0,[],0,,0,0,,,17,"[""pyyaml==6.0.3"", ""fs==2.4.16"", ""pymongo==4.17.0"", ""edx-opaque-keys==4.0.0"", ""pytz==2026.2"", ""web-fragments==4.0.0"", ""appdirs==1.4.4"", ""six==1.17.0"", ""webob==1.8.9"", ""lxml==6.1.1"", ""dnspython==2.8.0"", ""python-dateutil==2.9.0.post0"", ""simplejson==4.1.1"", ""stevedore==5.8.0"", ""markupsafe==3.0.3"", ""typing-extensions==4.15.0"", ""mako==1.3.12""]",99,"[""sphinx-book-theme==1.2.0"", ""idna==3.16"", ""appdirs==1.4.4"", ""six==1.17.0"", ""webob==1.8.9"", ""coverage==7.14.0"", ""jmespath==1.1.0"", ""packaging==26.2"", ""setuptools==82.0.1"", ""certifi==2026.5.20"", ""fs==2.4.16"", ""docutils==0.22.4"", ""sqlparse==0.5.5"", ""iniconfig==2.3.0"", ""filelock==3.29.0"", ""pytest==9.0.3"", ""s3transfer==0.17.0"", ""snowballstemmer==3.0.1"", ""wheel==0.47.0"", ""sphinxcontrib-jsmath==1.0.1"", ""python-discovery==1.3.1"", ""babel==2.18.0"", ""pylint==4.0.5"", ""pytest-cov==7.1.0"", ""jinja2==3.1.6"", ""hypothesis==6.152.9"", ""stevedore==5.8.0"", ""sphinxcontrib-applehelp==2.0.0"", ""mako==1.3.12"", ""pip-tools==7.5.3"", ""astroid==4.0.4"", ""chardet==7.4.3"", ""pytest-django==4.12.0"", ""roman-numerals==4.1.0"", ""urllib3==2.7.0"", ""pylint-django==2.7.0"", ""beautifulsoup4==4.14.3"", ""imagesize==2.0.0"", ""pytz==2026.2"", ""django==5.2.14"", ""fs-s3fs==1.1.1"", ""distlib==0.4.0"", ""path==17.1.1"", ""botocore==1.43.14"", ""pyproject-hooks==1.2.0"", ""virtualenv==21.3.3"", ""typing-extensions==4.15.0"", ""mccabe==0.7.0"", ""alabaster==1.0.0"", ""cachetools==7.1.4"", ""sortedcontainers==2.4.0"", ""text-unidecode==1.3"", ""requests==2.34.2"", ""edx-lint==6.1.0"", ""tomlkit==0.15.0"", ""openedx-django-pyfs==4.0.0"", ""isort==8.0.1"", ""web-fragments==4.0.0"", ""click==8.4.1"", ""pygments==2.20.0"", ""code-annotations==3.0.0"", ""lazy==1.6"", ""pylint-plugin-utils==0.9.0"", ""markupsafe==3.0.3"", ""mock==5.2.0"", ""soupsieve==2.8.3"", ""python-slugify==8.0.4"", ""pymongo==4.17.0"", ""edx-opaque-keys==4.0.0"", ""pip==26.1.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pluggy==1.6.0"", ""pycodestyle==2.14.0"", ""build==1.5.0"", ""pydata-sphinx-theme==0.16.1"", ""click-log==0.4.0"", ""tomli-w==1.2.0"", ""sphinx==9.1.0"", ""tox==4.54.0"", ""python-dateutil==2.9.0.post0"", ""simplejson==4.1.1"", ""platformdirs==4.9.6"", ""diff-cover==10.2.1"", ""pyyaml==6.0.3"", ""pylint-celery==0.3"", ""colorama==0.4.6"", ""charset-normalizer==3.4.7"", ""dnspython==2.8.0"", ""ddt==1.7.2"", ""coverage[toml]==7.14.0"", ""sphinxcontrib-devhelp==2.0.0"", ""accessible-pygments==0.0.5"", ""pyproject-api==1.10.0"", ""lxml==6.1.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""dill==0.4.1"", ""asgiref==3.11.1"", ""boto3==1.43.14""]",5,"[""web-fragments"", ""pylint-django"", ""edx-opaque-keys"", ""pytest-django"", ""code-annotations""]",5,"[""web-fragments"", ""pylint-django"", ""edx-opaque-keys"", ""pytest-django"", ""code-annotations""]",3,"[""code-annotations"", ""web-fragments"", ""edx-opaque-keys""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,17,"{""total_duration"": ""8199 minutes 20 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""tests (3.12, django52)"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""tests (3.12, django42)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""tests (3.12, quality)"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2013-03-11 18:35:36,master,Framework for building custom learning components that run in the Open edX LMS!,3768,226,True,False,False,False,False,False,False,2026-05-31 00:39:57,Apache License 2.0,5,True,0,0,6518,10004,2285,485526,0,True,True,False,False,True,False,False,,openedx,0,"['http://scorm.com/scorm-explained/: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://github.com/openedx/XBlock/blob/master/LICENSE.txt: 404', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['http://www.lon-capa.org/', 'http://www.imsglobal.org/toolsinteroperability2.cfm', 'https://github.com/openedx/XBlock/blob/master/CHANGELOG.rst', 'https://github.com/openedx/XBlock/blob/master/xblock/__init__.py', 'https://github.com/openedx/xblock-sdk', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/index.html', 'https://discuss.openedx.org', 'https://github.com/openedx/XBlock/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/xblock', 'https://img.shields.io/pypi/v/XBlock.svg', 'https://pypi.python.org/pypi/XBlock/', 'https://github.com/openedx/XBlock/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/XBlock/actions', 'https://codecov.io/github/openedx/XBlock/coverage.svg?branch=master', 'https://codecov.io/github/openedx/XBlock?branch=master', 'https://readthedocs.org/projects/XBlock/badge/?version=latest', 'https://docs.openedx.org/projects/xblock/en/latest/', 'https://img.shields.io/pypi/pyversions/XBlock.svg', 'https://img.shields.io/github/license/openedx/XBlock.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,XBlock,"['3', '3.12']",https://github.com/openedx/XBlock,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/xqueue-watcher,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,False,False,False,False,False,False,False,True,True,True,9,"{""total_duration"": ""36323 minutes 23 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.14)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.13)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""update-dependencies"", ""duration"": ""0 minutes 13 seconds""}, {""name"": ""update-dependencies"", ""duration"": ""0 minutes 8 seconds""}, {""name"": ""update-dependencies"", ""duration"": ""0 minutes 8 seconds""}]}",Other,2014-04-22 20:08:42,master,,354,43,True,False,False,False,False,False,False,2026-05-29 16:29:08,GNU AGPLv3,6,True,0,1559,0,0,788,175853,0,False,False,False,False,True,False,False,,openedx,0,"['http://xqueue-svc: HTTPConnectionPool(host=\'xqueue-svc\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'xqueue-svc\', port=80): Failed to resolve \'xqueue-svc\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://github.com/openedx/xqueue', 'https://github.com/openedx/codejail']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],['git-core'],[] -openedx/edx-celeryutils,,,,True,2026-06-01,True,True,False,False,129,0,[],0,,0,0,,,21,"[""six==1.17.0"", ""wcwidth==0.6.0"", ""django-model-utils==5.0.0"", ""click-repl==0.3.0"", ""sqlparse==0.5.5"", ""celery==5.6.3"", ""kombu==5.6.2"", ""django==5.2.13"", ""vine==5.1.0"", ""python-dateutil==2.9.0.post0"", ""billiard==4.2.4"", ""click-didyoumean==0.3.1"", ""click-plugins==1.1.1.2"", ""prompt-toolkit==3.0.52"", ""asgiref==3.11.1"", ""packaging==26.0"", ""tzlocal==5.3.1"", ""click==8.3.2"", ""jsonfield==3.2.0"", ""amqp==5.3.1"", ""tzdata==2026.1""]",129,"[""pytest-cov==7.1.0"", ""pycparser==3.0"", ""pytest-django==4.12.0"", ""pylint-django==2.7.0"", ""pylint==4.0.5"", ""tomlkit==0.14.0"", ""wcwidth==0.6.0"", ""sphinxcontrib-qthelp==2.0.0"", ""filelock==3.25.2"", ""setuptools==82.0.1"", ""keyring==25.7.0"", ""diff-cover==10.2.0"", ""build==1.4.2"", ""snowballstemmer==3.0.1"", ""chardet==7.4.0.post2"", ""doc8==2.0.0"", ""kombu==5.6.2"", ""kombu==5.5.3"", ""vine==5.1.0"", ""pygments==2.20.0"", ""id==1.6.1"", ""click-didyoumean==0.3.1"", ""lxml[html-clean]==6.0.2"", ""click-plugins==1.1.1.2"", ""tox==4.52.0"", ""mock==5.2.0"", ""distlib==0.4.0"", ""mccabe==0.7.0"", ""idna==3.11"", ""sphinxcontrib-serializinghtml==2.0.0"", ""freezegun==1.5.5"", ""tomli-w==1.2.0"", ""docutils==0.22.4"", ""pluggy==1.6.0"", ""dill==0.4.1"", ""markdown-it-py==4.0.0"", ""pockets==0.9.1"", ""lxml-html-clean==0.4.4"", ""edx-i18n-tools==2.0.0"", ""sphinx==9.1.0"", ""more-itertools==11.0.1"", ""astroid==4.0.4"", ""charset-normalizer==3.4.7"", ""sphinx-book-theme==1.2.0"", ""babel==2.18.0"", ""sphinxcontrib-applehelp==2.0.0"", ""cryptography==46.0.6"", ""sqlparse==0.5.5"", ""celery==5.3.1"", ""pylint-celery==0.3"", ""pyproject-api==1.10.0"", ""python-slugify==8.0.4"", ""docutils==0.21.2"", ""roman-numerals==4.1.0"", ""python-dateutil==2.9.0.post0"", ""certifi==2026.2.25"", ""code-annotations==3.0.0"", ""colorama==0.4.6"", ""jinja2==3.1.6"", ""rich==14.3.3"", ""amqp==5.1.1"", ""pycodestyle==2.14.0"", ""click-log==0.4.0"", ""jaraco-classes==3.4.0"", ""jsonfield==3.2.0"", ""ddt==1.7.2"", ""secretstorage==3.5.0"", ""python-discovery==1.2.1"", ""pip==26.0.1"", ""markupsafe==3.0.3"", ""jaraco-functools==4.4.0"", ""pip-tools==7.5.3"", ""tzdata==2026.1"", ""requests==2.33.1"", ""django-model-utils==5.0.0"", ""click-repl==0.3.0"", ""pydocstyle==3.0.0"", ""twine==6.2.0"", ""accessible-pygments==0.0.5"", ""pydata-sphinx-theme==0.16.1"", ""alabaster==1.0.0"", ""billiard==4.1.0"", ""mdurl==0.1.2"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-devhelp==2.0.0"", ""readme-renderer==44.0"", ""nh3==0.3.4"", ""stevedore==5.7.0"", ""typing-extensions==4.15.0"", ""prompt-toolkit==3.0.52"", ""rfc3986==2.0.0"", ""packaging==26.0"", ""tzlocal==5.3.1"", ""click==8.3.2"", ""iniconfig==2.3.0"", ""restructuredtext-lint==2.0.2"", ""text-unidecode==1.3"", ""amqp==5.3.1"", ""wheel==0.46.3"", ""beautifulsoup4==4.14.3"", ""urllib3==2.6.3"", ""python-memcached==1.62"", ""jaraco-context==6.1.2"", ""six==1.17.0"", ""pylint-plugin-utils==0.9.0"", ""prompt-toolkit==3.0.51"", ""sphinxcontrib-napoleon==0.7"", ""imagesize==2.0.0"", ""cffi==2.0.0"", ""click==8.1.8"", ""celery==5.6.3"", ""polib==1.2.0"", ""sphinxcontrib-jsmath==1.0.1"", ""django==5.2.13"", ""coverage[toml]==7.13.5"", ""path==16.16.0"", ""edx-lint==6.0.0"", ""jeepney==0.9.0"", ""isort==8.0.1"", ""platformdirs==4.9.4"", ""billiard==4.2.4"", ""virtualenv==21.2.0"", ""asgiref==3.11.1"", ""requests-toolbelt==1.0.0"", ""pyyaml==6.0.3"", ""cachetools==7.0.5"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pytest==9.0.2"", ""soupsieve==2.8.3""]",4,"[""code-annotations"", ""pytest-django"", ""edx-i18n-tools"", ""pylint-django""]",6,"[""django-model-utils"", ""code-annotations"", ""edx-i18n-tools"", ""pylint-django"", ""jsonfield"", ""pytest-django""]",2,"[""code-annotations"", ""edx-i18n-tools""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,66,"{""total_duration"": ""1 minutes 51 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 42 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 27 seconds""}]}",Other,2017-02-01 23:33:38,master,Tools to support working with celery.,488,12,True,False,False,False,False,False,False,2026-05-30 15:07:26,Apache License 2.0,15,True,0,0,0,0,3693,33759,0,True,True,False,False,True,False,False,,openedx,4,"['http://edx-celeryutils.readthedocs.io/en/latest/?badge=latest: 404', 'http://edx-celeryutils.readthedocs.io/en/latest/: 404']",True,"['https://img.shields.io/pypi/v/edx-celeryutils.svg', 'https://pypi.python.org/pypi/edx-celeryutils/', 'https://github.com/openedx/edx-celeryutils/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-celeryutils/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-celeryutils/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-celeryutils?branch=master', 'https://img.shields.io/pypi/pyversions/edx-celeryutils.svg', 'https://img.shields.io/github/license/edx/edx-celeryutils.svg', 'https://github.com/openedx/edx-celeryutils/blob/master/LICENSE.txt', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-celeryutils,"['3', '3.12']",https://github.com/openedx/edx-celeryutils,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/staff-graded-xblock,,,,True,2026-06-01,True,True,False,False,100,0,[],0,,0,0,,,57,"[""prompt-toolkit==3.0.52"", ""fs==2.4.16"", ""markdown==3.10.2"", ""django==5.2.12"", ""certifi==2026.2.25"", ""amqp==5.3.1"", ""kombu==5.6.2"", ""typing-extensions==4.15.0"", ""tzdata==2025.3"", ""pymongo==4.16.0"", ""billiard==4.2.4"", ""sqlparse==0.5.5"", ""markupsafe==3.0.3"", ""path==17.1.1"", ""web-fragments==3.1.0"", ""djangorestframework==3.16.1"", ""packaging==26.0"", ""dnspython==2.8.0"", ""python-dateutil==2.9.0.post0"", ""webob==1.8.9"", ""django-model-utils==5.0.0"", ""charset-normalizer==3.4.5"", ""asgiref==3.11.1"", ""mako==1.3.10"", ""tzlocal==5.3.1"", ""appdirs==1.4.4"", ""xblock==5.3.0"", ""click-repl==0.3.0"", ""pycparser==3.0"", ""cffi==2.0.0"", ""psutil==7.2.2"", ""requests==2.32.5"", ""stevedore==5.7.0"", ""urllib3==2.6.3"", ""edx-django-utils==8.0.1"", ""pytz==2026.1.post1"", ""super-csv==4.1.0"", ""click-didyoumean==0.3.1"", ""pyyaml==6.0.3"", ""simplejson==3.20.2"", ""six==1.17.0"", ""idna==3.11"", ""path-py==12.5.0"", ""jsonfield==3.2.0"", ""click==8.3.1"", ""celery==5.6.2"", ""vine==5.1.0"", ""edx-opaque-keys==3.1.0"", ""django-waffle==5.0.0"", ""edx-bulk-grades==1.2.0"", ""pynacl==1.6.2"", ""django-crum==0.7.9"", ""wcwidth==0.6.0"", ""edx-celeryutils==1.4.0"", ""click-plugins==1.1.1.2"", ""slumber==0.7.1"", ""lxml==6.0.2""]",100,"[""distlib==0.4.0"", ""python-slugify==8.0.4"", ""certifi==2026.2.25"", ""amqp==5.3.1"", ""tzdata==2025.3"", ""path==17.1.1"", ""web-fragments==3.1.0"", ""astroid==4.0.4"", ""webob==1.8.9"", ""psutil==7.2.2"", ""polib==1.2.0"", ""requests==2.32.5"", ""coverage[toml]==7.13.4"", ""pyyaml==6.0.3"", ""edx-opaque-keys==3.1.0"", ""pynacl==1.6.2"", ""edx-lint==5.6.0"", ""virtualenv==21.1.0"", ""lxml-html-clean==0.4.4"", ""filelock==3.25.0"", ""prompt-toolkit==3.0.52"", ""fs==2.4.16"", ""markdown==3.10.2"", ""wheel==0.46.3"", ""kombu==5.6.2"", ""edx-i18n-tools==1.6.1"", ""typing-extensions==4.15.0"", ""build==1.4.0"", ""pymongo==4.16.0"", ""sqlparse==0.5.5"", ""mccabe==0.7.0"", ""dnspython==2.8.0"", ""django-model-utils==5.0.0"", ""cachetools==7.0.3"", ""tzlocal==5.3.1"", ""pylint-celery==0.3"", ""appdirs==1.4.4"", ""setuptools==82.0.0"", ""django-appconf==1.2.0"", ""idna==3.11"", ""pyproject-api==1.10.0"", ""django-waffle==5.0.0"", ""jinja2==3.1.6"", ""wcwidth==0.6.0"", ""edx-celeryutils==1.4.0"", ""lxml[html-clean]==6.0.2"", ""django==5.2.12"", ""python-discovery==1.1.1"", ""pytest-cov==7.0.0"", ""pip-tools==7.5.3"", ""djangorestframework==3.16.1"", ""text-unidecode==1.3"", ""cffi==2.0.0"", ""urllib3==2.6.3"", ""edx-django-utils==8.0.1"", ""pytz==2026.1.post1"", ""iniconfig==2.3.0"", ""click-didyoumean==0.3.1"", ""six==1.17.0"", ""path-py==12.5.0"", ""pylint-plugin-utils==0.9.0"", ""jsonfield==3.2.0"", ""click==8.3.1"", ""celery==5.6.2"", ""vine==5.1.0"", ""click-plugins==1.1.1.2"", ""slumber==0.7.1"", ""lxml==6.0.2"", ""tomli-w==1.2.0"", ""click-log==0.4.0"", ""tomlkit==0.14.0"", ""pyproject-hooks==1.2.0"", ""tox==4.49.0"", ""dill==0.4.1"", ""django-statici18n==2.6.0"", ""billiard==4.2.4"", ""markupsafe==3.0.3"", ""colorama==0.4.6"", ""packaging==26.0"", ""pluggy==1.6.0"", ""pylint-django==2.7.0"", ""python-dateutil==2.9.0.post0"", ""charset-normalizer==3.4.5"", ""asgiref==3.11.1"", ""mako==1.3.10"", ""pylint==4.0.5"", ""xblock==5.3.0"", ""click-repl==0.3.0"", ""pycparser==3.0"", ""platformdirs==4.9.4"", ""stevedore==5.7.0"", ""super-csv==4.1.0"", ""simplejson==3.20.2"", ""pytest==9.0.2"", ""pygments==2.19.2"", ""edx-bulk-grades==1.2.0"", ""django-crum==0.7.9"", ""pip==26.0.1"", ""code-annotations==2.3.2"", ""isort==8.0.1""]",13,"[""xblock"", ""djangorestframework"", ""django-appconf"", ""edx-celeryutils"", ""pylint-django"", ""edx-django-utils"", ""edx-opaque-keys"", ""code-annotations"", ""super-csv"", ""edx-bulk-grades"", ""web-fragments"", ""edx-i18n-tools"", ""django-waffle""]",17,"[""xblock"", ""djangorestframework"", ""django-appconf"", ""edx-celeryutils"", ""pylint-django"", ""edx-django-utils"", ""django-model-utils"", ""django-statici18n"", ""edx-opaque-keys"", ""code-annotations"", ""super-csv"", ""edx-bulk-grades"", ""web-fragments"", ""edx-i18n-tools"", ""jsonfield"", ""django-crum"", ""django-waffle""]",11,"[""xblock"", ""django-appconf"", ""edx-celeryutils"", ""edx-django-utils"", ""edx-opaque-keys"", ""code-annotations"", ""super-csv"", ""edx-bulk-grades"", ""web-fragments"", ""edx-i18n-tools"", ""django-waffle""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,14,"{""total_duration"": ""1992 minutes 13 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""2 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 31 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2019-05-15 18:56:20,master,Staff Graded Points XBlock,284,17,True,False,False,False,False,False,False,2026-06-01 00:45:32,GNU AGPLv3,13,True,208,972,3390,244732,4215,28886,0,False,True,False,True,True,True,True,,openedx,3,"['https://django-statici18n.readthedocs.io/en/latest/: 404', 'https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /software/gettext/manual/html_node/PO-Files.html (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))']",False,"['https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html', 'https://github.com/openedx/i18n-tools', 'https://docs.djangoproject.com/en/1.11/topics/i18n/translation/', 'https://docs.transifex.com/integrations/django']",True,True,False,False,,,False,,,,False,True,False,True,,False,staff-graded-xblock,"['3', '3.12']",https://github.com/openedx/staff_graded-xblock,True,True,True,False,False,False,False,False,False,[],[],['gettext'],[] -openedx/course-discovery,,,,True,2026-06-01,False,False,False,False,289,0,[],354,"{""@babel/code-frame"": ""7.16.0"", ""@babel/helper-validator-identifier"": ""7.15.7"", ""@babel/highlight"": ""7.16.0"", ""@discoveryjs/json-ext"": ""0.5.5"", ""@jridgewell/gen-mapping"": ""0.3.5"", ""@jridgewell/resolve-uri"": ""3.1.2"", ""@jridgewell/set-array"": ""1.2.1"", ""@jridgewell/source-map"": ""0.3.6"", ""@jridgewell/sourcemap-codec"": ""1.5.0"", ""@jridgewell/trace-mapping"": ""0.3.25"", ""@sindresorhus/is"": ""4.2.0"", ""@szmarczak/http-timer"": ""4.0.6"", ""@types/cacheable-request"": ""6.0.2"", ""@types/estree"": ""1.0.5"", ""@types/http-cache-semantics"": ""4.0.1"", ""@types/json-schema"": ""7.0.15"", ""@types/keyv"": ""3.1.3"", ""@types/minimist"": ""1.2.2"", ""@types/node"": ""16.9.4"", ""@types/normalize-package-data"": ""2.4.1"", ""@types/responselike"": ""1.0.0"", ""@webassemblyjs/ast"": ""1.12.1"", ""@webassemblyjs/floating-point-hex-parser"": ""1.11.6"", ""@webassemblyjs/helper-api-error"": ""1.11.6"", ""@webassemblyjs/helper-buffer"": ""1.12.1"", ""@webassemblyjs/helper-numbers"": ""1.11.6"", ""@webassemblyjs/helper-wasm-bytecode"": ""1.11.6"", ""@webassemblyjs/helper-wasm-section"": ""1.12.1"", ""@webassemblyjs/ieee754"": ""1.11.6"", ""@webassemblyjs/leb128"": ""1.11.6"", ""@webassemblyjs/utf8"": ""1.11.6"", ""@webassemblyjs/wasm-edit"": ""1.12.1"", ""@webassemblyjs/wasm-gen"": ""1.12.1"", ""@webassemblyjs/wasm-opt"": ""1.12.1"", ""@webassemblyjs/wasm-parser"": ""1.12.1"", ""@webassemblyjs/wast-printer"": ""1.12.1"", ""@webpack-cli/configtest"": ""1.0.4"", ""@webpack-cli/info"": ""1.3.0"", ""@webpack-cli/serve"": ""1.5.2"", ""@xtuc/ieee754"": ""1.2.0"", ""@xtuc/long"": ""4.2.2"", ""abbrev"": ""1.1.1"", ""acorn"": ""8.12.1"", ""acorn-import-attributes"": ""1.9.5"", ""adm-zip"": ""0.5.9"", ""agent-base"": ""6.0.2"", ""ajv"": ""6.12.6"", ""ajv-formats"": ""2.1.1"", ""amdefine"": ""1.0.1"", ""ansi-regex"": ""6.0.1"", ""ansi-styles"": ""2.2.1"", ""anymatch"": ""3.1.2"", ""aproba"": ""1.2.0"", ""are-we-there-yet"": ""1.1.7"", ""arrify"": ""1.0.1"", ""asn1"": ""0.2.6"", ""assert-plus"": ""1.0.0"", ""async-foreach"": ""0.1.3"", ""asynckit"": ""0.4.0"", ""aws-sign2"": ""0.7.0"", ""aws4"": ""1.11.0"", ""balanced-match"": ""1.0.2"", ""bcrypt-pbkdf"": ""1.0.2"", ""big.js"": ""5.2.2"", ""binary-extensions"": ""2.2.0"", ""bluebird"": ""3.7.2"", ""bootstrap-sass"": ""3.4.3"", ""bower"": ""1.8.12"", ""brace-expansion"": ""1.1.11"", ""braces"": ""3.0.2"", ""browserslist"": ""4.23.3"", ""buffer-from"": ""1.1.2"", ""cacheable-lookup"": ""5.0.4"", ""cacheable-request"": ""7.0.2"", ""camelcase"": ""5.3.1"", ""camelcase-keys"": ""6.2.2"", ""caniuse-lite"": ""1.0.30001653"", ""caseless"": ""0.12.0"", ""chalk"": ""1.1.3"", ""chokidar"": ""3.5.3"", ""chownr"": ""2.0.0"", ""chrome-trace-event"": ""1.0.3"", ""cliui"": ""5.0.0"", ""clone-deep"": ""4.0.1"", ""clone-response"": ""1.0.2"", ""code-point-at"": ""1.1.0"", ""color-convert"": ""1.9.3"", ""color-name"": ""1.1.3"", ""colorette"": ""1.4.0"", ""combined-stream"": ""1.0.8"", ""commander"": ""2.20.3"", ""concat-map"": ""0.0.1"", ""console-control-strings"": ""1.1.0"", ""core-util-is"": ""1.0.2"", ""cross-spawn"": ""7.0.3"", ""css-loader"": ""6.11.0"", ""cssesc"": ""3.0.0"", ""dashdash"": ""1.14.1"", ""datatables.net"": ""1.13.11"", ""datatables.net-bs"": ""1.13.11"", ""debug"": ""4.3.3"", ""decamelize"": ""1.2.0"", ""decamelize-keys"": ""1.1.0"", ""decompress-response"": ""6.0.0"", ""defer-to-connect"": ""2.0.1"", ""delayed-stream"": ""1.0.0"", ""delegates"": ""1.0.0"", ""ecc-jsbn"": ""0.1.2"", ""electron-to-chromium"": ""1.5.13"", ""emoji-regex"": ""7.0.3"", ""emojis-list"": ""3.0.0"", ""end-of-stream"": ""1.4.4"", ""enhanced-resolve"": ""5.17.1"", ""env-paths"": ""2.2.1"", ""envinfo"": ""7.8.1"", ""error-ex"": ""1.3.2"", ""es-module-lexer"": ""1.5.4"", ""escalade"": ""3.1.2"", ""escape-string-regexp"": ""1.0.5"", ""eslint-scope"": ""5.1.1"", ""esrecurse"": ""4.3.0"", ""estraverse"": ""4.3.0"", ""events"": ""3.3.0"", ""execa"": ""5.1.1"", ""extend"": ""3.0.2"", ""extsprintf"": ""1.3.0"", ""fast-deep-equal"": ""3.1.3"", ""fast-json-stable-stringify"": ""2.1.0"", ""fast-uri"": ""3.0.1"", ""fastest-levenshtein"": ""1.0.12"", ""file-loader"": ""6.2.0"", ""fill-range"": ""7.0.1"", ""find-up"": ""4.1.0"", ""forever-agent"": ""0.6.1"", ""form-data"": ""2.3.3"", ""fs-minipass"": ""2.1.0"", ""fs.realpath"": ""1.0.0"", ""fsevents"": ""2.3.2"", ""function-bind"": ""1.1.1"", ""gauge"": ""2.7.4"", ""gaze"": ""1.1.3"", ""geckodriver"": ""3.2.0"", ""get-caller-file"": ""2.0.5"", ""get-stdin"": ""4.0.1"", ""get-stream"": ""6.0.1"", ""getpass"": ""0.1.7"", ""glob"": ""7.2.0"", ""glob-parent"": ""5.1.2"", ""glob-to-regexp"": ""0.4.1"", ""globule"": ""1.3.3"", ""got"": ""11.8.5"", ""graceful-fs"": ""4.2.11"", ""har-schema"": ""2.0.0"", ""har-validator"": ""5.1.5"", ""hard-rejection"": ""2.1.0"", ""has"": ""1.0.3"", ""has-ansi"": ""2.0.0"", ""has-flag"": ""4.0.0"", ""has-unicode"": ""2.0.1"", ""hosted-git-info"": ""4.0.2"", ""http-cache-semantics"": ""4.1.0"", ""http-signature"": ""1.2.0"", ""http2-wrapper"": ""1.0.3"", ""https-proxy-agent"": ""5.0.1"", ""human-signals"": ""2.1.0"", ""icss-utils"": ""5.1.0"", ""immutable"": ""4.0.0"", ""import-local"": ""3.0.2"", ""imports-loader"": ""0.8.0"", ""indent-string"": ""4.0.0"", ""inflight"": ""1.0.6"", ""inherits"": ""2.0.4"", ""interpret"": ""2.2.0"", ""is-arrayish"": ""0.2.1"", ""is-binary-path"": ""2.1.0"", ""is-core-module"": ""2.5.0"", ""is-extglob"": ""2.1.1"", ""is-fullwidth-code-point"": ""1.0.0"", ""is-glob"": ""4.0.3"", ""is-number"": ""7.0.0"", ""is-plain-obj"": ""1.1.0"", ""is-plain-object"": ""2.0.4"", ""is-typedarray"": ""1.0.0"", ""isarray"": ""1.0.0"", ""isexe"": ""2.0.0"", ""isobject"": ""3.0.1"", ""isstream"": ""0.1.2"", ""jest-worker"": ""27.5.1"", ""jquery"": ""3.7.1"", ""js-base64"": ""2.6.4"", ""js-tokens"": ""4.0.0"", ""jsbn"": ""0.1.1"", ""json-buffer"": ""3.0.1"", ""json-parse-even-better-errors"": ""2.3.1"", ""json-schema"": ""0.4.0"", ""json-schema-traverse"": ""0.4.1"", ""json-stringify-safe"": ""5.0.1"", ""json5"": ""1.0.1"", ""jsprim"": ""1.4.2"", ""keyv"": ""4.0.4"", ""kind-of"": ""6.0.3"", ""klona"": ""2.0.4"", ""lines-and-columns"": ""1.2.4"", ""loader-runner"": ""4.2.0"", ""loader-utils"": ""1.4.0"", ""locate-path"": ""5.0.0"", ""lodash"": ""4.17.21"", ""lodash.assign"": ""4.2.0"", ""lodash.defaults"": ""4.2.0"", ""lodash.foreach"": ""4.5.0"", ""lodash.frompairs"": ""4.0.1"", ""lodash.get"": ""4.4.2"", ""lodash.topairs"": ""4.3.0"", ""lowercase-keys"": ""2.0.0"", ""lru-cache"": ""6.0.0"", ""map-obj"": ""4.3.0"", ""meow"": ""9.0.0"", ""merge-stream"": ""2.0.0"", ""mime-db"": ""1.51.0"", ""mime-types"": ""2.1.34"", ""mimic-fn"": ""2.1.0"", ""mimic-response"": ""1.0.1"", ""min-indent"": ""1.0.1"", ""mini-css-extract-plugin"": ""2.9.2"", ""minimatch"": ""3.0.4"", ""minimist"": ""1.2.6"", ""minimist-options"": ""4.1.0"", ""minipass"": ""3.1.3"", ""minizlib"": ""2.1.2"", ""mkdirp"": ""1.0.4"", ""ms"": ""2.1.2"", ""nan"": ""2.15.0"", ""nanoid"": ""3.3.7"", ""neo-async"": ""2.6.2"", ""node-gyp"": ""7.1.2"", ""node-releases"": ""2.0.18"", ""node-sass"": ""6.0.1"", ""nopt"": ""5.0.0"", ""normalize-package-data"": ""3.0.3"", ""normalize-path"": ""3.0.0"", ""normalize-url"": ""6.1.0"", ""npm-run-path"": ""4.0.1"", ""npmlog"": ""4.1.2"", ""number-is-nan"": ""1.0.1"", ""oauth-sign"": ""0.9.0"", ""object-assign"": ""4.1.1"", ""once"": ""1.4.0"", ""onetime"": ""5.1.2"", ""p-cancelable"": ""2.1.1"", ""p-limit"": ""2.2.2"", ""p-locate"": ""4.1.0"", ""p-try"": ""2.2.0"", ""parse-json"": ""5.2.0"", ""path-exists"": ""4.0.0"", ""path-is-absolute"": ""1.0.1"", ""path-key"": ""3.1.1"", ""path-parse"": ""1.0.7"", ""performance-now"": ""2.1.0"", ""picocolors"": ""1.0.1"", ""picomatch"": ""2.3.1"", ""postcss"": ""8.4.33"", ""postcss-modules-extract-imports"": ""3.1.0"", ""postcss-modules-local-by-default"": ""4.0.5"", ""postcss-modules-scope"": ""3.2.0"", ""postcss-modules-values"": ""4.0.0"", ""postcss-selector-parser"": ""6.0.6"", ""postcss-value-parser"": ""4.2.0"", ""process-nextick-args"": ""2.0.1"", ""psl"": ""1.8.0"", ""pump"": ""3.0.0"", ""punycode"": ""2.1.1"", ""qs"": ""6.5.2"", ""quick-lru"": ""4.0.1"", ""randombytes"": ""2.1.0"", ""read-pkg"": ""5.2.0"", ""read-pkg-up"": ""7.0.1"", ""readable-stream"": ""2.3.7"", ""readdirp"": ""3.6.0"", ""rechoir"": ""0.7.1"", ""redent"": ""3.0.0"", ""request"": ""2.88.2"", ""require-directory"": ""2.1.1"", ""require-from-string"": ""2.0.2"", ""require-main-filename"": ""2.0.0"", ""resolve"": ""1.20.0"", ""resolve-alpn"": ""1.2.1"", ""resolve-cwd"": ""3.0.0"", ""resolve-from"": ""5.0.0"", ""responselike"": ""2.0.0"", ""rimraf"": ""3.0.2"", ""safe-buffer"": ""5.1.2"", ""safer-buffer"": ""2.1.2"", ""sass"": ""1.78.0"", ""sass-graph"": ""2.2.5"", ""sass-loader"": ""12.1.0"", ""schema-utils"": ""3.3.0"", ""scss-tokenizer"": ""0.2.3"", ""semver"": ""7.5.4"", ""serialize-javascript"": ""6.0.2"", ""set-blocking"": ""2.0.0"", ""shallow-clone"": ""3.0.1"", ""shebang-command"": ""2.0.0"", ""shebang-regex"": ""3.0.0"", ""signal-exit"": ""3.0.7"", ""source-map"": ""0.6.1"", ""source-map-js"": ""1.0.2"", ""source-map-support"": ""0.5.21"", ""spdx-correct"": ""3.1.1"", ""spdx-exceptions"": ""2.3.0"", ""spdx-expression-parse"": ""3.0.1"", ""spdx-license-ids"": ""3.0.11"", ""sshpk"": ""1.16.1"", ""stdout-stream"": ""1.4.1"", ""string_decoder"": ""1.1.1"", ""string-width"": ""1.0.2"", ""strip-ansi"": ""6.0.1"", ""strip-final-newline"": ""2.0.0"", ""strip-indent"": ""3.0.0"", ""supports-color"": ""2.0.0"", ""tapable"": ""2.2.1"", ""tar"": ""6.1.11"", ""terser"": ""5.31.6"", ""terser-webpack-plugin"": ""5.3.10"", ""to-regex-range"": ""5.0.1"", ""tough-cookie"": ""2.5.0"", ""trim-newlines"": ""3.0.1"", ""true-case-path"": ""1.0.3"", ""tunnel-agent"": ""0.6.0"", ""tweetnacl"": ""0.14.5"", ""type-fest"": ""0.18.1"", ""update-browserslist-db"": ""1.1.0"", ""uri-js"": ""4.2.2"", ""url-loader"": ""4.1.1"", ""util-deprecate"": ""1.0.2"", ""uuid"": ""3.4.0"", ""v8-compile-cache"": ""2.3.0"", ""validate-npm-package-license"": ""3.0.4"", ""verror"": ""1.10.0"", ""watchpack"": ""2.4.2"", ""webpack"": ""5.94.0"", ""webpack-bundle-tracker"": ""1.8.1"", ""webpack-cli"": ""4.8.0"", ""webpack-merge"": ""5.8.0"", ""webpack-sources"": ""3.2.3"", ""which"": ""2.0.2"", ""which-module"": ""2.0.0"", ""wide-align"": ""1.1.5"", ""wildcard"": ""2.0.0"", ""wrap-ansi"": ""5.1.0"", ""wrappy"": ""1.0.2"", ""y18n"": ""4.0.3"", ""yallist"": ""4.0.0"", ""yargs"": ""13.3.2"", ""yargs-parser"": ""20.2.9""}",16,1,"{""geckodriver"": ""3.2.0""}","{""ansi-regex"": ""6.0.1"", ""bootstrap-sass"": ""3.4.3"", ""bower"": ""1.8.12"", ""css-loader"": ""6.11.0"", ""datatables.net"": ""1.13.11"", ""datatables.net-bs"": ""1.13.11"", ""mini-css-extract-plugin"": ""2.9.2"", ""file-loader"": ""6.2.0"", ""imports-loader"": ""0.8.0"", ""jquery"": ""3.7.1"", ""sass"": ""1.78.0"", ""sass-loader"": ""12.1.0"", ""url-loader"": ""4.1.1"", ""webpack"": ""5.94.0"", ""webpack-bundle-tracker"": ""1.8.1"", ""webpack-cli"": ""4.8.0""}",186,"[""django-compressor==4.6.0"", ""edx-drf-extensions==10.6.0"", ""tzdata==2026.1"", ""rcssmin==1.2.2"", ""elasticsearch-dsl==7.4.1"", ""google-auth-oauthlib==1.3.1"", ""requests-toolbelt==0.10.1"", ""isodate==0.7.2"", ""pynacl==1.6.2"", ""drf-yasg==1.21.15"", ""algoliasearch==1.20.0"", ""edx-rest-api-client==6.2.0"", ""gevent==25.9.1"", ""click-didyoumean==0.3.1"", ""edx-auth-backends==5.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""billiard==4.2.4"", ""django-storages==1.14.6"", ""soupsieve==2.8.3"", ""beautifulsoup4==4.14.3"", ""openedx-events==11.1.0"", ""getsmarter-api-clients==0.6.3"", ""edx-django-utils==8.0.1"", ""django-parler==2.3"", ""protobuf==7.34.1"", ""importlib-metadata==9.0.0"", ""djangorestframework==3.17.1"", ""greenlet==3.3.2"", ""requests-oauthlib==2.0.0"", ""sortedcontainers==2.4.0"", ""idna==3.11"", ""proto-plus==1.27.2"", ""asgiref==3.11.1"", ""google-auth==2.49.1"", ""elasticsearch==7.13.4"", ""cffi==2.0.0"", ""edx-toggles==5.4.1"", ""google-api-python-client==2.193.0"", ""celery==5.6.3"", ""django-waffle==5.0.0"", ""s3transfer==0.16.0"", ""cairosvg==2.9.0"", ""django-nine==0.2.7"", ""django-localflavor==5.0"", ""rpds-py==0.30.0"", ""django-taggit-autosuggest==0.4.2"", ""amqp==5.3.1"", ""gunicorn==25.3.0"", ""pymongo==4.16.0"", ""social-auth-core==4.8.5"", ""webencodings==0.5.1"", ""oauthlib==3.3.1"", ""djangorestframework-xml==2.0.0"", ""edx-django-sites-extensions==6.0.0"", ""platformdirs==4.9.4"", ""django-fsm==3.0.1"", ""django-simple-history==3.11.0"", ""backoff==2.2.1"", ""python3-openid==3.2.0"", ""wcwidth==0.6.0"", ""typing-extensions==4.15.0"", ""django-multi-email-field==0.8.0"", ""defusedxml==0.7.1"", ""google-api-core==2.30.2"", ""boto3==1.42.84"", ""requests-file==3.0.1"", ""zipp==3.23.0"", ""django-extensions==4.1"", ""pyjwt[crypto]==2.12.1"", ""googleapis-common-protos==1.74.0"", ""contentful==2.5.0"", ""html2text==2025.4.15"", ""sqlparse==0.5.5"", ""vine==5.1.0"", ""algoliasearch-django==1.7.3"", ""django-celery-results==2.6.0"", ""attrs==26.1.0"", ""django-taggit==6.1.0"", ""drf-extensions==0.8.0"", ""pycountry==26.2.16"", ""django-nested-admin==4.1.6"", ""botocore==1.42.84"", ""django-model-utils==5.0.0"", ""markupsafe==3.0.3"", ""django-elasticsearch-dsl==7.4"", ""redis==7.4.0"", ""edx-analytics-data-api-client==0.18.3"", ""click-plugins==1.1.1.2"", ""edx-event-bus-redis==1.0.0"", ""python-monkey-business==1.1.0"", ""python-stdnum==2.2"", ""cryptography==45.0.7"", ""tinycss2==1.5.1"", ""markdown==3.10.2"", ""code-annotations==3.0.0"", ""urllib3==1.26.20"", ""jinja2==3.1.6"", ""semantic-version==2.10.0"", ""lxml[html-clean]==6.0.2"", ""django-stdimage==5.3.0"", ""pyopenssl==25.3.0"", ""openedx-atlas==0.7.0"", ""cssselect2==0.9.0"", ""pyparsing==3.3.2"", ""python-dateutil==2.9.0.post0"", ""djangorestframework-csv==3.0.2"", ""cairocffi==1.7.1"", ""more-itertools==11.0.1"", ""django-filter==25.2"", ""django-multiselectfield==1.0.1"", ""six==1.17.0"", ""lxml-html-clean==0.4.4"", ""taxonomy-connector==2.4.0"", ""simple-salesforce==1.12.9"", ""django==5.2.12"", ""rjsmin==1.2.5"", ""kombu==5.6.2"", ""snowflake-connector-python==4.3.0"", ""django-autocomplete-light==3.12.1"", ""dnspython==2.8.0"", ""drf-flex-fields==1.0.2"", ""jsonfield==3.2.0"", ""mysqlclient==2.2.8"", ""edx-api-doc-tools==3.0.0"", ""uritemplate==4.2.0"", ""referencing==0.37.0"", ""walrus==0.9.8"", ""zope-event==6.1"", ""django-webpack-loader==3.2.3"", ""django-sortedm2m==4.0.0"", ""django-guardian==3.0.3"", ""python-slugify==8.0.4"", ""python-memcached==1.62"", ""django-dry-rest-permissions==1.2.0"", ""social-auth-app-django==5.4.3"", ""gspread==6.2.1"", ""jsonschema==4.26.0"", ""django-crum==0.7.9"", ""pytz==2026.1.post1"", ""xss-utils==1.0.0"", ""pyasn1==0.6.3"", ""django-cors-headers==4.9.0"", ""certifi==2026.2.25"", ""httplib2==0.31.2"", ""pillow==9.5.0"", ""zope-interface==8.2"", ""edx-django-release-util==1.5.0"", ""pyasn1-modules==0.4.2"", ""tzlocal==5.3.1"", ""prompt-toolkit==3.0.52"", ""drf-jwt==1.19.2"", ""django-dynamic-filenames==1.4.1"", ""filelock==3.25.2"", ""charset-normalizer==3.4.7"", ""django-object-actions==5.0.0"", ""django-countries==8.2.0"", ""requests==2.33.1"", ""psutil==7.2.2"", ""zeep==4.3.2"", ""asn1crypto==1.5.1"", ""edx-event-bus-kafka==6.1.0"", ""django-libsass==0.9"", ""django-ses==4.7.2"", ""inflection==0.5.1"", ""unicodecsv==0.14.1"", ""pymemcache==4.0.0"", ""google-auth-httplib2==0.3.1"", ""click==8.3.2"", ""text-unidecode==1.3"", ""libsass==0.23.0"", ""edx-ccx-keys==2.0.2"", ""tomlkit==0.14.0"", ""jsonschema-specifications==2025.9.1"", ""django-elasticsearch-dsl-drf==0.22.5"", ""django-admin-sortable2==2.3.1"", ""django-solo==2.5.1"", ""stevedore==5.7.0"", ""packaging==26.0"", ""django-appconf==1.2.0"", ""django-config-models==3.0.0"", ""pycparser==3.0"", ""pyyaml==6.0.3"", ""click-repl==0.3.0"", ""jmespath==1.1.0"", ""django-contrib-comments==2.2.0"", ""fastavro==1.12.1""]",272,"[""imagesize==2.0.0"", ""django-compressor==4.6.0"", ""edx-drf-extensions==10.6.0"", ""tzdata==2026.1"", ""virtualenv==21.2.0"", ""rcssmin==1.2.2"", ""elasticsearch-dsl==7.4.1"", ""click-log==0.4.0"", ""pluggy==1.6.0"", ""google-auth-oauthlib==1.3.1"", ""requests-toolbelt==0.10.1"", ""edx-i18n-tools==2.0.0"", ""isodate==0.7.2"", ""pynacl==1.6.2"", ""wsproto==1.3.2"", ""colorama==0.4.6"", ""drf-yasg==1.21.15"", ""algoliasearch==1.20.0"", ""edx-rest-api-client==6.2.0"", ""edx-lint==5.3.7"", ""gevent==25.9.1"", ""click-didyoumean==0.3.1"", ""edx-auth-backends==5.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""billiard==4.2.4"", ""pycodestyle==2.14.0"", ""django-storages==1.14.6"", ""distlib==0.4.0"", ""soupsieve==2.8.3"", ""beautifulsoup4==4.14.3"", ""openedx-events==11.1.0"", ""python-discovery==1.2.1"", ""getsmarter-api-clients==0.6.3"", ""edx-django-utils==8.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""django-parler==2.3"", ""protobuf==7.34.1"", ""importlib-metadata==9.0.0"", ""djangorestframework==3.17.1"", ""outcome==1.3.0.post0"", ""build==1.4.2"", ""pytest==9.0.2"", ""greenlet==3.3.2"", ""requests-oauthlib==2.0.0"", ""django-debug-toolbar==4.1.0"", ""sphinx==5.3.0"", ""sortedcontainers==2.4.0"", ""idna==3.11"", ""proto-plus==1.27.2"", ""asgiref==3.11.1"", ""google-auth==2.49.1"", ""mdurl==0.1.2"", ""elasticsearch==7.13.4"", ""semgrep==1.52.0"", ""cffi==2.0.0"", ""edx-toggles==5.4.1"", ""google-api-python-client==2.193.0"", ""pip-tools==7.5.3"", ""celery==5.6.3"", ""django-waffle==5.0.0"", ""s3transfer==0.16.0"", ""responses==0.26.0"", ""cairosvg==2.9.0"", ""django-nine==0.2.7"", ""django-localflavor==5.0"", ""rpds-py==0.30.0"", ""ddt==1.7.2"", ""django-taggit-autosuggest==0.4.2"", ""amqp==5.3.1"", ""pydata-sphinx-theme==0.15.4"", ""gunicorn==25.3.0"", ""pymongo==4.16.0"", ""social-auth-core==4.8.5"", ""webencodings==0.5.1"", ""oauthlib==3.3.1"", ""djangorestframework-xml==2.0.0"", ""edx-django-sites-extensions==6.0.0"", ""platformdirs==4.9.4"", ""dill==0.4.1"", ""django-fsm==3.0.1"", ""markdown-it-py==4.0.0"", ""pysocks==1.7.1"", ""ruamel-yaml==0.17.40"", ""alabaster==0.7.16"", ""click-option-group==0.5.9"", ""polib==1.2.0"", ""django-simple-history==3.11.0"", ""backoff==2.2.1"", ""babel==2.18.0"", ""python3-openid==3.2.0"", ""wcwidth==0.6.0"", ""pytest-xdist==3.8.0"", ""typing-extensions==4.15.0"", ""sphinxcontrib-qthelp==2.0.0"", ""django-multi-email-field==0.8.0"", ""defusedxml==0.7.1"", ""google-api-core==2.30.2"", ""boto3==1.42.84"", ""requests-file==3.0.1"", ""zipp==3.23.0"", ""pylint-django==2.7.0"", ""pytest-cov==7.1.0"", ""django-extensions==4.1"", ""path==16.16.0"", ""trio==0.33.0"", ""wcmatch==8.5.2"", ""pyjwt[crypto]==2.12.1"", ""googleapis-common-protos==1.74.0"", ""astroid==4.0.4"", ""contentful==2.5.0"", ""html2text==2025.4.15"", ""sqlparse==0.5.5"", ""vine==5.1.0"", ""algoliasearch-django==1.7.3"", ""django-celery-results==2.6.0"", ""pygments==2.20.0"", ""mock==5.2.0"", ""attrs==26.1.0"", ""drf-extensions==0.8.0"", ""django-taggit==6.1.0"", ""pycountry==26.2.16"", ""django-nested-admin==4.1.6"", ""botocore==1.42.84"", ""django-model-utils==5.0.0"", ""urllib3[socks]==1.26.20"", ""markupsafe==3.0.3"", ""django-elasticsearch-dsl==7.4"", ""redis==7.4.0"", ""edx-analytics-data-api-client==0.18.3"", ""pyproject-api==1.10.0"", ""click-plugins==1.1.1.2"", ""slumber==0.7.1"", ""edx-event-bus-redis==1.0.0"", ""python-monkey-business==1.1.0"", ""selenium==4.12.0"", ""python-stdnum==2.2"", ""cryptography==45.0.7"", ""tinycss2==1.5.1"", ""markdown==3.10.2"", ""code-annotations==3.0.0"", ""urllib3==1.26.20"", ""jinja2==3.1.6"", ""semantic-version==2.10.0"", ""tomli==2.0.2"", ""lxml[html-clean]==6.0.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""django-stdimage==5.3.0"", ""pyopenssl==25.3.0"", ""openedx-atlas==0.7.0"", ""cssselect2==0.9.0"", ""pyparsing==3.3.2"", ""python-dateutil==2.9.0.post0"", ""pytest-responses==0.5.1"", ""djangorestframework-csv==3.0.2"", ""cairocffi==1.7.1"", ""more-itertools==11.0.1"", ""trio-websocket==0.12.2"", ""django-filter==25.2"", ""django-multiselectfield==1.0.1"", ""six==1.17.0"", ""lxml-html-clean==0.4.4"", ""taxonomy-connector==2.4.0"", ""simple-salesforce==1.12.9"", ""django==5.2.12"", ""rjsmin==1.2.5"", ""kombu==5.6.2"", ""snowflake-connector-python==4.3.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pytest-split==0.11.0"", ""django-autocomplete-light==3.12.1"", ""dnspython==2.8.0"", ""drf-flex-fields==1.0.2"", ""isort==8.0.1"", ""jsonfield==3.2.0"", ""mysqlclient==2.2.8"", ""edx-api-doc-tools==3.0.0"", ""uritemplate==4.2.0"", ""referencing==0.37.0"", ""walrus==0.9.8"", ""zope-event==6.1"", ""pylint==4.0.5"", ""ruamel-yaml-clib==0.2.15"", ""django-webpack-loader==3.2.3"", ""mccabe==0.7.0"", ""django-sortedm2m==4.0.0"", ""django-guardian==3.0.3"", ""python-slugify==8.0.4"", ""iniconfig==2.3.0"", ""python-memcached==1.62"", ""sphinxcontrib-jsmath==1.0.1"", ""django-dry-rest-permissions==1.2.0"", ""social-auth-app-django==5.4.3"", ""gspread==6.2.1"", ""rich==14.3.3"", ""snowballstemmer==3.0.1"", ""jsonschema==4.26.0"", ""django-crum==0.7.9"", ""sniffio==1.3.1"", ""pytz==2026.1.post1"", ""xss-utils==1.0.0"", ""pyasn1==0.6.3"", ""bracex==2.6"", ""django-cors-headers==4.9.0"", ""certifi==2026.2.25"", ""httplib2==0.31.2"", ""pillow==9.5.0"", ""zope-interface==8.2"", ""edx-django-release-util==1.5.0"", ""pyasn1-modules==0.4.2"", ""tzlocal==5.3.1"", ""prompt-toolkit==3.0.52"", ""drf-jwt==1.19.2"", ""h11==0.16.0"", ""django-dynamic-filenames==1.4.1"", ""peewee==3.19.0"", ""accessible-pygments==0.0.5"", ""filelock==3.25.2"", ""charset-normalizer==3.4.7"", ""cachetools==7.0.5"", ""django-object-actions==5.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""django-countries==8.2.0"", ""pip==26.0.1"", ""requests==2.33.1"", ""psutil==7.2.2"", ""zeep==4.3.2"", ""pywatchman==3.0.0"", ""asn1crypto==1.5.1"", ""pylint-celery==0.3"", ""edx-event-bus-kafka==6.1.0"", ""pytest-django==4.12.0"", ""django-libsass==0.9"", ""pyproject-hooks==1.2.0"", ""face==26.0.0"", ""django-ses==4.7.2"", ""glom==22.1.0"", ""execnet==2.1.2"", ""freezegun==1.5.5"", ""inflection==0.5.1"", ""unicodecsv==0.14.1"", ""testfixtures==11.0.0"", ""pymemcache==4.0.0"", ""google-auth-httplib2==0.3.1"", ""click==8.3.2"", ""text-unidecode==1.3"", ""pylint-plugin-utils==0.9.0"", ""tox==4.52.0"", ""libsass==0.23.0"", ""tomli-w==1.2.0"", ""edx-ccx-keys==2.0.2"", ""tomlkit==0.14.0"", ""jsonschema-specifications==2025.9.1"", ""boltons==21.0.0"", ""django-elasticsearch-dsl-drf==0.22.5"", ""django-admin-sortable2==2.3.1"", ""django-solo==2.5.1"", ""stevedore==5.7.0"", ""packaging==26.0"", ""wheel==0.46.3"", ""django-appconf==1.2.0"", ""faker==40.13.0"", ""factory-boy==3.3.3"", ""django-config-models==3.0.0"", ""pycparser==3.0"", ""pyyaml==6.0.3"", ""sphinx-book-theme==1.1.3"", ""click-repl==0.3.0"", ""jmespath==1.1.0"", ""coverage[toml]==7.13.5"", ""django-contrib-comments==2.2.0"", ""docutils==0.19"", ""fastavro==1.12.1""]",37,"[""edx-auth-backends"", ""django-filter"", ""djangorestframework"", ""django-solo"", ""edx-django-release-util"", ""django-dynamic-filenames"", ""django-autocomplete-light"", ""django-waffle"", ""django-countries"", ""edx-drf-extensions"", ""code-annotations"", ""edx-rest-api-client"", ""xss-utils"", ""edx-i18n-tools"", ""django-multi-email-field"", ""algoliasearch-django"", ""django-extensions"", ""django-compressor"", ""edx-toggles"", ""factory-boy"", ""django-config-models"", ""pytest-django"", ""django-storages"", ""pylint-django"", ""django-object-actions"", ""django-cors-headers"", ""django-sortedm2m"", ""edx-django-sites-extensions"", ""edx-api-doc-tools"", ""social-auth-app-django"", ""django-contrib-comments"", ""django-webpack-loader"", ""edx-django-utils"", ""django-debug-toolbar"", ""django-celery-results"", ""django-taggit"", ""django-appconf""]",57,"[""edx-auth-backends"", ""django-elasticsearch-dsl"", ""django-filter"", ""djangorestframework"", ""django-solo"", ""edx-django-release-util"", ""django-parler"", ""django-dynamic-filenames"", ""django-autocomplete-light"", ""django-waffle"", ""django-crum"", ""django-dry-rest-permissions"", ""django-countries"", ""django-stdimage"", ""edx-drf-extensions"", ""django-fsm"", ""django-libsass"", ""djangorestframework-xml"", ""django-elasticsearch-dsl-drf"", ""code-annotations"", ""edx-rest-api-client"", ""xss-utils"", ""django-ses"", ""djangorestframework-csv"", ""drf-yasg"", ""edx-i18n-tools"", ""django-multi-email-field"", ""algoliasearch-django"", ""django-extensions"", ""django-taggit-autosuggest"", ""django-compressor"", ""edx-toggles"", ""factory-boy"", ""django-config-models"", ""drf-jwt"", ""pytest-django"", ""django-storages"", ""pylint-django"", ""django-guardian"", ""django-object-actions"", ""django-cors-headers"", ""django-sortedm2m"", ""edx-django-sites-extensions"", ""edx-api-doc-tools"", ""social-auth-app-django"", ""django-contrib-comments"", ""django-webpack-loader"", ""edx-django-utils"", ""django-simple-history"", ""django-nine"", ""django-debug-toolbar"", ""drf-extensions"", ""django-celery-results"", ""django-taggit"", ""django-model-utils"", ""django-appconf"", ""jsonfield""]",28,"[""edx-auth-backends"", ""django-filter"", ""django-solo"", ""edx-django-release-util"", ""django-dynamic-filenames"", ""django-autocomplete-light"", ""django-waffle"", ""django-countries"", ""edx-drf-extensions"", ""code-annotations"", ""edx-rest-api-client"", ""xss-utils"", ""edx-i18n-tools"", ""django-multi-email-field"", ""django-extensions"", ""django-compressor"", ""edx-toggles"", ""django-config-models"", ""django-cors-headers"", ""edx-django-sites-extensions"", ""edx-api-doc-tools"", ""social-auth-app-django"", ""django-webpack-loader"", ""edx-django-utils"", ""django-debug-toolbar"", ""django-celery-results"", ""django-taggit"", ""django-appconf""]",False,,True,False,True,False,False,False,True,True,True,False,False,True,True,True,False,False,True,True,False,True,True,245,"{""total_duration"": ""2053 minutes 16 seconds"", ""checks"": [{""name"": ""check migrations (ubuntu-22.04, 3.12)"", ""duration"": ""3 minutes 18 seconds""}, {""name"": ""upgrade_requirements (3.12)"", ""duration"": ""1 minutes 46 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2015-11-09 20:57:54,master,Service providing access to consolidated course and program metadata,44175,194,True,False,False,False,False,False,False,2026-06-01 01:17:37,GNU AGPLv3,26,True,1810,0,57087,9385,7915,4799823,1415,False,True,False,False,True,False,False,,openedx,20,"['https://github.com/openedx/course-discovery/blob/master/pytest=no-xdist.ini: 404', 'https://github.com/openedx/course-discovery/workflows/Python%20CI/badge.svg?branch=master: 404']",True,"['https://django-elasticsearch-dsl.readthedocs.io/en/latest/management.html', 'https://github.com/pytest-dev/pytest-xdist', 'https://docs.python.org/3/library/pdb.html', 'https://github.com/openedx/course-discovery/blob/master/pytest.ini', 'https://github.com/pytest-dev/pytest/issues/390', 'https://edx-discovery.readthedocs.io/en/latest/', 'https://github.com/openedx/course-discovery/tree/master/docs', 'https://github.com/openedx/course-discovery/blob/master/LICENSE', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://discuss.openedx.org', 'https://github.com/openedx/course-discovery/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://github.com/openedx/devstack', 'https://github.com/openedx/course-discovery/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/openedx/course-discovery/coverage.svg?branch=master', 'https://codecov.io/github/openedx/course-discovery?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/course-discovery.svg']",True,True,False,False,,,True,2026-04-08,2024-09-09,9,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/license-manager,,,,True,2026-06-01,True,True,False,False,173,0,[],0,,0,0,,,106,"[""zope-event==6.2"", ""jsonschema==4.26.0"", ""typing-extensions==4.15.0"", ""asgiref==3.11.1"", ""amqp==5.3.1"", ""requests-oauthlib==2.0.0"", ""django-filter==25.2"", ""djangorestframework==3.17.1"", ""djangorestframework-csv==3.0.2"", ""celery==5.6.3"", ""pymongo==4.17.0"", ""edx-celeryutils==2.0.0"", ""pyyaml==6.0.3"", ""greenlet==3.5.0"", ""edx-drf-extensions==10.6.0"", ""django-log-request-id==2.1.2"", ""django-crum==0.7.9"", ""gevent==26.4.0"", ""jsonfield==3.2.0"", ""ply==3.11"", ""click-didyoumean==0.3.1"", ""oauthlib==3.3.1"", ""webencodings==0.5.1"", ""tzlocal==5.3.1"", ""vine==5.1.0"", ""social-auth-app-django==5.9.0"", ""prompt-toolkit==3.0.52"", ""tzdata==2026.2"", ""django-durationwidget==1.0.5"", ""wcwidth==0.7.0"", ""billiard==4.2.4"", ""jsonschema-specifications==2025.9.1"", ""code-annotations==3.0.0"", ""pytz==2026.2"", ""python3-openid==3.2.0"", ""packaging==26.2"", ""attrs==26.1.0"", ""pynacl==1.6.2"", ""botocore==1.43.9"", ""pyjwt[crypto]==2.12.1"", ""uritemplate==4.2.0"", ""djangoql==0.19.1"", ""referencing==0.37.0"", ""mysqlclient==2.2.8"", ""kombu==5.6.2"", ""psutil==7.2.2"", ""simplejson==4.1.1"", ""charset-normalizer==3.4.7"", ""pycparser==3.0"", ""edx-rest-api-client==7.0.0"", ""cryptography==48.0.0"", ""pymemcache==4.0.0"", ""click-plugins==1.1.1.2"", ""certifi==2026.4.22"", ""edx-braze-client==0.2.5"", ""idna==3.15"", ""django-model-utils==5.0.0"", ""s3transfer==0.17.0"", ""rules==3.5"", ""rpds-py==0.30.0"", ""click-repl==0.3.0"", ""python-memcached==1.62"", ""django-celery-results==2.6.0"", ""inflection==0.5.1"", ""markupsafe==3.0.3"", ""click==8.4.0"", ""bleach[css]==6.3.0"", ""six==1.17.0"", ""edx-django-utils==8.0.1"", ""jmespath==1.1.0"", ""backoff==1.10.0"", ""requests==2.34.2"", ""django-cors-headers==4.9.0"", ""python-dateutil==2.9.0.post0"", ""django==5.2.14"", ""sqlparse==0.5.5"", ""text-unidecode==1.3"", ""semantic-version==2.10.0"", ""gunicorn==26.0.0"", ""edx-toggles==6.0.0"", ""django-simple-history==3.11.0"", ""drf-spectacular==0.29.0"", ""cffi==2.0.0"", ""edx-opaque-keys==4.0.0"", ""monotonic==1.6"", ""django-waffle==5.0.0"", ""redis==7.4.0"", ""analytics-python==1.4.post1"", ""zope-interface==8.4"", ""stevedore==5.7.0"", ""urllib3==2.7.0"", ""tinycss2==1.4.0"", ""django-autocomplete-light==4.0.0"", ""defusedxml==0.7.1"", ""django-ses==4.7.2"", ""drf-nested-routers==0.95.0"", ""django-extensions==4.1"", ""boto3==1.43.9"", ""dnspython==2.8.0"", ""edx-auth-backends==5.0.0"", ""social-auth-core==4.9.1"", ""drf-jwt==1.19.2"", ""jinja2==3.1.6"", ""zipp==3.23.1"", ""edx-rbac==3.0.0"", ""python-slugify==8.0.4""]",173,"[""zope-event==6.2"", ""jsonschema==4.26.0"", ""sphinxcontrib-qthelp==2.0.0"", ""typing-extensions==4.15.0"", ""snowballstemmer==3.0.1"", ""wheel==0.47.0"", ""nh3==0.3.5"", ""typeguard==4.5.2"", ""asgiref==3.11.1"", ""pathlib2==2.3.7.post1"", ""django-dynamic-fixture==4.0.1"", ""sphinxcontrib-applehelp==2.0.0"", ""amqp==5.3.1"", ""requests-oauthlib==2.0.0"", ""lxml[html-clean]==6.1.0"", ""django-filter==25.2"", ""djangorestframework==3.17.1"", ""djangorestframework-csv==3.0.2"", ""celery==5.6.3"", ""pymongo==4.17.0"", ""edx-celeryutils==2.0.0"", ""babel==2.18.0"", ""sphinx==9.1.0"", ""accessible-pygments==0.0.5"", ""pyyaml==6.0.3"", ""greenlet==3.5.0"", ""edx-drf-extensions==10.6.0"", ""django-log-request-id==2.1.2"", ""sphinxcontrib-jsmath==1.0.1"", ""django-crum==0.7.9"", ""gevent==26.4.0"", ""factory-boy==3.3.3"", ""jsonfield==3.2.0"", ""ply==3.11"", ""click-didyoumean==0.3.1"", ""sphinxcontrib-devhelp==2.0.0"", ""oauthlib==3.3.1"", ""webencodings==0.5.1"", ""tzlocal==5.3.1"", ""restructuredtext-lint==2.0.2"", ""vine==5.1.0"", ""social-auth-app-django==5.9.0"", ""prompt-toolkit==3.0.52"", ""tzdata==2026.2"", ""inflect==7.5.0"", ""django-durationwidget==1.0.5"", ""pluggy==1.6.0"", ""wcwidth==0.7.0"", ""billiard==4.2.4"", ""beautifulsoup4==4.14.3"", ""pygments==2.20.0"", ""jsonschema-specifications==2025.9.1"", ""soupsieve==2.8.3"", ""code-annotations==3.0.0"", ""pytz==2026.2"", ""python3-openid==3.2.0"", ""packaging==26.2"", ""attrs==26.1.0"", ""pytest==9.0.3"", ""click-log==0.4.0"", ""pynacl==1.6.2"", ""botocore==1.43.9"", ""tomlkit==0.15.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pyjwt[crypto]==2.12.1"", ""uritemplate==4.2.0"", ""djangoql==0.19.1"", ""referencing==0.37.0"", ""mysqlclient==2.2.8"", ""kombu==5.6.2"", ""imagesize==2.0.0"", ""pip-tools==7.5.3"", ""build==1.5.0"", ""psutil==7.2.2"", ""mccabe==0.7.0"", ""simplejson==4.1.1"", ""charset-normalizer==3.4.7"", ""pycparser==3.0"", ""pycodestyle==2.14.0"", ""edx-rest-api-client==7.0.0"", ""cryptography==48.0.0"", ""readme-renderer==44.0"", ""pip==26.1.1"", ""pymemcache==4.0.0"", ""click-plugins==1.1.1.2"", ""certifi==2026.4.22"", ""edx-braze-client==0.2.5"", ""docutils==0.21.2"", ""idna==3.15"", ""edx-lint==6.1.0"", ""pytest-django==4.12.0"", ""isort==8.0.1"", ""django-model-utils==5.0.0"", ""astroid==4.0.4"", ""jinja2-pluralize==0.3.0"", ""s3transfer==0.17.0"", ""rules==3.5"", ""rpds-py==0.30.0"", ""pylint==4.0.5"", ""freezegun==1.5.5"", ""pyproject-hooks==1.2.0"", ""alabaster==1.0.0"", ""click-repl==0.3.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""python-memcached==1.62"", ""more-itertools==11.0.2"", ""lxml-html-clean==0.4.4"", ""path==16.14.0"", ""inflection==0.5.1"", ""django-celery-results==2.6.0"", ""markupsafe==3.0.3"", ""click==8.4.0"", ""bleach[css]==6.3.0"", ""six==1.17.0"", ""edx-django-utils==8.0.1"", ""pylint-plugin-utils==0.9.0"", ""jmespath==1.1.0"", ""backoff==1.10.0"", ""requests==2.34.2"", ""pylint-django==2.7.0"", ""django-cors-headers==4.9.0"", ""edx-i18n-tools==2.0.0"", ""polib==1.2.0"", ""python-dateutil==2.9.0.post0"", ""django-debug-toolbar==6.3.0"", ""django==5.2.14"", ""diff-cover==4.0.0"", ""ddt==1.7.2"", ""sqlparse==0.5.5"", ""text-unidecode==1.3"", ""doc8==2.0.0"", ""semantic-version==2.10.0"", ""gunicorn==26.0.0"", ""pydocstyle==6.3.0"", ""edx-toggles==6.0.0"", ""coverage[toml]==7.14.0"", ""django-simple-history==3.11.0"", ""drf-spectacular==0.29.0"", ""cffi==2.0.0"", ""edx-opaque-keys==4.0.0"", ""monotonic==1.6"", ""django-waffle==5.0.0"", ""redis==7.4.0"", ""analytics-python==1.4.post1"", ""zope-interface==8.4"", ""stevedore==5.7.0"", ""urllib3==2.7.0"", ""roman-numerals==4.1.0"", ""pywatchman==3.0.0"", ""sphinx-book-theme==1.2.0"", ""tinycss2==1.4.0"", ""pytest-cov==7.1.0"", ""django-autocomplete-light==4.0.0"", ""defusedxml==0.7.1"", ""iniconfig==2.3.0"", ""platformdirs==4.9.6"", ""django-ses==4.7.2"", ""setuptools==82.0.1"", ""drf-nested-routers==0.95.0"", ""faker==40.18.0"", ""dill==0.4.1"", ""pydata-sphinx-theme==0.16.1"", ""django-extensions==4.1"", ""boto3==1.43.9"", ""pylint-celery==0.3"", ""dnspython==2.8.0"", ""edx-auth-backends==5.0.0"", ""social-auth-core==4.9.1"", ""drf-jwt==1.19.2"", ""jinja2==3.1.6"", ""zipp==3.23.1"", ""edx-rbac==3.0.0"", ""python-slugify==8.0.4""]",22,"[""edx-auth-backends"", ""edx-rbac"", ""edx-i18n-tools"", ""django-filter"", ""code-annotations"", ""pylint-django"", ""factory-boy"", ""edx-opaque-keys"", ""edx-rest-api-client"", ""django-celery-results"", ""edx-toggles"", ""django-extensions"", ""edx-drf-extensions"", ""pytest-django"", ""django-waffle"", ""django-cors-headers"", ""edx-celeryutils"", ""djangorestframework"", ""social-auth-app-django"", ""edx-django-utils"", ""django-debug-toolbar"", ""django-autocomplete-light""]",32,"[""edx-auth-backends"", ""edx-rbac"", ""jsonfield"", ""edx-i18n-tools"", ""django-filter"", ""djangorestframework-csv"", ""code-annotations"", ""django-ses"", ""pylint-django"", ""factory-boy"", ""edx-opaque-keys"", ""edx-rest-api-client"", ""django-celery-results"", ""edx-toggles"", ""drf-nested-routers"", ""django-simple-history"", ""django-extensions"", ""drf-jwt"", ""edx-drf-extensions"", ""pytest-django"", ""django-model-utils"", ""django-crum"", ""django-waffle"", ""django-cors-headers"", ""edx-celeryutils"", ""djangorestframework"", ""social-auth-app-django"", ""edx-django-utils"", ""rules"", ""django-dynamic-fixture"", ""django-debug-toolbar"", ""django-autocomplete-light""]",18,"[""edx-auth-backends"", ""edx-rbac"", ""django-waffle"", ""edx-i18n-tools"", ""django-cors-headers"", ""edx-celeryutils"", ""django-extensions"", ""django-filter"", ""code-annotations"", ""django-autocomplete-light"", ""social-auth-app-django"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-django-utils"", ""edx-rest-api-client"", ""django-debug-toolbar"", ""django-celery-results"", ""edx-toggles""]",True,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,False,False,True,True,True,True,62,"{""total_duration"": ""2148 minutes 34 seconds"", ""checks"": [{""name"": ""tests (3.12, 5.2)"", ""duration"": ""2 minutes 1 seconds""}, {""name"": ""tests (3.12, pinned)"", ""duration"": ""1 minutes 59 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 37 seconds""}, {""name"": ""quality (3.12)"", ""duration"": ""1 minutes 10 seconds""}, {""name"": ""check migration for MySql8 (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2020-04-07 15:41:12,master,Django backend for managing licenses and subscriptions,2715,41,True,False,False,False,False,False,False,2026-06-01 03:15:25,GNU AGPLv3,4,True,0,0,537,525,8721,1190616,2501,True,True,False,False,True,False,False,,openedx,6,"['http://license-manager.readthedocs.io/en/latest/: 404', 'https://license-manager.readthedocs.io/en/latest/: 404', 'https://github.com/openedx/license-manager/blob/master/LICENSE: 404']",False,"['http://codecov.io/github/edx/license-manager/coverage.svg?branch=master', 'http://codecov.io/github/edx/license-manager?branch=master', 'https://github.com/openedx/devstack', 'https://github.com/openedx/license-manager/blob/master/docs/getting_started.rst', 'https://readthedocs.org/projects/license-manager/badge/?version=latest', 'https://github.com/openedx/license-manager/tree/master/docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://openedx.slack.com/messages/general/', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/ccx-keys,,,,True,2026-06-01,True,True,False,False,49,0,[],0,,0,0,,,6,"[""dnspython==2.8.0"", ""edx-opaque-keys==3.0.0"", ""stevedore==5.5.0"", ""six==1.17.0"", ""pymongo==4.15.3"", ""typing-extensions==4.15.0""]",49,"[""astroid==3.3.11"", ""markupsafe==3.0.3"", ""click==8.3.0"", ""colorama==0.4.6"", ""platformdirs==4.5.0"", ""pygments==2.19.2"", ""dnspython==2.8.0"", ""packaging==25.0"", ""pip==25.2"", ""tomlkit==0.13.3"", ""edx-lint==5.6.0"", ""coverage==7.11.0"", ""isort==6.1.0"", ""jinja2==3.1.6"", ""pylint-plugin-utils==0.9.0"", ""python-slugify==8.0.4"", ""pytest==8.4.2"", ""cachetools==6.2.1"", ""distlib==0.4.0"", ""chardet==5.2.0"", ""text-unidecode==1.3"", ""stevedore==5.5.0"", ""dill==0.4.0"", ""pylint==3.3.9"", ""lazy-object-proxy==1.12.0"", ""pluggy==1.6.0"", ""pylint-django==2.6.1"", ""pyyaml==6.0.3"", ""filelock==3.20.0"", ""tox==4.31.0"", ""mccabe==0.7.0"", ""wheel==0.45.1"", ""click-log==0.4.0"", ""iniconfig==2.3.0"", ""pip-tools==7.5.1"", ""code-annotations==2.3.0"", ""pyproject-hooks==1.2.0"", ""six==1.17.0"", ""pymongo==4.15.3"", ""pylint-celery==0.3"", ""pyproject-api==1.10.0"", ""typing-extensions==4.15.0"", ""edx-opaque-keys==3.0.0"", ""pycodestyle==2.14.0"", ""virtualenv==20.35.3"", ""build==1.3.0"", ""ddt==1.7.2"", ""mock==5.2.0"", ""setuptools==80.9.0""]",3,"[""pylint-django"", ""code-annotations"", ""edx-opaque-keys""]",3,"[""pylint-django"", ""code-annotations"", ""edx-opaque-keys""]",2,"[""code-annotations"", ""edx-opaque-keys""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,False,True,13,"{""total_duration"": ""1 minutes 13 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 9 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, unittest)"", ""duration"": ""0 minutes 8 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2015-07-17 21:04:14,master,Opaque key implementation for the Custom Courses for EdX feature.,208,8,True,False,False,False,True,False,False,2026-05-30 13:49:33,GNU AGPLv3,8,True,0,0,0,0,1465,28669,0,True,True,False,False,True,False,False,,openedx,2,['https://github.com/openedx/ccx-keys/actions/workflows/ci.yaml/badge.svg: 404'],False,"['http://code.edx.org/', 'https://github.com/edx/jenkins-job-dsl/actions/workflows/ci.yml', 'https://coveralls.io/repos/edx/ccx-keys/badge.svg', 'https://coveralls.io/r/edx/ccx-keys', 'https://github.com/openedx/opaque-keys', 'http://opaque-keys.readthedocs.org/en/latest/', 'https://github.com/openedx/edx-platform/wiki/Opaque-Keys']",True,True,False,False,,,False,,,,False,False,False,True,,False,edx-ccx-keys,"['3', '3.12']",https://github.com/openedx/ccx-keys,False,True,True,False,False,False,False,False,False,[],[],,[] -openedx/xss-utils,,,,True,2026-06-01,True,True,False,False,84,0,[],0,,0,0,,,3,"[""django==5.2.12"", ""asgiref==3.11.1"", ""sqlparse==0.5.5""]",84,"[""pylint-celery==0.3"", ""beautifulsoup4==4.14.3"", ""pytest-cov==7.0.0"", ""pydata-sphinx-theme==0.15.4"", ""tox==4.49.0"", ""sphinx-book-theme==1.1.4"", ""asgiref==3.11.1"", ""six==1.17.0"", ""diff-cover==10.2.0"", ""pyproject-hooks==1.2.0"", ""pip-tools==7.5.3"", ""pylint-django==2.7.0"", ""snowballstemmer==3.0.1"", ""roman-numerals==4.1.0"", ""coverage[toml]==7.13.4"", ""idna==3.11"", ""certifi==2026.2.25"", ""python-slugify==8.0.4"", ""readme-renderer==44.0"", ""edx-lint==5.6.0"", ""build==1.4.0"", ""tomli-w==1.2.0"", ""packaging==26.0"", ""dill==0.4.1"", ""babel==2.18.0"", ""sqlparse==0.5.5"", ""cachetools==7.0.3"", ""edx-i18n-tools==1.9.0"", ""pycodestyle==2.14.0"", ""typing-extensions==4.15.0"", ""path==16.16.0"", ""polib==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""requests==2.32.5"", ""markupsafe==3.0.3"", ""charset-normalizer==3.4.5"", ""stevedore==5.7.0"", ""pylint==4.0.5"", ""lxml[html-clean]==6.0.2"", ""accessible-pygments==0.0.5"", ""click-log==0.4.0"", ""doc8==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""astroid==4.0.4"", ""pip==26.0.1"", ""platformdirs==4.9.4"", ""pydocstyle==6.3.0"", ""isort==8.0.1"", ""sphinxcontrib-devhelp==2.0.0"", ""tomlkit==0.14.0"", ""django==5.2.12"", ""jinja2==3.1.6"", ""click==8.3.1"", ""imagesize==2.0.0"", ""docutils==0.21.2"", ""pyproject-api==1.10.0"", ""setuptools==82.0.0"", ""soupsieve==2.8.3"", ""pluggy==1.6.0"", ""filelock==3.25.0"", ""wheel==0.46.3"", ""virtualenv==21.1.0"", ""pytest==9.0.2"", ""distlib==0.4.0"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""alabaster==1.0.0"", ""lxml-html-clean==0.4.4"", ""sphinxcontrib-serializinghtml==2.0.0"", ""nh3==0.3.3"", ""iniconfig==2.3.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""chardet==7.0.1"", ""restructuredtext-lint==2.0.2"", ""pygments==2.19.2"", ""sphinx==9.1.0"", ""colorama==0.4.6"", ""pytest-django==4.12.0"", ""python-discovery==1.1.1"", ""pyyaml==6.0.3"", ""code-annotations==2.3.2"", ""urllib3==2.6.3"", ""pylint-plugin-utils==0.9.0""]",4,"[""pytest-django"", ""pylint-django"", ""code-annotations"", ""edx-i18n-tools""]",4,"[""pytest-django"", ""pylint-django"", ""code-annotations"", ""edx-i18n-tools""]",2,"[""code-annotations"", ""edx-i18n-tools""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,27,"{""total_duration"": ""37512 minutes 55 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}]}",Other,2018-08-13 14:00:47,master, This repo contains utility functions for Django and Mako templates to remove potential XSS attacks in templates.,338,10,True,False,False,False,False,False,False,2026-03-30 20:41:16,GNU AGPLv3,3,True,0,0,0,0,3219,11775,0,True,True,False,False,True,False,False,,openedx,1,"['https://xss-utils.readthedocs.org: 404', 'http://xss-utils.readthedocs.io/en/latest/: 404', 'https://github.com/openedx/xss-utils/blob/master/LICENSE.txt: 404']",True,"['https://docs.openedx.org/en/latest/developers/references/developer_guide/preventing_xss/index.html', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/xss-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/xss-utils/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/xss-utils.svg', 'https://pypi.python.org/pypi/xss-utils/', 'https://github.com/openedx/xss-utils/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/xss-utils/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/xss-utils/coverage.svg?branch=master', 'http://codecov.io/github/edx/xss-utils?branch=master', 'https://readthedocs.org/projects/xss-utils/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/xss-utils.svg', 'https://img.shields.io/github/license/edx/xss-utils.svg']",True,True,False,False,,,False,,,,False,True,False,True,,False,xss-utils,"['3', '3.12']",https://github.com/openedx/xss-utils,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-aspects,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""39 minutes 11 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2026-05-28 13:40:16,main,,7,1,True,False,False,False,False,False,False,2026-05-28 15:06:37,,1,True,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/acid-block,,,,True,2026-06-01,True,True,False,False,45,0,[],0,,0,0,,,14,"[""mako==1.3.10"", ""lxml==6.0.2"", ""webob==1.8.9"", ""markupsafe==3.0.3"", ""pytz==2025.2"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""simplejson==3.20.2"", ""appdirs==1.4.4"", ""xblock==5.3.0"", ""lazy==1.6"", ""web-fragments==3.1.0"", ""fs==2.4.16"", ""python-dateutil==2.9.0.post0""]",45,"[""platformdirs==4.5.1"", ""wheel==0.45.1"", ""click==8.3.1"", ""webob==1.8.9"", ""six==1.17.0"", ""simplejson==3.20.2"", ""xblock==5.3.0"", ""mako==1.3.10"", ""lxml==6.0.2"", ""pyproject-hooks==1.2.0"", ""isort==7.0.0"", ""coverage[toml]==7.13.1"", ""build==1.4.0"", ""click-log==0.4.0"", ""stevedore==5.6.0"", ""pyyaml==6.0.3"", ""pylint-celery==0.3"", ""setuptools==80.9.0"", ""appdirs==1.4.4"", ""astroid==4.0.3"", ""pluggy==1.6.0"", ""python-slugify==8.0.4"", ""code-annotations==2.3.0"", ""dill==0.4.0"", ""pylint-django==2.7.0"", ""iniconfig==2.3.0"", ""pylint==4.0.4"", ""pygments==2.19.2"", ""packaging==25.0"", ""lazy==1.6"", ""fs==2.4.16"", ""jinja2==3.1.6"", ""pytz==2025.2"", ""text-unidecode==1.3"", ""pip-tools==7.5.2"", ""markupsafe==3.0.3"", ""mccabe==0.7.0"", ""edx-lint==5.6.0"", ""pylint-plugin-utils==0.9.0"", ""pytest-cov==7.0.0"", ""tomlkit==0.14.0"", ""pytest==9.0.2"", ""web-fragments==3.1.0"", ""pip==25.3"", ""python-dateutil==2.9.0.post0""]",4,"[""pylint-django"", ""xblock"", ""code-annotations"", ""web-fragments""]",4,"[""pylint-django"", ""xblock"", ""code-annotations"", ""web-fragments""]",3,"[""xblock"", ""code-annotations"", ""web-fragments""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,False,False,True,True,True,9,"{""total_duration"": """", ""checks"": []}",Other,2014-02-13 15:54:08,master,An XBlock for testing XBlock Runtimes,176,23,True,False,False,False,False,False,False,2026-05-30 13:45:54,GNU AGPLv3,8,False,671,0,679,8037,1846,19477,0,False,True,False,True,True,False,True,,openedx,2,[],False,[],True,True,False,False,,,False,,,,False,False,False,True,,False,acid-xblock,"['3', '3.11', '3.12']",https://github.com/openedx/acid-block,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/DoneXBlock,,,,True,2026-06-01,True,True,False,False,120,0,[],0,,0,0,,,16,"[""webob==1.8.9"", ""xblock==6.1.0"", ""fs==2.4.16"", ""web-fragments==4.0.0"", ""sqlparse==0.5.5"", ""markupsafe==3.0.3"", ""pytz==2026.2"", ""django==5.2.14"", ""appdirs==1.4.4"", ""simplejson==4.1.1"", ""lxml==6.1.1"", ""mako==1.3.12"", ""asgiref==3.11.1"", ""six==1.17.0"", ""pyyaml==6.0.3"", ""python-dateutil==2.9.0.post0""]",120,"[""markdown-it-py==4.2.0"", ""path==16.16.0"", ""mdurl==0.1.2"", ""pytz==2026.2"", ""sphinxcontrib-jsmath==1.0.1"", ""requests-toolbelt==1.0.0"", ""pluggy==1.6.0"", ""cookiecutter==2.7.1"", ""xblock-sdk==0.14.0"", ""pyproject-api==1.10.0"", ""nh3==0.3.5"", ""python-slugify==8.0.4"", ""urllib3==2.7.0"", ""s3transfer==0.17.0"", ""arrow==1.4.0"", ""fs-s3fs==1.1.1"", ""keyring==25.7.0"", ""python-dateutil==2.9.0.post0"", ""filelock==3.29.0"", ""charset-normalizer==3.4.7"", ""soupsieve==2.8.4"", ""python-discovery==1.3.1"", ""tomlkit==0.15.0"", ""twine==6.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""typer==0.25.1"", ""pytest==9.0.3"", ""click==8.4.1"", ""setuptools==82.0.1"", ""shellingham==1.5.4"", ""sphinx==9.1.0"", ""iniconfig==2.3.0"", ""docutils==0.22.4"", ""packaging==26.2"", ""jaraco-context==6.1.2"", ""stevedore==5.8.0"", ""pip-tools==7.5.3"", ""appdirs==1.4.4"", ""polib==1.2.0"", ""text-unidecode==1.3"", ""lxml==6.1.1"", ""pylint-celery==0.3"", ""roman-numerals==4.1.0"", ""pydata-sphinx-theme==0.16.1"", ""alabaster==1.0.0"", ""sqlparse==0.5.5"", ""code-annotations==3.0.0"", ""tzdata==2026.2"", ""lxml-html-clean==0.4.5"", ""mccabe==0.7.0"", ""boto3==1.43.14"", ""mako==1.3.12"", ""asgiref==3.11.1"", ""pylint-django==2.7.0"", ""pyyaml==6.0.3"", ""pygments==2.20.0"", ""dill==0.4.1"", ""fs==2.4.16"", ""jmespath==1.1.0"", ""markupsafe==3.0.3"", ""astroid==4.0.4"", ""imagesize==2.0.0"", ""pip==26.1.1"", ""snowballstemmer==3.1.0"", ""jaraco-classes==3.4.0"", ""webob==1.8.9"", ""xblock==6.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""certifi==2026.5.20"", ""jaraco-functools==4.5.0"", ""sphinx-book-theme==1.2.0"", ""build==1.5.0"", ""distlib==0.4.0"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""beautifulsoup4==4.14.3"", ""idna==3.16"", ""isort==8.0.1"", ""tox==4.54.0"", ""pylint-plugin-utils==0.9.0"", ""edx-i18n-tools==2.0.0"", ""jeepney==0.9.0"", ""rich==15.0.0"", ""tomli-w==1.2.0"", ""click-log==0.4.0"", ""coverage[toml]==7.14.0"", ""lxml[html-clean]==6.1.1"", ""pypng==0.20220715.0"", ""requests==2.34.2"", ""sphinxcontrib-devhelp==2.0.0"", ""cryptography==48.0.0"", ""platformdirs==4.9.6"", ""readme-renderer==44.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-lint==6.1.0"", ""more-itertools==11.1.0"", ""secretstorage==3.5.0"", ""pycparser==3.0"", ""six==1.17.0"", ""simplejson==4.1.1"", ""wheel==0.47.0"", ""pylint==4.0.5"", ""binaryornot==0.6.0"", ""web-fragments==4.0.0"", ""cachetools==7.1.4"", ""ddt==1.7.2"", ""rfc3986==2.0.0"", ""pycodestyle==2.14.0"", ""annotated-doc==0.0.4"", ""botocore==1.43.14"", ""accessible-pygments==0.0.5"", ""colorama==0.4.6"", ""virtualenv==21.3.3"", ""babel==2.18.0"", ""pyproject-hooks==1.2.0"", ""id==1.6.1"", ""coveralls==4.1.0"", ""django==5.2.14"", ""sphinxcontrib-htmlhelp==2.1.0"", ""jinja2==3.1.6""]",6,"[""code-annotations"", ""pylint-django"", ""xblock-sdk"", ""xblock"", ""edx-i18n-tools"", ""web-fragments""]",6,"[""code-annotations"", ""pylint-django"", ""xblock-sdk"", ""xblock"", ""edx-i18n-tools"", ""web-fragments""]",5,"[""code-annotations"", ""xblock-sdk"", ""xblock"", ""edx-i18n-tools"", ""web-fragments""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,False,True,41,"{""total_duration"": ""6059 minutes 49 seconds"", ""checks"": [{""name"": ""Analyze (javascript)"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Analyze (javascript)"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""Tests (3.12, django42)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""Tests (3.12, django52)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (3.12, quality)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}]}",Other,2017-07-07 16:01:04,master,An XBlock for students to mark they've finished something. ,636,25,True,False,False,False,False,False,False,2026-06-01 00:53:36,GNU AGPLv3,5,True,2185,290,1526,1496,3794,11612,367,True,True,False,False,True,False,False,,openedx,0,"['https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/DoneXBlock: 404']",True,"['https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/DoneXBlock/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/DoneXBlock/actions/workflows/ci.yml', 'https://github.com/openedx/DoneXBlock/actions/workflows/pypi-release.yml/badge.svg', 'https://github.com/openedx/DoneXBlock/actions/workflows/pypi-release.yml', 'https://img.shields.io/badge/status-maintained-31c653', 'https://openedx.org/r/xblock', 'https://docs.tutor.edly.io/configuration.html', 'https://discuss.openedx.org', 'https://github.com/openedx/DoneXBlock/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,done-xblock,"['3', '3.12']",https://github.com/openedx/DoneXBlock,True,True,True,False,False,False,False,False,False,[],[],['gettext'],[] -openedx/edx-val,,,,True,2026-06-01,False,False,False,False,125,0,[],0,,0,0,,,120,"[""isort==8.0.1"", ""jaraco-classes==3.4.0"", ""shellingham==1.5.4"", ""pylint-django==2.7.0"", ""pytest-django==4.12.0"", ""psutil==7.2.2"", ""python-dateutil==2.9.0.post0"", ""rich==14.3.3"", ""click-log==0.4.0"", ""responses==0.26.0"", ""chardet==7.1.0"", ""edx-drf-extensions==10.6.0"", ""typing-extensions==4.15.0"", ""pyyaml==6.0.3"", ""anyio==4.12.1"", ""markdown-it-py==4.0.0"", ""jmespath==1.1.0"", ""tox==4.49.1"", ""cryptography==46.0.0"", ""distlib==0.4.0"", ""annotated-doc==0.0.4"", ""pluggy==1.6.0"", ""mccabe==0.7.0"", ""python-discovery==1.1.3"", ""keyring==25.7.0"", ""django-storages==1.14.6"", ""edx-lint==5.6.0"", ""propcache==0.4.1"", ""yarl==1.23.0"", ""cachetools==7.0.5"", ""pylint-celery==0.3"", ""annotated-types==0.7.0"", ""starlette==0.52.1"", ""uvicorn==0.41.0"", ""packaging==26.0"", ""pycodestyle==2.14.0"", ""semantic-version==2.10.0"", ""mdurl==0.1.2"", ""platformdirs==4.9.4"", ""pycparser==3.0"", ""pytest-cov==7.0.0"", ""rfc3986==2.0.0"", ""astroid==4.0.4"", ""filelock==3.25.2"", ""id==1.6.1"", ""certifi==2026.2.25"", ""idna==3.11"", ""secretstorage==3.5.0"", ""pymongo==4.16.0"", ""dnspython==2.8.0"", ""cffi==1.17.1"", ""snowballstemmer==3.0.1"", ""urllib3==2.6.3"", ""docutils==0.22.4"", ""stevedore==5.7.0"", ""django-waffle==5.0.0"", ""djangorestframework==3.16.1"", ""iniconfig==2.3.0"", ""code-annotations==2.3.2"", ""botocore==1.42.66"", ""pydantic==2.12.5"", ""charset-normalizer==3.4.5"", ""multidict==6.7.1"", ""boto3==1.42.66"", ""virtualenv==21.2.0"", ""django-crum==0.7.9"", ""edx-opaque-keys==3.1.0"", ""pydocstyle==6.3.0"", ""jeepney==0.9.0"", ""fastapi==0.135.1"", ""more-itertools==10.8.0"", ""s3transfer==0.16.0"", ""markupsafe==3.0.3"", ""pyjwt[crypto]==2.11.0"", ""asgiref==3.11.1"", ""edx-django-release-util==1.5.0"", ""fs==2.4.16"", ""pact-python==2.3.3"", ""pylint-plugin-utils==0.9.0"", ""tomlkit==0.14.0"", ""setuptools==81.0.0"", ""pysrt==1.1.2"", ""typer==0.24.1"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""diff-cover==10.2.0"", ""jinja2==3.1.6"", ""coveralls==4.1.0"", ""dill==0.4.1"", ""click==8.3.1"", ""pygments==2.19.2"", ""twine==6.2.0"", ""pylint==4.0.5"", ""pyproject-api==1.10.0"", ""jaraco-functools==4.4.0"", ""appdirs==1.4.4"", ""typing-inspection==0.4.2"", ""edx-toggles==5.4.1"", ""edx-django-utils==8.0.1"", ""requests-toolbelt==1.0.0"", ""tomli-w==1.2.0"", ""nh3==0.3.3"", ""pillow==12.1.1"", ""pynacl==1.6.0"", ""pytest==9.0.2"", ""coverage[toml]==7.13.4"", ""pydantic-core==2.41.5"", ""h11==0.16.0"", ""mock==5.2.0"", ""django-model-utils==5.0.0"", ""requests==2.32.5"", ""lxml==6.0.2"", ""drf-jwt==1.19.2"", ""ddt==1.7.2"", ""readme-renderer==44.0"", ""six==1.17.0"", ""django==5.2.12"", ""colorama==0.4.6"", ""sqlparse==0.5.5"", ""jaraco-context==6.1.1""]",125,"[""isort==8.0.1"", ""jaraco-classes==3.4.0"", ""shellingham==1.5.4"", ""pylint-django==2.7.0"", ""pytest-django==4.12.0"", ""psutil==7.2.2"", ""python-dateutil==2.9.0.post0"", ""rich==14.3.3"", ""click-log==0.4.0"", ""responses==0.26.0"", ""chardet==7.1.0"", ""edx-drf-extensions==10.6.0"", ""typing-extensions==4.15.0"", ""pyyaml==6.0.3"", ""anyio==4.12.1"", ""markdown-it-py==4.0.0"", ""jmespath==1.1.0"", ""tox==4.49.1"", ""cryptography==46.0.0"", ""distlib==0.4.0"", ""annotated-doc==0.0.4"", ""pluggy==1.6.0"", ""mccabe==0.7.0"", ""python-discovery==1.1.3"", ""keyring==25.7.0"", ""django-storages==1.14.6"", ""edx-lint==5.6.0"", ""propcache==0.4.1"", ""yarl==1.23.0"", ""cachetools==7.0.5"", ""pylint-celery==0.3"", ""annotated-types==0.7.0"", ""starlette==0.52.1"", ""uvicorn==0.41.0"", ""build==1.4.0"", ""packaging==26.0"", ""pycodestyle==2.14.0"", ""semantic-version==2.10.0"", ""mdurl==0.1.2"", ""platformdirs==4.9.4"", ""pycparser==3.0"", ""pytest-cov==7.0.0"", ""rfc3986==2.0.0"", ""astroid==4.0.4"", ""filelock==3.25.2"", ""id==1.6.1"", ""certifi==2026.2.25"", ""idna==3.11"", ""secretstorage==3.5.0"", ""pymongo==4.16.0"", ""dnspython==2.8.0"", ""cffi==1.17.1"", ""snowballstemmer==3.0.1"", ""pip==26.0.1"", ""urllib3==2.6.3"", ""docutils==0.22.4"", ""stevedore==5.7.0"", ""django-waffle==5.0.0"", ""djangorestframework==3.16.1"", ""iniconfig==2.3.0"", ""code-annotations==2.3.2"", ""botocore==1.42.66"", ""pydantic==2.12.5"", ""charset-normalizer==3.4.5"", ""multidict==6.7.1"", ""boto3==1.42.66"", ""virtualenv==21.2.0"", ""django-crum==0.7.9"", ""edx-opaque-keys==3.1.0"", ""pydocstyle==6.3.0"", ""jeepney==0.9.0"", ""fastapi==0.135.1"", ""more-itertools==10.8.0"", ""s3transfer==0.16.0"", ""markupsafe==3.0.3"", ""pyjwt[crypto]==2.11.0"", ""asgiref==3.11.1"", ""edx-django-release-util==1.5.0"", ""fs==2.4.16"", ""pact-python==2.3.3"", ""pylint-plugin-utils==0.9.0"", ""tomlkit==0.14.0"", ""setuptools==81.0.0"", ""pysrt==1.1.2"", ""typer==0.24.1"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""diff-cover==10.2.0"", ""jinja2==3.1.6"", ""coveralls==4.1.0"", ""dill==0.4.1"", ""click==8.3.1"", ""pygments==2.19.2"", ""twine==6.2.0"", ""pylint==4.0.5"", ""pyproject-api==1.10.0"", ""wheel==0.46.3"", ""jaraco-functools==4.4.0"", ""appdirs==1.4.4"", ""typing-inspection==0.4.2"", ""edx-toggles==5.4.1"", ""edx-django-utils==8.0.1"", ""requests-toolbelt==1.0.0"", ""tomli-w==1.2.0"", ""nh3==0.3.3"", ""pillow==12.1.1"", ""pyproject-hooks==1.2.0"", ""pynacl==1.6.0"", ""pytest==9.0.2"", ""coverage[toml]==7.13.4"", ""pydantic-core==2.41.5"", ""h11==0.16.0"", ""mock==5.2.0"", ""django-model-utils==5.0.0"", ""requests==2.32.5"", ""lxml==6.0.2"", ""pip-tools==7.5.3"", ""drf-jwt==1.19.2"", ""ddt==1.7.2"", ""readme-renderer==44.0"", ""six==1.17.0"", ""django==5.2.12"", ""colorama==0.4.6"", ""sqlparse==0.5.5"", ""jaraco-context==6.1.1""]",11,"[""djangorestframework"", ""edx-toggles"", ""edx-django-utils"", ""edx-opaque-keys"", ""edx-django-release-util"", ""edx-drf-extensions"", ""django-waffle"", ""code-annotations"", ""pylint-django"", ""pytest-django"", ""django-storages""]",14,"[""djangorestframework"", ""edx-toggles"", ""edx-django-utils"", ""edx-opaque-keys"", ""edx-django-release-util"", ""edx-drf-extensions"", ""django-waffle"", ""django-model-utils"", ""code-annotations"", ""drf-jwt"", ""pylint-django"", ""django-crum"", ""pytest-django"", ""django-storages""]",7,"[""edx-toggles"", ""edx-django-utils"", ""edx-opaque-keys"", ""edx-django-release-util"", ""edx-drf-extensions"", ""django-waffle"", ""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,False,True,False,True,True,True,True,True,False,True,True,True,52,"{""total_duration"": ""3323 minutes 6 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 57 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""Pact Provider Verification"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2014-07-08 20:11:27,master,,1720,37,True,False,False,False,False,False,False,2026-05-29 03:27:45,GNU AGPLv3,6,True,0,0,0,0,3841,374378,0,True,True,False,False,True,False,False,,openedx,4,"['http://www.example.com/example_mobile_video.mp4: 404', 'http://www.example.com/example_desktop_video.mp4: 404']",False,[],True,True,False,False,,,False,,,,False,True,False,True,,False,edxval,"['3', '3.12']",http://github.com/openedx/edx-val,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-lint,,,,True,2026-06-01,True,True,False,False,49,0,[],0,,0,0,,,20,"[""mccabe==0.7.0"", ""pylint==4.0.5"", ""text-unidecode==1.3"", ""jinja2==3.1.6"", ""astroid==4.0.4"", ""markupsafe==3.0.3"", ""isort==8.0.1"", ""platformdirs==4.9.6"", ""tomlkit==0.14.0"", ""pylint-celery==0.3"", ""pylint-django==2.7.0"", ""stevedore==5.7.0"", ""python-slugify==8.0.4"", ""pylint-plugin-utils==0.9.0"", ""pyyaml==6.0.3"", ""click==8.3.3"", ""code-annotations==3.0.0"", ""dill==0.4.1"", ""six==1.17.0"", ""click-log==0.4.0""]",49,"[""mccabe==0.7.0"", ""pylint==4.0.5"", ""text-unidecode==1.3"", ""jinja2==3.1.6"", ""pip==24.2"", ""tox==4.53.0"", ""tomli-w==1.2.0"", ""wheel==0.47.0"", ""astroid==4.0.4"", ""markupsafe==3.0.3"", ""pytest==9.0.3"", ""pluggy==1.6.0"", ""py==1.11.0"", ""isort==8.0.1"", ""tox-battery==0.6.2"", ""platformdirs==4.9.6"", ""python-discovery==1.2.2"", ""packaging==26.1"", ""tomlkit==0.14.0"", ""pyproject-hooks==1.2.0"", ""six==1.17.0"", ""pylint-celery==0.3"", ""pylint-django==2.7.0"", ""pip-tools==7.5.3"", ""pip==26.0.1"", ""asgiref==3.11.1"", ""setuptools==79.0.0"", ""stevedore==5.7.0"", ""sqlparse==0.5.5"", ""tox==3.28.0"", ""python-slugify==8.0.4"", ""virtualenv==21.2.4"", ""distlib==0.4.0"", ""filelock==3.29.0"", ""pylint-plugin-utils==0.9.0"", ""pyyaml==6.0.3"", ""click==8.3.3"", ""cachetools==7.0.6"", ""code-annotations==3.0.0"", ""pygments==2.20.0"", ""colorama==0.4.6"", ""iniconfig==2.3.0"", ""wheel==0.45.1"", ""pyproject-api==1.10.0"", ""coverage==7.13.5"", ""dill==0.4.1"", ""build==1.4.4"", ""setuptools==82.0.1"", ""click-log==0.4.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,30,"{""total_duration"": ""2240 minutes 20 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pylint)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2015-01-29 05:14:33,master,Custom tooling for pylint and other repo management tools,2353,30,True,False,False,False,False,False,False,2026-06-01 04:34:53,Apache License 2.0,14,True,0,0,0,1281,1902,145338,0,False,False,False,False,True,False,False,,openedx,1,[],True,"['https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://github.com/openedx/edx-lint/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-lint/actions?query=workflow%3A%22Python+CI%22']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-lint,[],https://github.com/openedx/edx-lint,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-platform,,,,True,2026-06-01,True,True,False,False,623,0,[],0,{},64,24,"{""@edx/stylelint-config-edx"": ""^2"", ""babel-jest"": ""^29"", ""jasmine-core"": ""2.99.1"", ""jasmine-jquery"": ""git+https://git@github.com/velesin/jasmine-jquery.git#ebad463d592d3fea00c69f26ea18a930e09c7b58"", ""jest"": ""^29"", ""karma"": ""^6.0.0"", ""karma-chrome-launcher"": ""^3"", ""karma-coverage"": ""^2"", ""karma-firefox-launcher"": ""^2"", ""karma-jasmine"": ""^1"", ""karma-jasmine-html-reporter"": ""^0.2"", ""karma-junit-reporter"": ""^2"", ""karma-requirejs"": ""^1"", ""karma-sourcemap-loader"": ""^0.4"", ""karma-spec-reporter"": ""^0.0"", ""karma-webpack"": ""^5"", ""plato"": ""^1"", ""react-test-renderer"": ""^16"", ""selenium-webdriver"": ""^4"", ""sinon"": ""^19"", ""squirejs"": ""^0.1"", ""string-replace-loader"": ""^3"", ""stylelint-formatter-pretty"": ""^4"", ""webpack-cli"": ""^5""}","{""@babel/core"": ""^7"", ""@babel/plugin-proposal-object-rest-spread"": ""^7"", ""@babel/plugin-transform-object-assign"": ""^7"", ""@babel/preset-env"": ""^7"", ""@babel/preset-react"": ""^7"", ""@edx/brand"": ""npm:@openedx/brand-openedx@^1"", ""@edx/edx-bootstrap"": ""^1"", ""@edx/edx-proctoring"": ""^4"", ""@edx/frontend-component-cookie-policy-banner"": ""2.2.0"", ""@edx/paragon"": ""^2"", ""@testing-library/jest-dom"": ""^6"", ""@testing-library/react"": ""^12"", ""@testing-library/user-event"": ""^12"", ""babel-loader"": ""^10.0.0"", ""babel-plugin-transform-class-properties"": ""^6"", ""babel-polyfill"": ""^6"", ""backbone"": ""^1"", ""backbone-associations"": ""^0.6"", ""backbone.paginator"": ""^2"", ""bootstrap"": ""4.0.0"", ""camelize"": ""^1"", ""classnames"": ""^2"", ""css-loader"": ""^7"", ""datatables"": ""^1"", ""datatables.net-fixedcolumns"": ""^5"", ""edx-ui-toolkit"": ""^1"", ""exports-loader"": ""^0.7.0"", ""file-loader"": ""^6"", ""font-awesome"": ""^4"", ""hls.js"": ""^1"", ""imports-loader"": ""^0.8"", ""jest-environment-jsdom"": ""^29"", ""jquery"": ""^2"", ""jquery-migrate"": ""^1"", ""jquery.scrollto"": ""^2"", ""js-cookie"": ""^3"", ""moment"": ""^2"", ""moment-timezone"": ""^0.6.0"", ""node-gyp"": ""^12.0.0"", ""popper.js"": ""^1"", ""prop-types"": ""^15"", ""raw-loader"": ""^0.5"", ""react"": ""^16"", ""react-dom"": ""^16"", ""react-focus-lock"": ""^2.0.0"", ""react-redux"": ""^5"", ""react-router-dom"": ""^5"", ""react-slick"": ""^0.31.0"", ""redux"": ""3.7.2"", ""redux-thunk"": ""2.2.0"", ""requirejs"": ""^2"", ""rtlcss"": ""^4"", ""sass"": ""^1"", ""sass-loader"": ""^16"", ""scriptjs"": ""^2"", ""style-loader"": ""^4"", ""svg-inline-loader"": ""^0.8"", ""uglify-js"": ""^3"", ""underscore"": ""^1"", ""underscore.string"": ""^3"", ""webpack"": ""^5"", ""webpack-bundle-tracker"": ""^3"", ""webpack-merge"": ""^6"", ""which-country"": ""^1""}",309,"[""cachetools==7.1.4"", ""openedx-authz==1.16.0"", ""gunicorn==26.0.0"", ""wheel==0.47.0"", ""tomlkit==0.15.0"", ""oauthlib==3.3.1"", ""text-unidecode==1.3"", ""invoke==3.0.3"", ""cssutils==2.15.0"", ""tinycss2==1.4.0"", ""asgiref==3.11.1"", ""requests-oauthlib==2.0.0"", ""edx-when==4.0.0"", ""crowdsourcehinter-xblock==1.0.0"", ""simplejson==4.1.1"", ""soupsieve==2.8.4"", ""pillow==12.2.0"", ""appdirs==1.4.4"", ""testfixtures==12.0.0"", ""google-cloud-core==2.6.0"", ""openedx-core==1.0.1"", ""edx-django-release-util==1.5.0"", ""analytics-python==1.4.post1"", ""web-fragments==4.0.0"", ""pylatexenc==2.10"", ""simpleeval==1.0.7"", ""attrs==26.1.0"", ""networkx==3.6.1"", ""google-cloud-storage==3.10.1"", ""django-waffle==5.0.0"", ""hpack==4.1.0"", ""markupsafe==3.0.3"", ""pynacl==1.6.2"", ""celery==5.6.3"", ""social-auth-core==4.9.1"", ""openedx-filters==3.4.1"", ""unicodeit==0.7.5"", ""voluptuous==0.16.0"", ""urllib3==2.7.0"", ""django-celery-results==2.6.0"", ""typing-extensions==4.15.0"", ""edx-opaque-keys[django]==4.0.0"", ""nltk==3.9.4"", ""bcrypt==5.0.0"", ""sympy==1.14.0"", ""djangorestframework==3.17.1"", ""django-multi-email-field==0.8.0"", ""inflection==0.5.1"", ""jsonschema==4.26.0"", ""jmespath==1.1.0"", ""enmerkar-underscore==2.4.0"", ""edx-rest-api-client==7.0.0"", ""glob2==0.7"", ""drf-spectacular==0.29.0"", ""chardet==7.4.3"", ""bleach[css]==6.3.0"", ""prompt-toolkit==3.0.52"", ""social-auth-app-django==5.4.1"", ""ora2==7.0.0"", ""html5lib==1.1"", ""nh3==0.3.5"", ""python3-saml==1.16.0"", ""unicodecsv==0.14.1"", ""django-crum==0.7.9"", ""pyasn1==0.6.3"", ""django-filter==25.2"", ""django-mptt==0.18.0"", ""h2==4.3.0"", ""asn1crypto==1.5.1"", ""pymemcache==4.0.0"", ""click-didyoumean==0.3.1"", ""markdown==3.10.2"", ""mongoengine==0.29.3"", ""tzdata==2026.2"", ""edx-bulk-grades==2.0.0"", ""pyparsing==3.3.2"", ""idna==3.16"", ""olxcleaner==0.3.0"", ""wrapt==2.2.1"", ""google-auth==2.53.0"", ""requests==2.34.2"", ""edx-auth-backends==5.0.0"", ""meilisearch==0.41.0"", ""matplotlib==3.10.9"", ""annotated-types==0.7.0"", ""click-repl==0.3.0"", ""cryptography==48.0.0"", ""openedx-calc==5.0.0"", ""firebase-admin==7.4.0"", ""filelock==3.29.0"", ""pycryptodomex==3.23.0"", ""referencing==0.37.0"", ""jsondiff==2.2.1"", ""charset-normalizer==3.4.7"", ""msgpack==1.1.2"", ""beautifulsoup4==4.14.3"", ""mailsnake==1.6.4"", ""typesense==2.0.0"", ""bridgekeeper==0.9"", ""pyjwt[crypto]==2.13.0"", ""sailthru-client==2.2.3"", ""walrus==0.9.8"", ""bracex==2.6"", ""optimizely-sdk==5.5.0"", ""polib==1.2.0"", ""edx-drf-extensions==10.6.0"", ""pydantic-core==2.46.4"", ""edx-codejail==4.1.0"", ""amqp==5.3.1"", ""rules==3.5"", ""django-storages==1.14.6"", ""importlib-metadata==9.0.0"", ""shapely==2.1.2"", ""multidict==6.7.1"", ""pymongo==4.4.0"", ""xblock-google-drive==0.8.2"", ""super-csv==5.0.0"", ""djangorestframework-xml==2.0.0"", ""frozenlist==1.8.0"", ""edx-completion==5.0.0"", ""sorl-thumbnail==13.0.0"", ""snowflake-connector-python==4.5.0"", ""aiohttp==3.13.5"", ""mysqlclient==2.2.8"", ""django-classy-tags==4.1.0"", ""edx-toggles==6.0.0"", ""drf-yasg==1.21.15"", ""pyyaml==6.0.3"", ""packaging==26.2"", ""scipy==1.17.1"", ""python-slugify==8.0.4"", ""billiard==4.2.4"", ""cachecontrol==0.14.4"", ""hyperframe==6.1.0"", ""edx-sga==0.28.0"", ""tqdm==4.67.3"", ""ipaddress==1.0.23"", ""httpx[http2]==0.28.1"", ""edx-enterprise==8.0.14"", ""sqlparse==0.5.5"", ""django-ratelimit==4.1.0"", ""piexif==1.1.3"", ""django-simple-history==3.11.0"", ""xss-utils==1.0.0"", ""enterprise-integrated-channels==0.1.58"", ""path==16.11.0"", ""h11==0.16.0"", ""fs==2.4.16"", ""django-object-actions==5.1.1"", ""tincan==1.0.0"", ""webob==1.8.9"", ""xblock-drag-and-drop-v2==5.0.6"", ""click==8.4.1"", ""django-method-override==1.0.4"", ""psutil==7.2.2"", ""openedx-django-wiki==3.1.1"", ""vine==5.1.0"", ""maxminddb==3.1.1"", ""six==1.17.0"", ""google-crc32c==1.8.0"", ""uritemplate==4.2.0"", ""google-api-core[grpc]==2.30.3"", ""fonttools==4.63.0"", ""chem==2.0.0"", ""django-js-asset==3.1.2"", ""kiwisolver==1.5.0"", ""edxval==4.0.1"", ""monotonic==1.6"", ""pysrt==1.1.2"", ""defusedxml==0.7.1"", ""pyopenssl==26.2.0"", ""edx-django-utils==8.0.1"", ""httpcore==1.0.9"", ""django-countries==8.2.0"", ""django-autocomplete-light==4.0.0"", ""help-tokens==4.0.0"", ""isodate==0.7.2"", ""camel-converter[pydantic]==5.1.0"", ""jinja2==3.1.6"", ""edx-milestones==2.0.0"", ""cffi==2.0.0"", ""lxml[html-clean]==5.3.2"", ""xblock-utils==4.0.0"", ""django-push-notifications==3.3.0"", ""jwcrypto==1.5.7"", ""django-model-utils==5.0.0"", ""pynliner==0.8.0"", ""django-ses==4.7.2"", ""edx-submissions==4.0.0"", ""django-mysql==4.19.0"", ""openedx-django-pyfs==4.0.0"", ""grpcio==1.80.0"", ""mpmath==1.3.0"", ""stevedore==5.8.0"", ""wcwidth==0.7.0"", ""openedx-django-require==3.0.0"", ""google-resumable-media==2.9.0"", ""tzlocal==5.3.1"", ""kombu==5.6.2"", ""django-oauth-toolkit==1.7.1"", ""enmerkar==0.7.1"", ""edx-django-sites-extensions==6.0.0"", ""icalendar==7.1.2"", ""casbin-django-orm-adapter==1.7.0"", ""propcache==0.5.2"", ""slumber==0.7.1"", ""backoff==1.10.0"", ""redis==7.4.0"", ""event-tracking==4.0.0"", ""pycountry==26.2.16"", ""edx-celeryutils==2.0.0"", ""openedx-events==11.2.0"", ""grpcio-status==1.80.0"", ""django-fernet-fields-v2==0.9"", ""edx-rbac==3.0.0"", ""pgpy==0.6.0"", ""pycasbin==2.8.0"", ""pycparser==3.0"", ""aniso8601==10.0.1"", ""xblocks-contrib==0.16.1"", ""pylti1p3==2.0.0"", ""edx-ccx-keys==2.0.2"", ""typing-inspection==0.4.2"", ""aiohappyeyeballs==2.6.2"", ""rpds-py==0.30.0"", ""django-pipeline==4.1.0"", ""fs-s3fs==1.1.1"", ""openedx-forum==0.4.3"", ""edx-organizations==8.0.0"", ""acid-xblock==0.4.1"", ""click-plugins==1.1.1.2"", ""mako==1.3.12"", ""webencodings==0.5.1"", ""anyio==4.13.0"", ""botocore==1.43.14"", ""proto-plus==1.28.0"", ""platformdirs==4.9.6"", ""geoip2==5.2.0"", ""recommender-xblock==5.0.0"", ""xblock[django]==6.1.0"", ""babel==2.18.0"", ""yarl==1.24.2"", ""lxml-html-clean==0.4.4"", ""wcmatch==10.1"", ""openedx-atlas==0.7.0"", ""path-py==12.5.0"", ""edx-i18n-tools==2.0.0"", ""joblib==1.5.3"", ""contourpy==1.3.3"", ""django-user-tasks==4.0.0"", ""s3transfer==0.17.0"", ""edx-ace==1.15.0"", ""pyrsistent==0.20.0"", ""code-annotations==3.0.0"", ""drf-jwt==1.19.2"", ""python-dateutil==2.9.0.post0"", ""encutils==1.0.0"", ""xblock-poll==1.15.1"", ""elasticsearch==7.9.1"", ""fastavro==1.12.2"", ""edx-proctoring==5.2.0"", ""lti-consumer-xblock==11.2.0"", ""nodeenv==1.10.0"", ""django-ipware==7.0.1"", ""more-itertools==11.1.0"", ""lazy==1.6"", ""codejail-includes==2.0.0"", ""python-swiftclient==4.10.0"", ""django-config-models==3.0.0"", ""google-cloud-firestore==2.27.0"", ""laboratory==1.0.2"", ""pydantic==2.13.4"", ""django-statici18n==2.7.1"", ""regex==2026.5.9"", ""django-cache-memoize==0.2.1"", ""pytz==2026.2"", ""edx-api-doc-tools==3.0.0"", ""python-ipware==3.0.0"", ""googleapis-common-protos==1.75.0"", ""protobuf==6.33.6"", ""jsonschema-specifications==2025.9.1"", ""xmlsec==1.3.14"", ""django-appconf==1.2.0"", ""pyuca==1.2"", ""django-sekizai==4.1.0"", ""certifi==2026.5.20"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""paramiko==5.0.0"", ""django-webpack-loader==3.2.4"", ""done-xblock==3.0.0"", ""jsonfield==3.2.0"", ""django-cors-headers==4.9.0"", ""boto3==1.43.14"", ""zipp==4.1.0"", ""edx-event-bus-redis==1.0.0"", ""semantic-version==2.10.0"", ""dnspython==2.8.0"", ""edx-tincan-py35==2.0.0"", ""staff-graded-xblock==4.0.0"", ""sortedcontainers==2.4.0"", ""aiosignal==1.4.0"", ""pyasn1-modules==0.4.2"", ""cycler==0.12.1"", ""random2==1.0.2"", ""psycopg2-binary==2.9.12"", ""numpy==1.26.4"", ""edx-search==5.0.1"", ""edx-event-bus-kafka==6.1.0"", ""django==5.2.14""]",535,"[""cachetools==7.1.4"", ""openedx-authz==1.16.0"", ""gunicorn==26.0.0"", ""wheel==0.47.0"", ""pillow==12.0.0"", ""tomlkit==0.15.0"", ""glom==25.12.0"", ""oauthlib==3.3.1"", ""types-requests==2.33.0.20260518"", ""nltk==3.9.1"", ""text-unidecode==1.3"", ""invoke==3.0.3"", ""click==8.3.0"", ""cssutils==2.15.0"", ""openedx-calc==3.1.2"", ""tinycss2==1.4.0"", ""asgiref==3.11.1"", ""requests-oauthlib==2.0.0"", ""pact-python==3.4.0"", ""edx-when==4.0.0"", ""crowdsourcehinter-xblock==1.0.0"", ""pytest-metadata==3.1.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""simplejson==4.1.1"", ""soupsieve==2.8.4"", ""pillow==12.2.0"", ""grimp==3.14"", ""rich==15.0.0"", ""diff-cover==10.2.1"", ""pydata-sphinx-theme==0.16.1"", ""starlette==1.1.0"", ""appdirs==1.4.4"", ""testfixtures==12.0.0"", ""google-cloud-core==2.6.0"", ""matplotlib==3.9.2"", ""markupsafe==2.1.5"", ""mypy==1.19.1"", ""edx-django-release-util==1.5.0"", ""openedx-core==1.0.1"", ""analytics-python==1.4.post1"", ""pylint-celery==0.3"", ""web-fragments==4.0.0"", ""pylatexenc==2.10"", ""django-stubs-ext==6.0.5"", ""simpleeval==1.0.7"", ""sphinx-book-theme==1.2.0"", ""attrs==26.1.0"", ""coverage==7.14.0"", ""sphinxcontrib-httpdomain==2.0.0"", ""iniconfig==2.3.0"", ""pathspec==1.1.1"", ""opentelemetry-exporter-otlp-proto-http==1.37.0"", ""networkx==3.6.1"", ""google-cloud-storage==3.10.1"", ""django-waffle==5.0.0"", ""cryptography==45.0.7"", ""hpack==4.1.0"", ""markupsafe==3.0.3"", ""pynacl==1.6.2"", ""celery==5.6.3"", ""social-auth-core==4.9.1"", ""importlib-metadata==8.7.1"", ""tqdm==4.66.5"", ""openedx-filters==3.4.1"", ""unicodeit==0.7.5"", ""voluptuous==0.16.0"", ""packaging==25.0"", ""urllib3==2.7.0"", ""django-celery-results==2.6.0"", ""typing-extensions==4.15.0"", ""edx-opaque-keys[django]==4.0.0"", ""nltk==3.9.4"", ""opentelemetry-api==1.37.0"", ""virtualenv==21.3.3"", ""bcrypt==5.0.0"", ""sympy==1.14.0"", ""pycparser==2.21"", ""djangorestframework==3.17.1"", ""django-multi-email-field==0.8.0"", ""inflection==0.5.1"", ""pytest-cov==7.1.0"", ""jsonschema==4.26.0"", ""jmespath==1.1.0"", ""enmerkar-underscore==2.4.0"", ""fonttools==4.57.0"", ""edx-rest-api-client==7.0.0"", ""glob2==0.7"", ""drf-spectacular==0.29.0"", ""gitpython==3.1.50"", ""chardet==7.4.3"", ""scipy==1.14.1"", ""unidiff==0.7.5"", ""bleach[css]==6.3.0"", ""pyparsing==3.2.0"", ""prompt-toolkit==3.0.52"", ""librt==0.11.0"", ""mdurl==0.1.2"", ""social-auth-app-django==5.4.1"", ""ora2==7.0.0"", ""html5lib==1.1"", ""nh3==0.3.5"", ""django-stubs[compatible-mypy]==5.2.9"", ""sphinxcontrib-htmlhelp==2.1.0"", ""python3-saml==1.16.0"", ""unicodecsv==0.14.1"", ""django-crum==0.7.9"", ""build==1.5.0"", ""pyasn1==0.6.3"", ""django-filter==25.2"", ""sphinxcontrib-openapi==0.9.0"", ""python-dotenv==1.2.2"", ""networkx==3.4.2"", ""django-mptt==0.18.0"", ""opentelemetry-util-http==0.58b0"", ""h2==4.3.0"", ""opentelemetry-instrumentation-requests==0.58b0"", ""asn1crypto==1.5.1"", ""opentelemetry-semantic-conventions==0.58b0"", ""pact-python-ffi==0.5.4.0"", ""pillow==11.0.0"", ""python-dateutil==2.8.2"", ""pymemcache==4.0.0"", ""click-didyoumean==0.3.1"", ""markdown==3.10.2"", ""sphinxext-rediraffe==0.3.0"", ""py==1.11.0"", ""singledispatch==4.1.2"", ""mongoengine==0.29.3"", ""sphinx-autoapi==3.6.0"", ""click-log==0.4.0"", ""wrapt==1.17.3"", ""cffi==1.17.1"", ""tzdata==2026.2"", ""edx-bulk-grades==2.0.0"", ""click-option-group==0.5.9"", ""pyparsing==3.3.2"", ""pygments==2.20.0"", ""idna==3.16"", ""olxcleaner==0.3.0"", ""picobox==4.0.0"", ""wrapt==2.2.1"", ""fonttools==4.51.0"", ""import-linter==2.11"", ""google-auth==2.53.0"", ""requests==2.34.2"", ""edx-auth-backends==5.0.0"", ""meilisearch==0.41.0"", ""joblib==1.5.2"", ""matplotlib==3.10.9"", ""sse-starlette==3.4.4"", ""annotated-types==0.7.0"", ""click-repl==0.3.0"", ""cryptography==48.0.0"", ""smmap==5.0.3"", ""opentelemetry-instrumentation-threading==0.58b0"", ""pip==26.1.1"", ""openedx-calc==5.0.0"", ""firebase-admin==7.4.0"", ""sphinxcontrib-devhelp==2.0.0"", ""fonttools==4.62.1"", ""filelock==3.29.0"", ""pycryptodomex==3.23.0"", ""referencing==0.37.0"", ""jsondiff==2.2.1"", ""charset-normalizer==3.4.7"", ""msgpack==1.1.2"", ""pytest-randomly==4.1.0"", ""beautifulsoup4==4.14.3"", ""matplotlib==3.10.7"", ""scipy==1.15.2"", ""mailsnake==1.6.4"", ""contourpy==1.3.2"", ""typesense==2.0.0"", ""packaging==24.0"", ""bridgekeeper==0.9"", ""pyjwt[crypto]==2.13.0"", ""sailthru-client==2.2.3"", ""walrus==0.9.8"", ""bracex==2.6"", ""coverage[toml]==7.14.0"", ""optimizely-sdk==5.5.0"", ""edx-drf-extensions==10.6.0"", ""polib==1.2.0"", ""pydantic-core==2.46.4"", ""edx-codejail==4.1.0"", ""amqp==5.3.1"", ""rules==3.5"", ""lxml==4.9.4"", ""django-storages==1.14.6"", ""pycparser==2.22"", ""importlib-metadata==9.0.0"", ""shapely==2.1.2"", ""multidict==6.7.1"", ""pymongo==4.4.0"", ""httpx==0.28.1"", ""xblock-google-drive==0.8.2"", ""super-csv==5.0.0"", ""djangorestframework-xml==2.0.0"", ""frozenlist==1.8.0"", ""lxml-html-clean==0.4.3"", ""opentelemetry-sdk==1.37.0"", ""edx-completion==5.0.0"", ""markupsafe==3.0.2"", ""sorl-thumbnail==13.0.0"", ""snowflake-connector-python==4.5.0"", ""aiohttp==3.13.5"", ""scipy==1.10.1"", ""mysqlclient==2.2.8"", ""django-classy-tags==4.1.0"", ""edx-toggles==6.0.0"", ""drf-yasg==1.21.15"", ""pyyaml==6.0.3"", ""exceptiongroup==1.2.2"", ""packaging==26.2"", ""joblib==1.4.2"", ""mccabe==0.7.0"", ""scipy==1.17.1"", ""mcp==1.23.3"", ""python-slugify==8.0.4"", ""packaging==24.1"", ""openedx-calc==4.0.2"", ""billiard==4.2.4"", ""cachecontrol==0.14.4"", ""hyperframe==6.1.0"", ""edx-sga==0.28.0"", ""fonttools==4.54.1"", ""tqdm==4.67.3"", ""ipaddress==1.0.23"", ""httpx[http2]==0.28.1"", ""gitdb==4.0.12"", ""edx-enterprise==8.0.14"", ""colorama==0.4.6"", ""sqlparse==0.5.5"", ""ddt==1.7.2"", ""django-ratelimit==4.1.0"", ""piexif==1.1.3"", ""django-simple-history==3.11.0"", ""xss-utils==1.0.0"", ""tqdm==4.66.2"", ""enterprise-integrated-channels==0.1.58"", ""path==16.11.0"", ""sphinx-design==0.7.0"", ""h11==0.16.0"", ""markdown-it-py==4.2.0"", ""fs==2.4.16"", ""tqdm==4.66.4"", ""opentelemetry-exporter-otlp-proto-common==1.37.0"", ""vulture==2.16"", ""django-object-actions==5.1.1"", ""snowballstemmer==3.1.0"", ""matplotlib==3.7.5"", ""tincan==1.0.0"", ""regex==2026.4.4"", ""webob==1.8.9"", ""xblock-drag-and-drop-v2==5.0.6"", ""pyparsing==3.1.1"", ""freezegun==1.5.5"", ""click==8.4.1"", ""django-method-override==1.0.4"", ""psutil==7.2.2"", ""boltons==21.0.0"", ""uvicorn==0.48.0"", ""openedx-django-wiki==3.1.1"", ""sympy==1.13.3"", ""python-discovery==1.3.1"", ""tox==4.54.0"", ""contourpy==1.3.0"", ""ruamel-yaml-clib==0.2.15"", ""vine==5.1.0"", ""maxminddb==3.1.1"", ""tomli==2.4.1"", ""six==1.17.0"", ""google-crc32c==1.8.0"", ""uritemplate==4.2.0"", ""google-api-core[grpc]==2.30.3"", ""fonttools==4.63.0"", ""regex==2025.10.23"", ""chem==2.0.0"", ""django-js-asset==3.1.2"", ""sphinxcontrib-qthelp==2.0.0"", ""kiwisolver==1.5.0"", ""edxval==4.0.1"", ""monotonic==1.6"", ""pysrt==1.1.2"", ""defusedxml==0.7.1"", ""pyopenssl==26.2.0"", ""pyparsing==3.1.2"", ""pytest==8.2.0"", ""edx-django-utils==8.0.1"", ""httpcore==1.0.9"", ""django-countries==8.2.0"", ""pytest-json-report==1.5.0"", ""accessible-pygments==0.0.5"", ""nltk==3.8.1"", ""kiwisolver==1.4.9"", ""cryptography==47.0.0"", ""django-autocomplete-light==4.0.0"", ""help-tokens==4.0.0"", ""isodate==0.7.2"", ""django-debug-toolbar==5.2.0"", ""tqdm==4.67.1"", ""camel-converter[pydantic]==5.1.0"", ""jinja2==3.1.6"", ""pylint==4.0.5"", ""edx-milestones==2.0.0"", ""watchdog==6.0.0"", ""cffi==2.0.0"", ""libsass==0.10.0"", ""ruamel-yaml==0.19.1"", ""pyparsing==3.2.3"", ""setuptools==81.0.0"", ""lxml[html-clean]==5.3.2"", ""lxml-html-clean==0.4.2"", ""xblock-utils==4.0.0"", ""django-push-notifications==3.3.0"", ""jwcrypto==1.5.7"", ""django-model-utils==5.0.0"", ""pynliner==0.8.0"", ""pylint-django==2.7.0"", ""django-ses==4.7.2"", ""edx-submissions==4.0.0"", ""django-mysql==4.19.0"", ""regex==2024.4.28"", ""importlib-resources==6.4.0"", ""openedx-django-pyfs==4.0.0"", ""chem==1.2.0"", ""matplotlib==3.10.1"", ""cryptography==43.0.3"", ""pytest-attrib==0.1.3"", ""six==1.16.0"", ""networkx==3.5"", ""grpcio==1.80.0"", ""mpmath==1.3.0"", ""stevedore==5.8.0"", ""wcwidth==0.7.0"", ""openedx-django-require==3.0.0"", ""google-resumable-media==2.9.0"", ""tzlocal==5.3.1"", ""kombu==5.6.2"", ""django-oauth-toolkit==1.7.1"", ""enmerkar==0.7.1"", ""contourpy==1.1.1"", ""edx-django-sites-extensions==6.0.0"", ""alabaster==1.0.0"", ""mock==5.2.0"", ""icalendar==7.1.2"", ""casbin-django-orm-adapter==1.7.0"", ""zipp==3.18.1"", ""click==8.3.3"", ""propcache==0.5.2"", ""pyproject-hooks==1.2.0"", ""sphinx-reredirects==1.1.0"", ""slumber==0.7.1"", ""jsonschema==4.25.1"", ""networkx==3.1"", ""fonttools==4.49.0"", ""backoff==1.10.0"", ""httpretty==1.1.4"", ""redis==7.4.0"", ""face==26.0.0"", ""faker==40.19.1"", ""pytest-xdist[psutil]==3.8.0"", ""event-tracking==4.0.0"", ""mistune==3.2.1"", ""pycountry==26.2.16"", ""edx-celeryutils==2.0.0"", ""scipy==1.16.3"", ""packaging==23.2"", ""isort==8.0.1"", ""ruff==0.15.14"", ""pytest-reportlog==1.0.0"", ""pytest-django==4.12.0"", ""types-pyyaml==6.0.12.20260518"", ""scipy==1.7.3"", ""opentelemetry-instrumentation==0.58b0"", ""openedx-events==11.2.0"", ""grpcio-status==1.80.0"", ""django-fernet-fields-v2==0.9"", ""edx-rbac==3.0.0"", ""pgpy==0.6.0"", ""sphinx==9.1.0"", ""pyquery==2.0.1"", ""pycasbin==2.8.0"", ""pycparser==3.0"", ""aniso8601==10.0.1"", ""xblocks-contrib==0.16.1"", ""joblib==1.3.2"", ""pylti1p3==2.0.0"", ""zipp==3.17.0"", ""chem==1.3.0"", ""edx-ccx-keys==2.0.2"", ""typing-inspection==0.4.2"", ""imagesize==2.0.0"", ""pydantic-settings==2.14.1"", ""pylint-plugin-utils==0.9.0"", ""aiohappyeyeballs==2.6.2"", ""pillow==10.3.0"", ""rpds-py==0.30.0"", ""django-pipeline==4.1.0"", ""fs-s3fs==1.1.1"", ""openedx-forum==0.4.3"", ""edx-organizations==8.0.0"", ""execnet==2.1.2"", ""docutils==0.22.4"", ""acid-xblock==0.4.1"", ""click-plugins==1.1.1.2"", ""wcmatch==8.5.2"", ""mako==1.3.12"", ""webencodings==0.5.1"", ""pyparsing==3.2.5"", ""anyio==4.13.0"", ""botocore==1.43.14"", ""proto-plus==1.28.0"", ""platformdirs==4.9.6"", ""geoip2==5.2.0"", ""recommender-xblock==5.0.0"", ""tomli-w==1.2.0"", ""xblock[django]==6.1.0"", ""pyproject-api==1.10.0"", ""babel==2.18.0"", ""kiwisolver==1.4.7"", ""yarl==1.24.2"", ""lxml-html-clean==0.4.4"", ""sphinxcontrib-applehelp==2.0.0"", ""wcmatch==10.1"", ""djangorestframework-stubs==3.16.9"", ""regex==2024.11.6"", ""click==8.1.8"", ""openedx-atlas==0.7.0"", ""path-py==12.5.0"", ""edx-i18n-tools==2.0.0"", ""joblib==1.5.3"", ""cffi==1.16.0"", ""contourpy==1.3.3"", ""nltk==3.9.2"", ""sympy==1.12"", ""django-user-tasks==4.0.0"", ""numpy==1.22.4"", ""s3transfer==0.17.0"", ""python-multipart==0.0.29"", ""edx-ace==1.15.0"", ""deepmerge==2.0"", ""pyrsistent==0.20.0"", ""pillow==11.2.1"", ""code-annotations==3.0.0"", ""drf-jwt==1.19.2"", ""pyjwt[crypto]==2.12.1"", ""python-dateutil==2.9.0.post0"", ""encutils==1.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""xblock-poll==1.15.1"", ""elasticsearch==7.9.1"", ""opentelemetry-proto==1.37.0"", ""cryptography==42.0.7"", ""fastavro==1.12.2"", ""pluggy==1.6.0"", ""semgrep==1.163.0"", ""dill==0.4.1"", ""edx-proctoring==5.2.0"", ""lti-consumer-xblock==11.2.0"", ""nodeenv==1.10.0"", ""django-ipware==7.0.1"", ""more-itertools==11.1.0"", ""lazy==1.6"", ""astroid==4.0.4"", ""codejail-includes==2.0.0"", ""fonttools==4.60.1"", ""python-swiftclient==4.10.0"", ""django-config-models==3.0.0"", ""factory-boy==3.3.3"", ""google-cloud-firestore==2.27.0"", ""laboratory==1.0.2"", ""pywatchman==3.0.0"", ""pydantic==2.13.4"", ""django-statici18n==2.7.1"", ""pylint-pytest==1.1.8"", ""regex==2026.5.9"", ""django-cache-memoize==0.2.1"", ""cssselect==1.4.0"", ""pytz==2026.2"", ""edx-api-doc-tools==3.0.0"", ""python-ipware==3.0.0"", ""numpy==1.24.4"", ""regex==2023.12.25"", ""googleapis-common-protos==1.75.0"", ""protobuf==6.33.6"", ""pycparser==2.23"", ""peewee==3.19.0"", ""jsonschema-specifications==2025.9.1"", ""pillow==10.2.0"", ""sphinx-mdinclude==0.6.2"", ""xmlsec==1.3.14"", ""django-appconf==1.2.0"", ""pyuca==1.2"", ""roman-numerals==4.1.0"", ""django-sekizai==4.1.0"", ""certifi==2026.5.20"", ""distlib==0.4.0"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""codejail-includes==1.0.0"", ""paramiko==5.0.0"", ""httpx-sse==0.4.3"", ""django-webpack-loader==3.2.4"", ""done-xblock==3.0.0"", ""jsonfield==3.2.0"", ""django-cors-headers==4.9.0"", ""boto3==1.43.14"", ""zipp==4.1.0"", ""edx-event-bus-redis==1.0.0"", ""django-storage-swift==1.2.19"", ""semantic-version==2.10.0"", ""dnspython==2.8.0"", ""edx-tincan-py35==2.0.0"", ""staff-graded-xblock==4.0.0"", ""lxml[html-clean,html_clean]==5.3.2"", ""edx-lint==6.1.0"", ""cryptography==38.0.4"", ""click==8.1.6"", ""kiwisolver==1.4.5"", ""sortedcontainers==2.4.0"", ""aiosignal==1.4.0"", ""pyasn1-modules==0.4.2"", ""cycler==0.12.1"", ""random2==1.0.2"", ""psycopg2-binary==2.9.12"", ""numpy==1.26.4"", ""cryptography==44.0.2"", ""kiwisolver==1.4.8"", ""mypy-extensions==1.1.0"", ""importlib-resources==6.1.1"", ""edx-search==5.0.1"", ""pip-tools==7.5.3"", ""regex==2024.9.11"", ""edx-event-bus-kafka==6.1.0"", ""django==5.2.14""]",62,"[""edx-django-utils"", ""edx-rest-api-client"", ""django-celery-results"", ""event-tracking"", ""edx-organizations"", ""social-auth-app-django"", ""django-multi-email-field"", ""django-oauth-toolkit"", ""help-tokens"", ""done-xblock"", ""django-debug-toolbar"", ""django-config-models"", ""django-object-actions"", ""factory-boy"", ""pylint-django"", ""django-ratelimit"", ""django-js-asset"", ""django-cache-memoize"", ""edx-i18n-tools"", ""lti-consumer-xblock"", ""edx-submissions"", ""edx-milestones"", ""edxval"", ""django-storages"", ""pytest-django"", ""django-autocomplete-light"", ""django-filter"", ""django-appconf"", ""edx-celeryutils"", ""django-user-tasks"", ""django-countries"", ""django-waffle"", ""djangorestframework"", ""django-webpack-loader"", ""edx-completion"", ""edx-proctoring"", ""edx-auth-backends"", ""code-annotations"", ""web-fragments"", ""edx-ace"", ""super-csv"", ""xblock-google-drive"", ""django-pipeline"", ""edx-search"", ""edx-when"", ""edx-drf-extensions"", ""django-sekizai"", ""edx-enterprise"", ""edx-django-release-util"", ""staff-graded-xblock"", ""xblock-utils"", ""enmerkar-underscore"", ""edx-django-sites-extensions"", ""edx-toggles"", ""edx-bulk-grades"", ""xss-utils"", ""django-cors-headers"", ""django-classy-tags"", ""django-mysql"", ""edx-api-doc-tools"", ""edx-rbac"", ""xblock-drag-and-drop-v2""]",81,"[""django-multi-email-field"", ""bridgekeeper"", ""django-mptt"", ""django-js-asset"", ""django-cache-memoize"", ""drf-jwt"", ""edx-milestones"", ""edx-submissions"", ""pytest-django"", ""django-statici18n"", ""djangorestframework"", ""django-crum"", ""web-fragments"", ""super-csv"", ""edx-when"", ""edx-django-release-util"", ""djangorestframework-xml"", ""django-cors-headers"", ""django-classy-tags"", ""edx-rbac"", ""xblock-drag-and-drop-v2"", ""django-celery-results"", ""django-oauth-toolkit"", ""django-config-models"", ""django-ratelimit"", ""rules"", ""edx-i18n-tools"", ""lti-consumer-xblock"", ""django-filter"", ""django-countries"", ""edx-sga"", ""edx-proctoring"", ""django-pipeline"", ""edx-ace"", ""xblock-google-drive"", ""enmerkar-underscore"", ""django-storage-swift"", ""edx-bulk-grades"", ""edx-api-doc-tools"", ""enmerkar"", ""django-ipware"", ""edx-organizations"", ""help-tokens"", ""django-debug-toolbar"", ""pylint-django"", ""django-simple-history"", ""django-storages"", ""django-appconf"", ""django-waffle"", ""edx-completion"", ""code-annotations"", ""edx-search"", ""django-ses"", ""staff-graded-xblock"", ""edx-django-sites-extensions"", ""edx-toggles"", ""xblock-poll"", ""jsonfield"", ""django-mysql"", ""django-model-utils"", ""edx-django-utils"", ""edx-rest-api-client"", ""event-tracking"", ""social-auth-app-django"", ""done-xblock"", ""django-object-actions"", ""factory-boy"", ""edxval"", ""edx-celeryutils"", ""django-user-tasks"", ""sorl-thumbnail"", ""django-autocomplete-light"", ""edx-auth-backends"", ""django-sekizai"", ""drf-yasg"", ""edx-drf-extensions"", ""edx-enterprise"", ""xblock-utils"", ""django-method-override"", ""xss-utils"", ""django-webpack-loader""]",52,"[""edx-django-utils"", ""edx-rest-api-client"", ""django-celery-results"", ""event-tracking"", ""edx-organizations"", ""social-auth-app-django"", ""django-multi-email-field"", ""help-tokens"", ""done-xblock"", ""django-debug-toolbar"", ""django-config-models"", ""django-js-asset"", ""django-cache-memoize"", ""edx-i18n-tools"", ""lti-consumer-xblock"", ""edx-submissions"", ""edx-milestones"", ""edxval"", ""django-appconf"", ""django-autocomplete-light"", ""django-filter"", ""edx-celeryutils"", ""django-user-tasks"", ""django-countries"", ""django-waffle"", ""django-webpack-loader"", ""edx-completion"", ""edx-proctoring"", ""edx-auth-backends"", ""code-annotations"", ""web-fragments"", ""edx-ace"", ""super-csv"", ""xblock-google-drive"", ""django-sekizai"", ""edx-search"", ""edx-when"", ""edx-drf-extensions"", ""edx-enterprise"", ""edx-django-release-util"", ""staff-graded-xblock"", ""xblock-utils"", ""enmerkar-underscore"", ""edx-django-sites-extensions"", ""edx-toggles"", ""edx-bulk-grades"", ""xss-utils"", ""django-cors-headers"", ""django-mysql"", ""edx-api-doc-tools"", ""edx-rbac"", ""xblock-drag-and-drop-v2""]",False,,True,True,True,True,False,True,True,True,True,True,False,True,True,True,False,False,True,False,True,True,True,261,"{""total_duration"": ""13 minutes 18 seconds"", ""checks"": [{""name"": ""check migrations (ubuntu-24.04, 3.12, pinned, 7, 8)"", ""duration"": ""13 minutes 5 seconds""}, {""name"": ""static-assets-check (ubuntu-24.04, 3.12, 20, 10.7.x, 7.0)"", ""duration"": ""6 minutes 5 seconds""}, {""name"": ""Analyze (javascript-typescript)"", ""duration"": ""3 minutes 46 seconds""}, {""name"": ""JS (ubuntu-latest, 20, 3.12)"", ""duration"": ""3 minutes 44 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""2 minutes 44 seconds""}, {""name"": ""Lint Python Imports"", ""duration"": ""2 minutes 23 seconds""}, {""name"": ""Analyze (actions)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Migrations checks successful"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2013-05-30 20:20:38,master,"The Open edX LMS & Studio, powering education sites around the world!",2310661,4298,True,False,False,False,False,False,False,2026-06-01 04:39:38,GNU AGPLv3,159,False,181797,0,1441391,5697092,8779,29508861,15393,False,False,False,False,False,False,False,,openedx,22,"['https://www.gnu.org/licenses/agpl-3.0: 403', 'https://openedx.org/get-started/: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/cla: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/openedx-platform/actions/workflows/unit-tests.yml/badge.svg', 'https://github.com/openedx/openedx-platform/actions/workflows/unit-tests.yml', 'https://img.shields.io/badge/status-maintained-31c653', 'https://openedx.org', 'https://docs.openedx.org/projects/edx-platform', 'https://github.com/openedx/codejail?tab=readme-ov-file', 'https://github.com/overhangio/tutor', 'https://docs.openedx.org/en/latest/site_ops/index.html', 'https://docs.tutor.edly.io/dev.html', 'https://github.com/openedx/frontend-app-learner-dashboard', 'https://github.com/openedx/frontend-app-learning/', 'https://github.com/openedx/frontend-app-authoring/', 'https://github.com/openedx/openedx-platform/blob/master/LICENSE', 'https://discuss.openedx.org', 'http://openedx.slack.com/', 'https://github.com/openedx/openedx-platform/issues', 'https://github.com/openedx/openedx-platform/issues/new/choose', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://backstage.openedx.org/catalog/default/component/openedx-platform']",True,True,False,True,.readthedocs.yaml,2,True,2026-05-07,2026-05-04,12,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],"['python-software-properties', 'pkg-config', 'gfortran', 'libatlas-dev', 'libblas-dev', 'liblapack-dev', 'liblapack3gf', 'curl', 'git', 'python-virtualenv', 'python-scipy', 'python-numpy', 'build-essential', 'python-dev', 'gfortran', 'libfreetype6-dev', 'libpng12-dev', 'libjpeg-dev', 'libtiff4-dev', 'zlib1g-dev', 'libxml2-dev', 'libxslt-dev', 'yui-compressor', 'graphviz', 'libgraphviz-dev', 'graphviz-dev', 'mysql-server', 'libmysqlclient-dev', 'libgeos-dev', 'libreadline6', 'libreadline6-dev', 'mongodb', 'nodejs', 'mysql-client', 'virtualenvwrapper', 'libgeos-ruby1.8', 'lynx-cur', 'libxmlsec1-dev', 'swig']",,[] -openedx/openedx-wordpress-ecommerce,,,,True,2026-06-01,True,True,False,False,46,0,[],0,,0,0,,,0,[],46,"[""imagesize==2.0.0"", ""markupsafe==3.0.3"", ""certifi==2026.2.25"", ""watchfiles==1.1.1"", ""websockets==16.0"", ""build==1.4.2"", ""jinja2==3.1.6"", ""snowballstemmer==3.0.1"", ""pyproject-hooks==1.2.0"", ""sphinx-copybutton==0.5.2"", ""typing-extensions==4.15.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pygments==2.20.0"", ""sphinxcontrib-mermaid==2.0.1"", ""docutils==0.22.4"", ""sphinx-book-theme==1.2.0"", ""soupsieve==2.8.3"", ""accessible-pygments==0.0.5"", ""h11==0.16.0"", ""anyio==4.13.0"", ""click==8.3.2"", ""pip==26.0.1"", ""alabaster==1.0.0"", ""babel==2.18.0"", ""idna==3.11"", ""sphinx-autobuild==2025.8.25"", ""sphinxcontrib-applehelp==2.0.0"", ""requests==2.33.1"", ""sphinxcontrib-jsmath==1.0.1"", ""charset-normalizer==3.4.7"", ""colorama==0.4.6"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinx==9.1.0"", ""pyyaml==6.0.3"", ""beautifulsoup4==4.14.3"", ""packaging==26.0"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-devhelp==2.0.0"", ""setuptools==82.0.1"", ""pip-tools==7.5.3"", ""wheel==0.46.3"", ""uvicorn==0.44.0"", ""starlette==1.0.0"", ""urllib3==2.6.3"", ""roman-numerals==4.1.0"", ""sphinxcontrib-htmlhelp==2.1.0""]",0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,True,False,False,False,False,False,True,True,13,"{""total_duration"": ""8838 minutes 27 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""build-test"", ""duration"": ""0 minutes 10 seconds""}]}",Other,2023-06-05 21:25:23,main,You can sell your Open edX courses with WooCommerce using this free and open-source WordPress plugin.,2183,13,True,False,False,False,False,False,False,2026-05-20 00:04:34,GNU GPLv2,1,False,2477,0,0,3746,1993,0,0,False,False,False,False,False,False,False,,openedx,0,['https://wordpress.org/plugins/woocommerce: 429'],False,"['https://github.com/openedx/edx-platform', 'https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/decisions/0002-api-connection.html', 'https://openedx.org/terms-of-use/', 'https://github.com/openedx/openedx-wordpress-ecommerce/releases', 'https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/plugin_quickstart.html', 'https://github.com/openedx/openedx-wordpress-ecommerce/issues', 'https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/index.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-admin-console,,,,False,2026-06-01,False,False,False,False,22,0,,0,{},12,10,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/typescript-config"": ""1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/dom"": ""^10.4.1"", ""@testing-library/jest-dom"": ""^6.6.4"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""ts-jest"": ""^29.4.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-header"": ""^8.0.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.15.1"", ""@tanstack/react-query"": ""5.96.2"", ""lodash.debounce"": ""^4.0.8"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.1.2"", ""react-router-dom"": ""^6.30.3""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,6,"{""total_duration"": ""7165 minutes 10 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2025-09-23 11:32:49,master,Administrator console for the Open edX application,1412,8,True,False,False,False,False,False,False,2026-05-18 00:39:44,GNU AGPLv3,5,True,0,0,457,744,1565,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/openedx/frontend-app-admin-console/blob/main/LICENSE: 404'],True,"['https://img.shields.io/github/license/openedx/frontend-app-admin-console.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-admin-console/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-admin-console/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-admin-console/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-admin-console?branch=main', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/openedx-authz', 'https://github.com/openedx/frontend-plugin-framework', 'https://openedx.atlassian.net/wiki/x/M4B4MgE', 'https://openedx.atlassian.net/wiki/x/AgAwMQE', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-29,2026-03-30,3,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-template-application,,,,False,2026-06-01,True,True,False,False,28,0,,0,{},19,9,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/reactifex"": ""^2.2.0"", ""@edx/stylelint-config-edx"": ""^2.3.3"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""14.6.3"", ""@testing-library/jest-dom"": ""^6.9.1"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""glob"": ""11.1.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/frontend-component-footer"": ""^14.9.2"", ""@edx/frontend-component-header"": ""^8.0.0"", ""@edx/frontend-platform"": ""^8.5.1"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/paragon"": ""^23.14.9"", ""@tanstack/react-query"": ""^5.90.5"", ""classnames"": ""^2.5.1"", ""core-js"": ""3.49.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""regenerator-runtime"": ""0.14.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,48,"{""total_duration"": ""16515 minutes 33 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""1 minutes 52 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 5 seconds""}]}",Other,2018-02-27 18:34:11,master,A template repository for creating Open edX frontend applications. 💿➡️📀,17444,63,True,False,False,False,False,False,False,2026-06-01 00:26:46,GNU AGPLv3,23,True,0,0,464,667,1565,0,0,False,False,False,False,False,False,False,@edx/frontend-template-application,openedx,0,"['https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-application: 404', 'https://github.com/openedx/frontend-template-application/blob/main/LICENSE: 404']",True,"['https://github.com/openedx/paragon/?tab=readme-ov-file', 'https://github.com/openedx/brand-openedx/issues/23', 'https://github.com/openedx/frontend-template-application/tree/release/teak', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-template-application/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-template-application.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-template-application/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-template-application?branch=main']",True,True,False,False,,,True,2026-04-06,2025-10-20,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/typescript-config,,,,False,2026-06-01,False,False,False,False,0,0,,0,{},0,0,{},{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,False,False,True,3,"{""total_duration"": ""0 minutes 22 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 7 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2023-02-01 16:54:40,master,Common TypeScript configuration for Open edX,84,3,True,False,False,False,False,False,False,2026-05-20 13:18:07,GNU AGPLv3,1,True,0,0,0,0,0,0,0,False,False,False,False,False,False,False,@edx/typescript-config,openedx,0,"['https://www.npmjs.com/package/@edx/typescript-config: 403', 'https://www.npmjs.com/package/@edx/tpyescript-config: 403']",False,"['https://github.com/openedx/typescript-config/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/typescript-config/actions/workflows/release.yml/', 'https://img.shields.io/npm/v/@edx/typescript-config.svg', 'https://img.shields.io/npm/dt/@edx/typescript-config.svg', 'https://img.shields.io/npm/l/@edx/typescript-config.svg', 'https://github.com/openedx/typescript-config/blob/main/LICENSE', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release', 'https://www.typescriptlang.org/docs/handbook/tsconfig-json.html']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-plugin-aspects,,,,False,2026-06-01,False,False,False,False,21,0,,0,{},2,19,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/eslint-config"": ""^4.3.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""14.6.3"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.0.0"", ""@testing-library/user-event"": ""^14.6.1"", ""eslint"": ""^8.57.1"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-plugin-import"": ""^2.31.0"", ""eslint-plugin-jsx-a11y"": ""^6.10.2"", ""eslint-plugin-react"": ""^7.37.5"", ""eslint-plugin-react-hooks"": ""^4.6.2"", ""glob"": ""13.0.6"", ""husky"": ""9.1.7"", ""jest"": ""30.3.0"", ""react-test-renderer"": ""^18.3.1"", ""ts-jest"": ""^29.4.0"", ""typescript"": ""^4.9.5""}","{""@hookstate/core"": ""^4.0.2"", ""@superset-ui/embedded-sdk"": ""^0.3.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": ""10087 minutes 16 seconds"", ""checks"": [{""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2025-03-21 15:08:32,main,Frontend plugins for Aspects,2225,6,True,False,False,False,False,False,False,2026-05-25 06:04:54,GNU AGPLv3,2,True,118,0,464,864,1351,0,0,False,False,False,False,False,False,False,,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-aspects: 404'],True,"['https://img.shields.io/github/license/openedx/frontend-plugin-aspects.svg', 'https://github.com/openedx/frontend-plugin-aspects/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-plugin-aspects/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-plugin-aspects/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-plugin-aspects/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-plugin-aspects?branch=main', 'https://github.com/openedx/tutor-contrib-aspects', 'https://github.com/openedx/frontend-app-authoring.git', 'https://github.com/openedx/frontend-plugin-aspects.git', 'https://nodemon.io', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-05-25,2026-05-25,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xblocks-core,,,,True,2026-06-01,True,True,False,False,133,0,[],0,{},0,0,{},{},78,"[""edx-opaque-keys==4.0.0"", ""scipy==1.17.1"", ""typing-extensions==4.15.0"", ""django==5.2.14"", ""nh3==0.3.5"", ""code-annotations==3.0.0"", ""webencodings==0.5.1"", ""oauthlib==3.3.1"", ""random2==1.0.2"", ""pyparsing==3.3.2"", ""edxval==4.0.1"", ""six==1.17.0"", ""edx-toggles==6.0.0"", ""mako==1.3.12"", ""markupsafe==3.0.3"", ""web-fragments==4.0.0"", ""pyjwt[crypto]==2.13.0"", ""drf-jwt==1.19.2"", ""regex==2026.5.9"", ""django-waffle==5.0.0"", ""shapely==2.1.2"", ""certifi==2026.5.20"", ""cachetools==7.1.4"", ""html5lib==1.1"", ""mpmath==1.3.0"", ""wrapt==2.2.1"", ""django-crum==0.7.9"", ""semantic-version==2.10.0"", ""click==8.4.1"", ""nltk==3.9.4"", ""tqdm==4.67.3"", ""text-unidecode==1.3"", ""sympy==1.14.0"", ""webob==1.8.9"", ""pysrt==1.1.2"", ""pytz==2026.2"", ""requests==2.34.2"", ""edx-django-utils==8.0.1"", ""cffi==2.0.0"", ""chem==2.0.0"", ""chardet==7.4.3"", ""sqlparse==0.5.5"", ""jinja2==3.1.6"", ""xblock==6.1.0"", ""pynacl==1.6.2"", ""edx-drf-extensions==10.6.0"", ""joblib==1.5.3"", ""python-slugify==8.0.4"", ""edx-submissions==4.0.0"", ""django-storages==1.14.6"", ""python-dateutil==2.9.0.post0"", ""djangorestframework==3.17.1"", ""dnspython==2.8.0"", ""django-model-utils==5.0.0"", ""openedx-calc==5.0.0"", ""fs==2.4.16"", ""jsonfield==3.2.0"", ""numpy==2.4.6"", ""pyyaml==6.0.3"", ""defusedxml==0.7.1"", ""asgiref==3.11.1"", ""stevedore==5.8.0"", ""edx-codejail==4.1.0"", ""pycparser==3.0"", ""idna==3.16"", ""path==17.1.1"", ""charset-normalizer==3.4.7"", ""psutil==7.2.2"", ""lxml==6.1.1"", ""soupsieve==2.8.4"", ""urllib3==2.7.0"", ""cryptography==48.0.0"", ""beautifulsoup4==4.14.3"", ""simplejson==4.1.1"", ""pillow==12.2.0"", ""appdirs==1.4.4"", ""edx-django-release-util==1.5.0"", ""pymongo==4.17.0""]",133,"[""restructuredtext-lint==2.0.2"", ""edx-opaque-keys==4.0.0"", ""iniconfig==2.3.0"", ""sphinx-book-theme==1.2.0"", ""distlib==0.4.0"", ""scipy==1.17.1"", ""dill==0.4.1"", ""typing-extensions==4.15.0"", ""edx-lint==6.1.0"", ""django==5.2.14"", ""nh3==0.3.5"", ""colorama==0.4.6"", ""pylint-django==2.7.0"", ""code-annotations==3.0.0"", ""webencodings==0.5.1"", ""pytest-cov==7.1.0"", ""click-log==0.4.0"", ""oauthlib==3.3.1"", ""pylint-celery==0.3"", ""random2==1.0.2"", ""pyparsing==3.3.2"", ""edxval==4.0.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""six==1.17.0"", ""pycodestyle==2.14.0"", ""virtualenv==21.3.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tomli-w==1.2.0"", ""edx-toggles==6.0.0"", ""pygments==2.20.0"", ""mako==1.3.12"", ""markupsafe==3.0.3"", ""web-fragments==4.0.0"", ""pyjwt[crypto]==2.13.0"", ""drf-jwt==1.19.2"", ""regex==2026.5.9"", ""pytest-django==4.12.0"", ""django-waffle==5.0.0"", ""shapely==2.1.2"", ""certifi==2026.5.20"", ""cachetools==7.1.4"", ""filelock==3.29.0"", ""accessible-pygments==0.0.5"", ""html5lib==1.1"", ""doc8==2.0.0"", ""mpmath==1.3.0"", ""platformdirs==4.9.6"", ""wrapt==2.2.1"", ""django-crum==0.7.9"", ""semantic-version==2.10.0"", ""mccabe==0.7.0"", ""click==8.4.1"", ""docutils==0.21.2"", ""nltk==3.9.4"", ""tqdm==4.67.3"", ""wheel==0.47.0"", ""text-unidecode==1.3"", ""pylint-plugin-utils==0.9.0"", ""sympy==1.14.0"", ""webob==1.8.9"", ""babel==2.18.0"", ""pysrt==1.1.2"", ""pytz==2026.2"", ""requests==2.34.2"", ""tomlkit==0.15.0"", ""edx-django-utils==8.0.1"", ""pydata-sphinx-theme==0.16.1"", ""imagesize==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""isort==8.0.1"", ""cffi==2.0.0"", ""pyproject-hooks==1.2.0"", ""chem==2.0.0"", ""chardet==7.4.3"", ""tox==4.54.0"", ""coverage[toml]==7.14.0"", ""sqlparse==0.5.5"", ""pydocstyle==6.3.0"", ""jinja2==3.1.6"", ""xblock==6.1.0"", ""pynacl==1.6.2"", ""edx-drf-extensions==10.6.0"", ""joblib==1.5.3"", ""roman-numerals==4.1.0"", ""pytest==9.0.3"", ""pip==26.1.1"", ""astroid==4.0.4"", ""python-slugify==8.0.4"", ""snowballstemmer==3.1.0"", ""alabaster==1.0.0"", ""edx-submissions==4.0.0"", ""django-storages==1.14.6"", ""python-dateutil==2.9.0.post0"", ""setuptools==80.9.0"", ""djangorestframework==3.17.1"", ""dnspython==2.8.0"", ""django-model-utils==5.0.0"", ""openedx-calc==5.0.0"", ""fs==2.4.16"", ""pylint==4.0.5"", ""ddt==1.7.2"", ""jsonfield==3.2.0"", ""pluggy==1.6.0"", ""numpy==2.4.6"", ""python-discovery==1.3.1"", ""pyyaml==6.0.3"", ""defusedxml==0.7.1"", ""asgiref==3.11.1"", ""stevedore==5.8.0"", ""edx-codejail==4.1.0"", ""pycparser==3.0"", ""idna==3.16"", ""sphinx==9.1.0"", ""pyproject-api==1.10.0"", ""build==1.5.0"", ""path==17.1.1"", ""charset-normalizer==3.4.7"", ""pip-tools==7.5.3"", ""psutil==7.2.2"", ""lxml==6.1.1"", ""soupsieve==2.8.4"", ""cryptography==48.0.0"", ""urllib3==2.7.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""beautifulsoup4==4.14.3"", ""simplejson==4.1.1"", ""pillow==12.2.0"", ""appdirs==1.4.4"", ""packaging==26.2"", ""edx-django-release-util==1.5.0"", ""pymongo==4.17.0""]",15,"[""edx-submissions"", ""django-storages"", ""edx-django-utils"", ""edx-drf-extensions"", ""edx-opaque-keys"", ""web-fragments"", ""code-annotations"", ""django-waffle"", ""djangorestframework"", ""pylint-django"", ""edx-toggles"", ""xblock"", ""edx-django-release-util"", ""pytest-django"", ""edxval""]",19,"[""edx-opaque-keys"", ""django-waffle"", ""xblock"", ""jsonfield"", ""edx-django-release-util"", ""web-fragments"", ""djangorestframework"", ""django-crum"", ""pytest-django"", ""edx-submissions"", ""django-storages"", ""edx-django-utils"", ""edx-drf-extensions"", ""code-annotations"", ""pylint-django"", ""edxval"", ""django-model-utils"", ""drf-jwt"", ""edx-toggles""]",11,"[""edx-submissions"", ""edx-django-utils"", ""edx-drf-extensions"", ""edx-opaque-keys"", ""web-fragments"", ""code-annotations"", ""django-waffle"", ""edx-toggles"", ""xblock"", ""edx-django-release-util"", ""edxval""]",False,,True,True,True,False,False,True,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,7,"{""total_duration"": ""168 minutes 50 seconds"", ""checks"": [{""name"": ""Analyze (javascript-typescript)"", ""duration"": ""2 minutes 3 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 27 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Analyze (actions)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2024-06-26 15:14:53,main,,22301,9,True,False,False,False,False,False,False,2026-06-01 00:29:08,GNU AGPLv3,5,False,389247,0,1373326,1707755,5025,1708301,0,False,False,False,False,False,False,False,,openedx,1,"['https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /software/gettext/manual/html_node/PO-Files.html (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))']",False,"['https://github.com/openedx/xblocks-extra', 'https://github.com/openedx/edx-ora2', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html', 'https://github.com/openedx/i18n-tools', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html', 'https://github.com/openedx/openedx-translations', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://developers.transifex.com/docs/cli', 'https://docs.djangoproject.com/en/5.2/topics/i18n/translation/']",True,True,False,True,.readthedocs.yaml,2,True,2026-04-01,,0,False,True,False,True,,False,xblocks-contrib,"['3', '3.12']",https://github.com/openedx/xblocks-contrib,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/credentials,,,,True,2026-06-01,True,True,False,False,236,0,[],0,{},14,21,"{""@babel/core"": ""7.29.0"", ""@babel/eslint-parser"": ""7.28.6"", ""@babel/plugin-proposal-object-rest-spread"": ""7.20.7"", ""@babel/plugin-transform-modules-commonjs"": ""7.28.6"", ""@babel/plugin-transform-object-assign"": ""7.27.1"", ""@babel/preset-env"": ""7.29.2"", ""@edx/eslint-config"": ""4.4.0"", ""babel-loader"": ""10.1.1"", ""eslint"": ""8.57.1"", ""eslint-plugin-import"": ""2.32.0"", ""eslint-plugin-jsx-a11y"": ""6.10.2"", ""jasmine-core"": ""6.1.0"", ""jasmine-jquery"": ""2.1.1"", ""karma"": ""6.4.4"", ""karma-coverage"": ""2.2.1"", ""karma-firefox-launcher"": ""2.1.3"", ""karma-jasmine"": ""5.1.0"", ""karma-jasmine-jquery-2"": ""0.1.1"", ""karma-spec-reporter"": ""0.0.36"", ""karma-webpack"": ""5.0.1"", ""webpack-cli"": ""6.0.1""}","{""@fortawesome/fontawesome-svg-core"": ""^6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""^6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""^6.7.2"", ""@openedx/paragon"": ""^23.3.1"", ""bi-app-sass"": ""1.1.0"", ""css-loader"": ""7.1.4"", ""css-minimizer-webpack-plugin"": ""7.0.4"", ""file-loader"": ""6.2.0"", ""mini-css-extract-plugin"": ""2.10.2"", ""sass"": ""1.99.0"", ""sass-loader"": ""16.0.7"", ""url-loader"": ""4.1.1"", ""webpack"": ""5.106.0"", ""webpack-bundle-tracker"": ""3.2.3""}",134,"[""google-resumable-media==2.8.0"", ""firebase-admin==7.1.0"", ""zope-interface==8.2"", ""requests==2.32.5"", ""pyyaml==6.0.3"", ""inflection==0.5.1"", ""stevedore==5.6.0"", ""backoff==2.2.1"", ""attrs==25.4.0"", ""edx-django-utils==8.0.1"", ""google-cloud-core==2.5.0"", ""requests-oauthlib==2.0.0"", ""httpx[http2]==0.28.1"", ""django-extensions==4.1"", ""anyio==4.12.1"", ""asgiref==3.11.1"", ""bleach==6.3.0"", ""django-ratelimit==4.1.0"", ""certifi==2026.1.4"", ""django-waffle==5.0.0"", ""django-appconf==1.2.0"", ""python-memcached==1.62"", ""sqlparse==0.5.5"", ""greenlet==3.3.1"", ""dnspython==2.8.0"", ""pytz==2025.2"", ""django-simple-history==3.11.0"", ""sailthru-client==2.2.3"", ""googleapis-common-protos==1.72.0"", ""s3transfer==0.16.0"", ""openedx-atlas==0.7.0"", ""python-dateutil==2.9.0.post0"", ""httpcore==1.0.9"", ""pynacl==1.6.2"", ""defusedxml==0.7.1"", ""google-auth==2.48.0"", ""social-auth-core==4.8.3"", ""edx-ace==1.15.0"", ""django-rest-swagger==2.2.0"", ""drf-yasg==1.21.14"", ""nodeenv==1.10.0"", ""click==8.3.1"", ""rsa==4.9.1"", ""text-unidecode==1.3"", ""django-ses==4.6.0"", ""lxml[html-clean]==6.0.2"", ""edx-toggles==5.4.1"", ""djangorestframework==3.16.1"", ""h11==0.16.0"", ""django-config-models==2.9.0"", ""fastavro==1.12.1"", ""python-slugify==8.0.4"", ""oauthlib==3.3.1"", ""django-webpack-loader==3.2.3"", ""path==16.16.0"", ""segment-analytics-python==2.3.5"", ""simplejson==3.20.2"", ""django-statici18n==2.6.0"", ""django-storages==1.14.6"", ""google-crc32c==1.8.0"", ""openedx-events==10.5.0"", ""pycparser==3.0"", ""jinja2==3.1.6"", ""webencodings==0.5.1"", ""edx-ccx-keys==2.0.2"", ""cachecontrol==0.14.4"", ""cffi==2.0.0"", ""gunicorn==25.0.1"", ""hpack==4.1.0"", ""qrcode==8.2"", ""google-api-core[grpc]==2.29.0"", ""psutil==7.2.2"", ""edx-rest-api-client==6.2.0"", ""typing-extensions==4.15.0"", ""proto-plus==1.27.1"", ""idna==3.11"", ""pyjwt[crypto]==2.10.1"", ""social-auth-app-django==5.4.3"", ""redis==7.1.0"", ""google-cloud-storage==3.9.0"", ""google-cloud-firestore==2.23.0"", ""python3-openid==3.2.0"", ""grpcio==1.76.0"", ""django-filter==25.2"", ""polib==1.2.0"", ""gevent==25.9.1"", ""coreapi==2.3.3"", ""edx-drf-extensions==10.6.0"", ""pygments==2.19.2"", ""mysqlclient==2.2.7"", ""botocore==1.42.40"", ""pyasn1==0.6.2"", ""openapi-codec==1.3.2"", ""django-crum==0.7.9"", ""edx-django-sites-extensions==5.1.0"", ""grpcio-status==1.76.0"", ""openedx-didkit==0.3.5"", ""walrus==0.9.8"", ""msgpack==1.1.2"", ""itypes==1.2.0"", ""urllib3==2.6.3"", ""xss-utils==0.8.0"", ""protobuf==6.33.5"", ""drf-jwt==1.19.2"", ""markdown==3.10.1"", ""h2==4.3.0"", ""django-model-utils==5.0.0"", ""pymemcache==4.0.0"", ""django-push-notifications==3.3.0"", ""django-cors-headers==4.9.0"", ""edx-django-release-util==1.5.0"", ""edx-i18n-tools==1.9.0"", ""uritemplate==4.2.0"", ""django==5.2.11"", ""semantic-version==2.10.0"", ""zope-event==6.1"", ""cryptography==46.0.4"", ""pillow==12.1.0"", ""jmespath==1.1.0"", ""packaging==26.0"", ""edx-event-bus-kafka==6.1.0"", ""lxml-html-clean==0.4.3"", ""markupsafe==3.0.3"", ""pyasn1-modules==0.4.2"", ""coreschema==0.0.4"", ""pymongo==4.16.0"", ""hyperframe==6.1.0"", ""edx-opaque-keys[django]==3.0.0"", ""edx-auth-backends==4.6.2"", ""charset-normalizer==3.4.4"", ""boto3==1.42.40"", ""code-annotations==2.3.0"", ""six==1.17.0"", ""django-sortedm2m==4.0.0""]",201,"[""google-resumable-media==2.8.0"", ""dill==0.4.1"", ""firebase-admin==7.1.0"", ""zope-interface==8.2"", ""requests==2.32.5"", ""pyyaml==6.0.3"", ""iniconfig==2.3.0"", ""inflection==0.5.1"", ""stevedore==5.6.0"", ""backoff==2.2.1"", ""attrs==25.4.0"", ""django-stubs==5.2.9"", ""edx-django-utils==8.0.1"", ""google-cloud-core==2.5.0"", ""requests-oauthlib==2.0.0"", ""types-pyyaml==6.0.12.20250915"", ""httpx[http2]==0.28.1"", ""django-extensions==4.1"", ""anyio==4.12.1"", ""asgiref==3.11.1"", ""bleach==6.3.0"", ""distlib==0.4.0"", ""django-ratelimit==4.1.0"", ""certifi==2026.1.4"", ""filelock==3.20.3"", ""django-waffle==5.0.0"", ""django-appconf==1.2.0"", ""sqlparse==0.5.5"", ""python-memcached==1.62"", ""greenlet==3.3.1"", ""dnspython==2.8.0"", ""pytz==2025.2"", ""pathspec==1.0.4"", ""soupsieve==2.8.3"", ""sphinx-book-theme==1.1.4"", ""django-simple-history==3.11.0"", ""cachetools==7.0.0"", ""sailthru-client==2.2.3"", ""googleapis-common-protos==1.72.0"", ""s3transfer==0.16.0"", ""openedx-atlas==0.7.0"", ""python-dateutil==2.9.0.post0"", ""httpcore==1.0.9"", ""pynacl==1.6.2"", ""defusedxml==0.7.1"", ""sphinxcontrib-applehelp==2.0.0"", ""click-log==0.4.0"", ""google-auth==2.48.0"", ""social-auth-core==4.8.3"", ""httpretty==1.1.4"", ""edx-ace==1.15.0"", ""tox==4.34.1"", ""django-rest-swagger==2.2.0"", ""drf-yasg==1.21.14"", ""virtualenv==20.36.1"", ""nodeenv==1.10.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""coverage==7.13.3"", ""click==8.3.1"", ""pytokens==0.4.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""rsa==4.9.1"", ""text-unidecode==1.3"", ""django-ses==4.6.0"", ""lxml[html-clean]==6.0.2"", ""edx-toggles==5.4.1"", ""django-debug-toolbar==6.2.0"", ""djangorestframework==3.16.1"", ""sphinxcontrib-jsmath==1.0.1"", ""h11==0.16.0"", ""django-config-models==2.9.0"", ""fastavro==1.12.1"", ""wheel==0.46.3"", ""python-slugify==8.0.4"", ""oauthlib==3.3.1"", ""django-webpack-loader==3.2.3"", ""path==16.16.0"", ""imagesize==1.4.1"", ""mypy-extensions==1.1.0"", ""segment-analytics-python==2.3.5"", ""django-statici18n==2.6.0"", ""django-storages==1.14.6"", ""simplejson==3.20.2"", ""pip==25.3"", ""faker==40.1.2"", ""google-crc32c==1.8.0"", ""colorama==0.4.6"", ""openedx-events==10.5.0"", ""pycparser==3.0"", ""jinja2==3.1.6"", ""webencodings==0.5.1"", ""edx-ccx-keys==2.0.2"", ""setuptools==80.10.2"", ""cachecontrol==0.14.4"", ""pydata-sphinx-theme==0.15.4"", ""cffi==2.0.0"", ""pylint==4.0.4"", ""mccabe==0.7.0"", ""gunicorn==25.0.1"", ""pip-tools==7.5.2"", ""hpack==4.1.0"", ""qrcode==8.2"", ""google-api-core[grpc]==2.29.0"", ""testfixtures==10.0.0"", ""psutil==7.2.2"", ""edx-rest-api-client==6.2.0"", ""pylint-plugin-utils==0.9.0"", ""pytest==9.0.2"", ""pyproject-hooks==1.2.0"", ""typing-extensions==4.15.0"", ""proto-plus==1.27.1"", ""idna==3.11"", ""build==1.4.0"", ""pyjwt[crypto]==2.10.1"", ""social-auth-app-django==5.4.3"", ""responses==0.25.8"", ""django-stubs-ext==5.2.9"", ""isort==7.0.0"", ""redis==7.1.0"", ""google-cloud-storage==3.9.0"", ""google-cloud-firestore==2.23.0"", ""platformdirs==4.5.1"", ""python3-openid==3.2.0"", ""pywatchman==3.0.0 ; \""linux\"" in sys_platform"", ""grpcio==1.76.0"", ""polib==1.2.0"", ""django-filter==25.2"", ""gevent==25.9.1"", ""pytest-django==4.11.1"", ""astroid==4.0.3"", ""coreapi==2.3.3"", ""edx-drf-extensions==10.6.0"", ""pygments==2.19.2"", ""babel==2.18.0"", ""mysqlclient==2.2.7"", ""pyasn1==0.6.2"", ""botocore==1.42.40"", ""openapi-codec==1.3.2"", ""django-crum==0.7.9"", ""alabaster==1.0.0"", ""edx-django-sites-extensions==5.1.0"", ""grpcio-status==1.76.0"", ""openedx-didkit==0.3.5"", ""pluggy==1.6.0"", ""walrus==0.9.8"", ""msgpack==1.1.2"", ""docutils==0.22.4"", ""itypes==1.2.0"", ""urllib3==2.6.3"", ""xss-utils==0.8.0"", ""protobuf==6.33.5"", ""drf-jwt==1.19.2"", ""markdown==3.10.1"", ""chardet==5.2.0"", ""django-model-utils==5.0.0"", ""h2==4.3.0"", ""sphinx==9.1.0"", ""mypy==1.19.1"", ""pymemcache==4.0.0"", ""django-push-notifications==3.3.0"", ""django-cors-headers==4.9.0"", ""edx-django-release-util==1.5.0"", ""pyproject-api==1.10.0"", ""edx-lint==5.6.0"", ""edx-i18n-tools==1.9.0"", ""uritemplate==4.2.0"", ""django==5.2.11"", ""semantic-version==2.10.0"", ""sphinxcontrib-qthelp==2.0.0"", ""librt==0.7.8"", ""cryptography==46.0.4"", ""zope-event==6.1"", ""pillow==12.1.0"", ""jmespath==1.1.0"", ""factory-boy==3.3.3"", ""packaging==26.0"", ""edx-event-bus-kafka==6.1.0"", ""pylint-django==2.7.0"", ""roman-numerals==4.1.0"", ""lxml-html-clean==0.4.3"", ""tomlkit==0.14.0"", ""markupsafe==3.0.3"", ""pyasn1-modules==0.4.2"", ""coreschema==0.0.4"", ""pylint-celery==0.3"", ""accessible-pygments==0.0.5"", ""jsx-lexer==2.0.1"", ""pymongo==4.16.0"", ""black==26.1.0"", ""edx-opaque-keys[django]==3.0.0"", ""hyperframe==6.1.0"", ""edx-auth-backends==4.6.2"", ""charset-normalizer==3.4.4"", ""snowballstemmer==3.0.1"", ""boto3==1.42.40"", ""code-annotations==2.3.0"", ""beautifulsoup4==4.14.3"", ""six==1.17.0"", ""django-sortedm2m==4.0.0"", ""ddt==1.7.2""]",27,"[""django-appconf"", ""social-auth-app-django"", ""django-waffle"", ""django-cors-headers"", ""django-debug-toolbar"", ""edx-django-release-util"", ""edx-ace"", ""edx-drf-extensions"", ""edx-auth-backends"", ""pytest-django"", ""django-storages"", ""django-extensions"", ""django-config-models"", ""edx-django-utils"", ""django-ratelimit"", ""django-webpack-loader"", ""code-annotations"", ""edx-rest-api-client"", ""django-sortedm2m"", ""django-filter"", ""edx-i18n-tools"", ""edx-toggles"", ""edx-django-sites-extensions"", ""djangorestframework"", ""xss-utils"", ""factory-boy"", ""pylint-django""]",35,"[""django-appconf"", ""social-auth-app-django"", ""django-statici18n"", ""django-waffle"", ""django-cors-headers"", ""django-debug-toolbar"", ""edx-django-release-util"", ""edx-ace"", ""edx-drf-extensions"", ""edx-auth-backends"", ""django-ses"", ""pytest-django"", ""django-crum"", ""django-storages"", ""django-simple-history"", ""django-extensions"", ""django-config-models"", ""edx-django-utils"", ""django-ratelimit"", ""django-webpack-loader"", ""code-annotations"", ""edx-rest-api-client"", ""django-model-utils"", ""django-rest-swagger"", ""django-sortedm2m"", ""django-filter"", ""edx-i18n-tools"", ""drf-jwt"", ""drf-yasg"", ""edx-toggles"", ""edx-django-sites-extensions"", ""djangorestframework"", ""xss-utils"", ""factory-boy"", ""pylint-django""]",20,"[""django-appconf"", ""social-auth-app-django"", ""django-waffle"", ""django-cors-headers"", ""django-debug-toolbar"", ""edx-django-release-util"", ""edx-ace"", ""edx-drf-extensions"", ""edx-auth-backends"", ""django-extensions"", ""django-config-models"", ""edx-django-utils"", ""django-webpack-loader"", ""code-annotations"", ""edx-rest-api-client"", ""django-filter"", ""edx-i18n-tools"", ""edx-toggles"", ""edx-django-sites-extensions"", ""xss-utils""]",False,,True,False,True,True,False,False,True,True,True,True,False,True,True,True,False,False,True,False,False,True,True,33,"{""total_duration"": ""5 minutes 43 seconds"", ""checks"": [{""name"": ""unit_tests (3.12, django52)"", ""duration"": ""5 minutes 43 seconds""}, {""name"": ""quality_and_translations_tests (3.12)"", ""duration"": ""2 minutes 16 seconds""}, {""name"": ""docs (3.12)"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""check migrations (3.12)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2015-12-11 14:09:03,master,Service hosting course and program certificates,28443,82,True,False,False,False,False,False,False,2026-05-30 02:10:57,GNU AGPLv3,9,True,0,0,24727,12460,7611,1209816,0,False,True,True,False,False,False,False,,openedx,4,[],False,"['https://github.com/openedx/credentials/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/credentials/actions?query=workflow%3ACI', 'https://codecov.io/github/openedx/credentials/coverage.svg?branch=master', 'https://codecov.io/github/openedx/credentials?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/credentials.svg', 'https://github.com/openedx/credentials/blob/master/LICENSE', 'https://github.com/openedx/openedx-platform/tree/master', 'https://docs.tutor.edly.io/', 'https://github.com/overhangio/tutor-credentials', 'https://github.com/openedx/frontend-app-learner-record', 'https://edx-credentials.readthedocs.io/en/latest/', 'https://github.com/openedx/credentials/tree/master/docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'http://openedx.slack.com/']",True,True,False,True,.readthedocs.yaml,2,True,2026-04-09,2025-08-21,5,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/wg-build-test-release,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""0 minutes 24 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2021-02-01 17:07:12,main,Open edX Build / Test / Release Working Group,4307,14,True,False,False,False,False,False,False,2026-05-19 12:26:46,,0,False,0,0,0,5560,0,11553,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/build-test-release-wg/projects', 'https://discuss.openedx.org/c/working-groups/build-test-release/30', 'https://calendar.google.com/calendar/u/0?cid=Y192ODZzaHJuZWdzaHNxZ3A0Zmoyazk0dTdiY0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3185508485/BTR+Meeting+Minutes', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/1022099494/Build+-+Test+-+Release+Working+Group']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/xblock-lti-consumer,,,,True,2026-06-01,True,True,False,False,128,0,[],0,,0,0,,,46,"[""dnspython==2.8.0"", ""fs==2.4.16"", ""markupsafe==3.0.3"", ""pymongo==4.16.0"", ""django-appconf==1.2.0"", ""webob==1.8.9"", ""click==8.3.2"", ""edx-django-utils==8.0.1"", ""lazy==1.6"", ""pynacl==1.6.2"", ""django-statici18n==2.7.1"", ""django-filter==25.2"", ""lxml==6.1.0"", ""openedx-events==11.1.1"", ""six==1.17.0"", ""pycryptodomex==3.23.0"", ""pyyaml==6.0.3"", ""django-waffle==5.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""pyjwt==2.12.1"", ""djangorestframework==3.17.1"", ""django-crum==0.7.9"", ""python-dateutil==2.9.0.post0"", ""bleach==6.3.0"", ""simplejson==4.0.1"", ""jsonfield==3.2.0"", ""attrs==26.1.0"", ""stevedore==5.7.0"", ""edx-ccx-keys==2.0.2"", ""xblock==6.0.0"", ""appdirs==1.4.4"", ""mako==1.3.11"", ""fastavro==1.12.1"", ""django==5.2.13"", ""psutil==7.2.2"", ""pycparser==3.0"", ""webencodings==0.5.1"", ""pytz==2026.1.post1"", ""openedx-filters==3.1.0"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""cffi==2.0.0"", ""django-config-models==3.0.0"", ""asgiref==3.11.1"", ""web-fragments==4.0.0"", ""oauthlib==3.3.1""]",128,"[""webob==1.8.9"", ""mccabe==0.7.0"", ""mock==5.2.0"", ""six==1.17.0"", ""virtualenv==21.2.4"", ""coveralls==4.1.0"", ""django-waffle==5.0.0"", ""binaryornot==0.6.0"", ""pylint-django==2.7.0"", ""docutils==0.22.4"", ""distlib==0.4.0"", ""boto3==1.42.91"", ""wheel==0.46.3"", ""certifi==2026.2.25"", ""django==5.2.13"", ""readme-renderer==44.0"", ""pycparser==3.0"", ""pypng==0.20220715.0"", ""pygments==2.20.0"", ""botocore==1.42.91"", ""pycodestyle==2.14.0"", ""cachetools==7.0.5"", ""markupsafe==3.0.3"", ""pymongo==4.16.0"", ""asgiref==3.11.1"", ""jaraco-context==6.1.2"", ""keyring==25.7.0"", ""fs==2.4.16"", ""pip==26.0.1"", ""pyproject-api==1.10.0"", ""lazy==1.6"", ""pynacl==1.6.2"", ""mdurl==0.1.2"", ""markdown-it-py==4.0.0"", ""django-statici18n==2.7.1"", ""jaraco-functools==4.4.0"", ""path==16.16.0"", ""dill==0.4.1"", ""lxml==6.1.0"", ""astroid==4.0.4"", ""pyyaml==6.0.3"", ""edx-opaque-keys[django]==4.0.0"", ""cookiecutter==2.7.1"", ""simplejson==4.0.1"", ""jsonfield==3.2.0"", ""python-discovery==1.2.2"", ""edx-ccx-keys==2.0.2"", ""pyproject-hooks==1.2.0"", ""twine==6.2.0"", ""fastavro==1.12.1"", ""coverage[toml]==7.13.5"", ""ddt==1.7.2"", ""platformdirs==4.9.6"", ""typing-extensions==4.15.0"", ""nh3==0.3.4"", ""django-config-models==3.0.0"", ""urllib3==1.26.20"", ""dnspython==2.8.0"", ""typer==0.24.1"", ""django==4.2.24"", ""django-appconf==1.2.0"", ""jeepney==0.9.0"", ""click==8.3.2"", ""cryptography==46.0.7"", ""charset-normalizer==3.4.7"", ""secretstorage==3.5.0"", ""pycryptodomex==3.23.0"", ""filelock==3.29.0"", ""pylint==4.0.5"", ""more-itertools==11.0.2"", ""python-dateutil==2.9.0.post0"", ""polib==1.2.0"", ""setuptools==82.0.1"", ""tomli-w==1.2.0"", ""text-unidecode==1.3"", ""tox==4.53.0"", ""xblock-sdk==0.14.0"", ""pylint-plugin-utils==0.9.0"", ""idna==3.11"", ""requests==2.33.1"", ""webencodings==0.5.1"", ""code-annotations==3.0.0"", ""arrow==1.4.0"", ""pytz==2026.1.post1"", ""packaging==26.1"", ""rfc3986==2.0.0"", ""cffi==2.0.0"", ""rich==15.0.0"", ""edx-lint==6.0.0"", ""click-log==0.4.0"", ""lxml-html-clean==0.4.4"", ""edx-django-utils==8.0.1"", ""django-filter==25.2"", ""openedx-events==11.1.1"", ""id==1.5.0"", ""build==1.4.3"", ""s3transfer==0.16.0"", ""colorama==0.4.6"", ""pyjwt==2.12.1"", ""djangorestframework==3.17.1"", ""isort==8.0.1"", ""django-crum==0.7.9"", ""bleach==6.3.0"", ""jaraco-classes==3.4.0"", ""attrs==26.1.0"", ""stevedore==5.7.0"", ""edx-i18n-tools==2.0.0"", ""xblock==6.0.0"", ""requests-toolbelt==1.0.0"", ""appdirs==1.4.4"", ""jinja2==3.1.6"", ""jmespath==1.1.0"", ""mako==1.3.11"", ""annotated-doc==0.0.4"", ""shellingham==1.5.4"", ""fs-s3fs==1.1.1"", ""python-slugify==8.0.4"", ""pip-tools==7.5.3"", ""psutil==7.2.2"", ""pylint-celery==0.3"", ""pluggy==1.6.0"", ""sqlparse==0.5.5"", ""openedx-filters==3.1.0"", ""tomlkit==0.14.0"", ""lxml[html-clean]==6.1.0"", ""tzdata==2026.1"", ""web-fragments==4.0.0"", ""oauthlib==3.3.1""]",12,"[""edx-django-utils"", ""xblock-sdk"", ""edx-i18n-tools"", ""web-fragments"", ""django-config-models"", ""djangorestframework"", ""pylint-django"", ""xblock"", ""django-filter"", ""django-appconf"", ""django-waffle"", ""code-annotations""]",15,"[""edx-django-utils"", ""xblock-sdk"", ""edx-i18n-tools"", ""django-crum"", ""web-fragments"", ""django-config-models"", ""djangorestframework"", ""pylint-django"", ""xblock"", ""django-filter"", ""django-appconf"", ""django-waffle"", ""jsonfield"", ""django-statici18n"", ""code-annotations""]",10,"[""edx-django-utils"", ""xblock-sdk"", ""edx-i18n-tools"", ""web-fragments"", ""django-config-models"", ""xblock"", ""django-filter"", ""django-appconf"", ""django-waffle"", ""code-annotations""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,False,True,52,"{""total_duration"": ""646 minutes 3 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""5 minutes 18 seconds""}, {""name"": ""Dependabot"", ""duration"": ""3 minutes 3 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 18 seconds""}]}",Other,2015-11-09 15:21:44,master,,1994,97,True,False,False,False,False,False,False,2026-05-31 19:03:37,GNU AGPLv3,4,True,7508,0,52292,170308,3797,879058,0,False,True,False,False,True,False,False,,openedx,4,[],True,"['https://docs.tutor.edly.io/configuration.html', 'https://github.com/openedx/xblock-lti-consumer/blob/v9.14.2/README.rst', 'http://lti.tools/saltire/', 'https://docs.openedx.org/en/latest/educators/how-tos/course_development/exercise_tools/set_up_lti_1_1_component.html', 'https://saltire.lti.app/tool', 'https://saltire.lti.app/tool?norefresh', 'https://lti-ri.imsglobal.org/lti/tools/', 'https://lti-ri.imsglobal.org/lti/tools', 'https://lti-ri.imsglobal.org/keygen/index', 'https://docs.openedx.org/en/latest/educators/how-tos/course_development/exercise_tools/set_up_lti_1_3_component.html', 'http://www.imsglobal.org/spec/lti-bo/v1p1/', 'https://github.com/openedx/xblock-lti-consumer/tree/master/docs/basic_outcomes_service.rst', 'https://www.imsglobal.org/lti/model/uml/purl.imsglobal.org/vocab/lis/v2/outcomes/Result/service.html', 'https://github.com/openedx/xblock-lti-consumer/tree/master/docs/result_service.rst', 'https://github.com/open-craft/openedx-ltistore', 'https://discuss.openedx.org', 'https://github.com/openedx/xblock-lti-consumer/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/xblock-lti-consumer', 'https://github.com/openedx/xblock-lti-consumer/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/xblock-lti-consumer/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/openedx/xblock-lti-consumer/coverage.svg?branch=master', 'https://codecov.io/github/openedx/xblock-lti-consumer?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/xblock-lti-consumer.svg', 'https://github.com/openedx/edx-rest-api-client/blob/master/LICENSE', 'https://img.shields.io/pypi/v/lti-consumer-xblock.svg', 'https://pypi.python.org/pypi/lti-consumer-xblock/']",True,True,False,False,,,False,,,,False,True,False,False,,False,lti-consumer-xblock,"['3', '3.12']",https://github.com/openedx/xblock-lti-consumer,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-firebase-analytics-ios,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2024-10-11 09:09:07,main,,23,3,True,False,False,False,False,False,False,2026-05-30 15:29:05,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/user-attachments/assets/fdd60f8b-bd61-4c3d-b97f-4b28323ec369: 403', 'https://github.com/user-attachments/assets/ef7b07a5-9fdf-4bbe-b47f-ba328a6faafb: 403']",False,"['https://github.com/openedx/openedx-app-firebase-analytics-ios', 'https://firebase.google.com/docs/ios/setup']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/pr_watcher_configuration,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,True,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": """", ""checks"": []}",Other,2020-03-16 15:27:27,master,Configuration for pr_watcher_notifier on Heroku,20,4,True,False,False,False,False,False,False,2024-12-16 20:05:07,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://github.com/open-craft/pr_watcher_notifier'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/django-user-tasks,,,,True,2026-06-01,True,True,False,False,144,0,[],0,,0,0,,,26,"[""python-dateutil==2.9.0.post0"", ""drf-yasg==1.21.15"", ""click-repl==0.3.0"", ""sqlparse==0.5.5"", ""kombu==5.6.2"", ""billiard==4.2.4"", ""six==1.17.0"", ""uritemplate==4.2.0"", ""click-plugins==1.1.1.2"", ""celery==5.6.3"", ""django==5.2.14"", ""tzlocal==5.3.1"", ""tzdata==2026.2"", ""pytz==2026.2"", ""asgiref==3.11.1"", ""vine==5.1.0"", ""django-model-utils==5.0.0"", ""wcwidth==0.7.0"", ""pyyaml==6.0.3"", ""prompt-toolkit==3.0.52"", ""click==8.3.3"", ""click-didyoumean==0.3.1"", ""inflection==0.5.1"", ""packaging==26.2"", ""djangorestframework==3.17.1"", ""amqp==5.3.1""]",144,"[""iniconfig==2.3.0"", ""id==1.6.1"", ""nh3==0.3.5"", ""requests==2.33.1"", ""mistune==3.2.1"", ""readme-renderer==44.0"", ""pygments==2.20.0"", ""python-discovery==1.3.0"", ""pycodestyle==2.14.0"", ""accessible-pygments==0.0.5"", ""sphinxcontrib-openapi==0.9.0"", ""edx-lint==6.1.0"", ""simplejson==4.1.1"", ""click-log==0.4.0"", ""django==5.2.14"", ""keyring==25.7.0"", ""edx-i18n-tools==2.0.0"", ""pytz==2026.2"", ""asgiref==3.11.1"", ""botocore==1.43.6"", ""secretstorage==3.5.0"", ""path==16.16.0"", ""markdown-it-py==4.2.0"", ""pytest==9.0.3"", ""pytest-cov==7.1.0"", ""jsonschema==4.26.0"", ""click-didyoumean==0.3.1"", ""inflection==0.5.1"", ""jsonschema-specifications==2025.9.1"", ""coverage[toml]==7.13.5"", ""twine==6.2.0"", ""djangorestframework==3.17.1"", ""platformdirs==4.9.6"", ""referencing==0.37.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pip==26.1.1"", ""dill==0.4.1"", ""pytest-django==4.12.0"", ""sphinx-mdinclude==0.6.2"", ""drf-yasg==1.21.15"", ""coreapi==2.3.3"", ""tomli-w==1.2.0"", ""virtualenv==21.3.1"", ""click-repl==0.3.0"", ""doc8==2.0.0"", ""kombu==5.6.2"", ""stevedore==5.7.0"", ""pylint-celery==0.3"", ""babel==2.18.0"", ""mock==5.2.0"", ""wheel==0.47.0"", ""alabaster==1.0.0"", ""uritemplate==4.2.0"", ""mdurl==0.1.2"", ""tomlkit==0.14.0"", ""jaraco-functools==4.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""click-plugins==1.1.1.2"", ""code-annotations==3.0.0"", ""pydocstyle==6.3.0"", ""build==1.5.0"", ""pylint-plugin-utils==0.9.0"", ""rules==3.5"", ""sphinxcontrib-applehelp==2.0.0"", ""polib==1.2.0"", ""python-slugify==8.0.4"", ""lxml-html-clean==0.4.4"", ""pycparser==3.0"", ""jaraco-classes==3.4.0"", ""wcwidth==0.7.0"", ""jaraco-context==6.1.2"", ""click==8.3.3"", ""coreschema==0.0.4"", ""sphinx-book-theme==1.2.0"", ""urllib3==2.7.0"", ""markupsafe==3.0.3"", ""python-dateutil==2.9.0.post0"", ""idna==3.13"", ""pyproject-hooks==1.2.0"", ""certifi==2026.4.22"", ""six==1.17.0"", ""text-unidecode==1.3"", ""sphinxcontrib-qthelp==2.0.0"", ""soupsieve==2.8.3"", ""itypes==1.2.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""s3transfer==0.17.0"", ""jinja2==3.1.6"", ""sphinxcontrib-jsmath==1.0.1"", ""pydata-sphinx-theme==0.16.1"", ""picobox==4.0.0"", ""rfc3986==2.0.0"", ""tzdata==2026.2"", ""pylint==4.0.5"", ""vine==5.1.0"", ""boto3==1.43.6"", ""django-model-utils==5.0.0"", ""snowballstemmer==3.0.1"", ""sphinxcontrib-httpdomain==2.0.0"", ""pyproject-api==1.10.0"", ""cachetools==7.1.1"", ""restructuredtext-lint==2.0.2"", ""distlib==0.4.0"", ""pyyaml==6.0.3"", ""astroid==4.0.4"", ""django-rest-swagger==2.2.0"", ""packaging==26.2"", ""django-storages==1.14.6"", ""more-itertools==11.0.2"", ""amqp==5.3.1"", ""cffi==2.0.0"", ""requests-toolbelt==1.0.0"", ""pylint-django==2.7.0"", ""charset-normalizer==3.4.7"", ""imagesize==2.0.0"", ""sqlparse==0.5.5"", ""tox==4.53.1"", ""billiard==4.2.4"", ""colorama==0.4.6"", ""filelock==3.29.0"", ""setuptools==82.0.1"", ""docutils==0.21.2"", ""beautifulsoup4==4.14.3"", ""cryptography==48.0.0"", ""roman-numerals==4.1.0"", ""deepmerge==2.0"", ""lxml[html-clean]==6.1.0"", ""celery==5.6.3"", ""jmespath==1.1.0"", ""pip-tools==7.5.3"", ""tzlocal==5.3.1"", ""sphinx==9.1.0"", ""rpds-py==0.30.0"", ""typing-extensions==4.15.0"", ""jeepney==0.9.0"", ""rich==15.0.0"", ""pluggy==1.6.0"", ""attrs==26.1.0"", ""prompt-toolkit==3.0.52"", ""coverage==7.13.5"", ""openapi-codec==1.3.2"", ""mccabe==0.7.0"", ""testfixtures==11.0.0"", ""isort==8.0.1""]",6,"[""edx-i18n-tools"", ""django-storages"", ""djangorestframework"", ""pylint-django"", ""code-annotations"", ""pytest-django""]",10,"[""edx-i18n-tools"", ""django-storages"", ""django-model-utils"", ""rules"", ""djangorestframework"", ""django-rest-swagger"", ""pylint-django"", ""drf-yasg"", ""code-annotations"", ""pytest-django""]",2,"[""edx-i18n-tools"", ""code-annotations""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,6,"{""total_duration"": ""2028 minutes 8 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52-celery54-drflatest)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42-celery53-drflatest)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2016-08-09 20:52:58,master,A Django application for managing user-triggered asynchronous tasks.,574,20,True,False,False,False,False,False,False,2026-06-01 00:52:58,Apache License 2.0,4,True,0,0,0,0,4247,125438,0,True,True,False,False,True,False,False,,openedx,1,['https://open-edx-proposals.readthedocs.io/en/latest/oeps/oep-0003.html: 404'],True,"['https://img.shields.io/pypi/v/django-user-tasks.svg', 'https://pypi.python.org/pypi/django-user-tasks/', 'https://github.com/openedx/django-user-tasks/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/django-user-tasks/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/django-user-tasks/coverage.svg?branch=master', 'http://codecov.io/github/edx/django-user-tasks?branch=master', 'https://readthedocs.org/projects/django-user-tasks/badge/?version=latest', 'http://django-user-tasks.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/django-user-tasks.svg', 'https://img.shields.io/github/license/edx/django-user-tasks.svg', 'https://github.com/openedx/django-user-tasks/blob/master/LICENSE.txt', 'http://www.celeryproject.org/', 'https://channels.readthedocs.io/en/latest/', 'http://docs.celeryproject.org/en/latest/userguide/signals.html', 'https://django-user-tasks.readthedocs.org', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,django-user-tasks,"['3', '3.12']",https://github.com/openedx/django-user-tasks,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/pytest-repo-health,,,,True,2026-06-01,True,True,False,False,87,0,[],0,,0,0,,,19,"[""yarl==1.20.0"", ""iniconfig==2.1.0"", ""frozenlist==1.6.0"", ""pytest==8.3.5"", ""multidict==6.4.3"", ""smmap==5.0.2"", ""pytest-aiohttp==1.1.0"", ""aiohttp==3.11.18"", ""aiosignal==1.3.2"", ""pluggy==1.5.0"", ""propcache==0.3.1"", ""gitdb==4.0.12"", ""gitpython==3.1.44"", ""attrs==25.3.0"", ""idna==3.10"", ""aiohappyeyeballs==2.6.1"", ""pyyaml==6.0.2"", ""pytest-asyncio==0.26.0"", ""packaging==25.0""]",87,"[""pycodestyle==2.13.0"", ""pyproject-api==1.9.0"", ""pip-tools==7.4.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pytest==8.3.5"", ""multidict==6.4.3"", ""setuptools==80.0.1"", ""chardet==5.2.0"", ""cachetools==5.5.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pluggy==1.5.0"", ""pytest-cov==6.1.1"", ""sphinxcontrib-applehelp==2.0.0"", ""diff-cover==9.2.4"", ""gitpython==3.1.44"", ""stevedore==5.4.1"", ""doc8==1.1.2"", ""sphinx-book-theme==1.1.4"", ""click-log==0.4.0"", ""astroid==3.3.9"", ""wheel==0.45.1"", ""aiohappyeyeballs==2.6.1"", ""pytest-asyncio==0.26.0"", ""dill==0.4.0"", ""pylint-celery==0.3"", ""mccabe==0.7.0"", ""pydocstyle==6.3.0"", ""pygments==2.19.1"", ""isort==6.0.1"", ""smmap==5.0.2"", ""distlib==0.3.9"", ""readme-renderer==44.0"", ""nh3==0.2.21"", ""pytest-aiohttp==1.1.0"", ""babel==2.17.0"", ""restructuredtext-lint==1.4.0"", ""pip==24.2"", ""pydata-sphinx-theme==0.15.4"", ""attrs==25.3.0"", ""docutils==0.21.2"", ""pylint-plugin-utils==0.8.2"", ""packaging==25.0"", ""yarl==1.20.0"", ""iniconfig==2.1.0"", ""coverage[toml]==7.8.0"", ""pbr==6.1.1"", ""typing-extensions==4.13.2"", ""platformdirs==4.3.7"", ""pylint-django==2.6.1"", ""sphinxcontrib-jsmath==1.0.1"", ""pyproject-hooks==1.2.0"", ""alabaster==1.0.0"", ""aiosignal==1.3.2"", ""filelock==3.18.0"", ""pylint==3.3.6"", ""text-unidecode==1.3"", ""sphinxcontrib-devhelp==2.0.0"", ""beautifulsoup4==4.13.4"", ""idna==3.10"", ""soupsieve==2.7"", ""edx-lint==5.6.0"", ""jinja2==3.1.6"", ""frozenlist==1.6.0"", ""virtualenv==20.30.0"", ""charset-normalizer==3.4.1"", ""snowballstemmer==2.2.0"", ""requests==2.32.3"", ""imagesize==1.4.1"", ""code-annotations==2.3.0"", ""six==1.17.0"", ""urllib3==2.2.3"", ""aiohttp==3.11.18"", ""sphinx==8.2.3"", ""accessible-pygments==0.0.5"", ""roman-numerals-py==3.1.0"", ""propcache==0.3.1"", ""gitdb==4.0.12"", ""tomlkit==0.13.2"", ""python-slugify==8.0.4"", ""build==1.2.2.post1"", ""colorama==0.4.6"", ""tox==4.25.0"", ""markupsafe==3.0.2"", ""click==8.1.8"", ""sphinxcontrib-qthelp==2.0.0"", ""pyyaml==6.0.2"", ""certifi==2025.4.26""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,10,"{""total_duration"": ""0 minutes 45 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, py)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}]}",Other,2020-03-16 16:53:00,master,,423,8,True,False,False,False,False,False,False,2026-05-30 15:32:56,GNU AGPLv3,2,True,0,0,0,0,2689,31722,0,True,True,False,False,True,False,False,,openedx,0,"['https://ci.appveyor.com/api/projects/status/github/edx/pytest-repo-health?branch=master: 405', 'https://github.com/openedx/pytest-repo-health/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 404', 'https://github.com/openedx/pytest-repo-health/blob/master/.github/ISSUE_TEMPLATE.md: 404', 'http://www.gnu.org/licenses/gpl-3.0.txt: HTTPConnectionPool(host=\'www.gnu.org\', port=80): Max retries exceeded with url: /licenses/gpl-3.0.txt (Caused by NewConnectionError(""HTTPConnection(host=\'www.gnu.org\', port=80): Failed to establish a new connection: [Errno 101] Network is unreachable""))', 'https://pypi.org/project: 404']",True,"['https://img.shields.io/pypi/v/pytest-repo-health.svg', 'https://pypi.org/project/pytest-repo-health', 'https://img.shields.io/pypi/pyversions/pytest-repo-health.svg', 'https://github.com/openedx/pytest-repo-health/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/pytest-repo-health/actions?query=workflow%3A%22Python+CI%22', 'https://ci.appveyor.com/project/edx/pytest-repo-health/branch/master', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://github.com/openedx/edx-repo-health', 'https://github.com/audreyr/cookiecutter', 'https://github.com/hackebrot', 'http://opensource.org/licenses/BSD-3-Clause', 'http://www.apache.org/licenses/LICENSE-2.0', 'https://github.com/pytest-dev/cookiecutter-pytest-plugin', 'https://github.com/openedx/pytest-repo-health/issues', 'https://github.com/pytest-dev/pytest', 'https://tox.readthedocs.io/en/latest/', 'https://pypi.org/project/pip/']",True,True,False,False,,,False,,,,False,False,False,True,,False,pytest-repo-health,"['3', '3.12']",https://github.com/edX/pytest-repo-health,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-rest-api-client,,,,True,2026-06-01,True,True,False,False,88,0,[],0,,0,0,,,18,"[""django==5.2.13"", ""sqlparse==0.5.5"", ""asgiref==3.11.1"", ""edx-django-utils==8.0.1"", ""psutil==7.2.2"", ""pycparser==3.0"", ""stevedore==5.7.0"", ""certifi==2026.4.22"", ""requests==2.33.1"", ""pynacl==1.6.2"", ""cffi==2.0.0"", ""charset-normalizer==3.4.7"", ""django-waffle==5.0.0"", ""idna==3.13"", ""django-crum==0.7.9"", ""click==8.3.3"", ""urllib3==2.6.3"", ""pyjwt==2.12.1""]",88,"[""django-waffle==5.0.0"", ""jaraco-context==6.1.2"", ""django-crum==0.7.9"", ""six==1.17.0"", ""mdurl==0.1.2"", ""secretstorage==3.5.0"", ""asgiref==3.11.1"", ""coverage[toml]==7.13.5"", ""twine==6.2.0"", ""edx-lint==6.1.0"", ""jaraco-functools==4.4.0"", ""markdown-it-py==4.0.0"", ""docutils==0.22.4"", ""responses==0.26.0"", ""python-discovery==1.1.0"", ""cachetools==7.1.1"", ""chardet==7.4.3"", ""pytest-cov==7.1.0"", ""readme-renderer==44.0"", ""pyyaml==6.0.3"", ""psutil==7.2.2"", ""id==1.6.1"", ""chardet==7.0.1"", ""tox==4.27.0"", ""tomlkit==0.14.0"", ""pylint==4.0.5"", ""more-itertools==11.0.2"", ""pip==26.1.1"", ""urllib3==2.6.3"", ""pygments==2.20.0"", ""filelock==3.29.0"", ""stevedore==5.7.0"", ""astroid==4.0.4"", ""cffi==2.0.0"", ""requests==2.33.1"", ""markupsafe==3.0.3"", ""python-discovery==1.2.2"", ""pycodestyle==2.14.0"", ""setuptools==82.0.1"", ""virtualenv==21.3.1"", ""sqlparse==0.5.5"", ""cachetools==7.0.3"", ""filelock==3.25.0"", ""certifi==2026.4.22"", ""pytest-django==4.12.0"", ""wheel==0.47.0"", ""django==5.2.13"", ""pytest==9.0.3"", ""pynacl==1.6.2"", ""virtualenv==21.1.0"", ""jinja2==3.1.6"", ""click-log==0.4.0"", ""pluggy==1.5.0"", ""jeepney==0.9.0"", ""distlib==0.4.0"", ""colorama==0.4.6"", ""idna==3.13"", ""rich==15.0.0"", ""rfc3986==2.0.0"", ""nh3==0.3.5"", ""packaging==24.2"", ""isort==8.0.1"", ""pylint-django==2.7.0"", ""pyjwt==2.12.1"", ""build==1.5.0"", ""ddt==1.7.2"", ""pylint-celery==0.3"", ""platformdirs==4.3.6"", ""pyproject-api==1.9.0"", ""code-annotations==3.0.0"", ""freezegun==1.5.5"", ""dill==0.4.1"", ""cryptography==48.0.0"", ""python-dateutil==2.9.0.post0"", ""click==8.3.3"", ""text-unidecode==1.3"", ""charset-normalizer==3.4.7"", ""mccabe==0.7.0"", ""pylint-plugin-utils==0.9.0"", ""iniconfig==2.3.0"", ""keyring==25.7.0"", ""python-slugify==8.0.4"", ""edx-django-utils==8.0.1"", ""pyproject-hooks==1.2.0"", ""pycparser==3.0"", ""requests-toolbelt==1.0.0"", ""jaraco-classes==3.4.0"", ""pip-tools==7.5.3""]",5,"[""code-annotations"", ""pytest-django"", ""pylint-django"", ""edx-django-utils"", ""django-waffle""]",6,"[""code-annotations"", ""pytest-django"", ""pylint-django"", ""django-crum"", ""edx-django-utils"", ""django-waffle""]",3,"[""edx-django-utils"", ""code-annotations"", ""django-waffle""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,False,True,True,16,"{""total_duration"": ""0 minutes 34 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 32 seconds""}]}",Other,2015-04-29 18:11:55,master,Facilitates interaction with edX REST APIs,464,18,True,False,False,False,False,False,False,2026-05-30 15:16:43,Apache License 2.0,13,True,0,0,0,0,2700,38968,0,False,True,False,False,True,False,False,,openedx,5,"['https://lms.root: HTTPSConnectionPool(host=\'lms.root\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'lms.root\', port=443): Failed to resolve \'lms.root\' ([Errno -2] Name or service not known)""))', 'https://some.url: HTTPSConnectionPool(host=\'some.url\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'some.url\', port=443): Failed to resolve \'some.url\' ([Errno -2] Name or service not known)""))']",True,"['https://requests.readthedocs.io/en/master/user/advanced/', 'https://github.com/openedx/edx-django-utils/blob/master/edx_django_utils/cache/README.rst', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/edx-rest-api-client/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/edx-rest-api-client/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-rest-api-client/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/openedx/edx-rest-api-client/coverage.svg?branch=master', 'https://codecov.io/github/openedx/edx-rest-api-client?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/edx-rest-api-client.svg', 'https://github.com/openedx/edx-rest-api-client/blob/master/LICENSE', 'https://img.shields.io/pypi/v/edx-rest-api-client.svg', 'https://pypi.python.org/pypi/edx-rest-api-client/']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-rest-api-client,['3.12'],https://github.com/openedx/edx-rest-api-client,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/xblock-image-explorer,,,,True,2026-06-01,True,True,False,False,80,0,[],0,,0,0,,,24,"[""jmespath==1.1.0"", ""pyyaml==6.0.3"", ""urllib3==2.7.0"", ""xblock[django]==6.1.0"", ""lazy==1.6"", ""openedx-django-pyfs==4.0.0"", ""pytz==2026.2"", ""python-dateutil==2.9.0.post0"", ""webob==1.8.9"", ""lxml==6.1.1"", ""mako==1.3.12"", ""boto3==1.43.14"", ""six==1.17.0"", ""fs==2.4.16"", ""markupsafe==3.0.3"", ""asgiref==3.11.1"", ""sqlparse==0.5.5"", ""django==5.2.14"", ""simplejson==4.1.1"", ""botocore==1.43.14"", ""s3transfer==0.17.0"", ""web-fragments==4.0.0"", ""appdirs==1.4.4"", ""fs-s3fs==1.1.1""]",80,"[""jmespath==1.1.0"", ""pyyaml==6.0.3"", ""xblock[django]==6.1.0"", ""setuptools==82.0.1"", ""pyproject-api==1.10.0"", ""edx-lint==6.1.0"", ""arrow==1.4.0"", ""mako==1.3.12"", ""fs==2.4.16"", ""mock==5.2.0"", ""pycodestyle==2.14.0"", ""pip==26.1.1"", ""asgiref==3.11.1"", ""wheel==0.47.0"", ""django==5.2.14"", ""code-annotations==3.0.0"", ""s3transfer==0.17.0"", ""fs-s3fs==1.1.1"", ""pytest-django==4.12.0"", ""urllib3==2.7.0"", ""lazy==1.6"", ""openedx-django-pyfs==4.0.0"", ""pluggy==1.6.0"", ""python-discovery==1.3.1"", ""stevedore==5.8.0"", ""lxml==6.1.1"", ""virtualenv==21.3.3"", ""boto3==1.43.14"", ""pyproject-hooks==1.2.0"", ""rich==15.0.0"", ""tox==4.54.0"", ""pylint-plugin-utils==0.9.0"", ""pytest-cov==7.1.0"", ""pytest==9.0.3"", ""pip-tools==7.5.3"", ""distlib==0.4.0"", ""iniconfig==2.3.0"", ""sqlparse==0.5.5"", ""tomlkit==0.15.0"", ""charset-normalizer==3.4.7"", ""web-fragments==4.0.0"", ""pypng==0.20220715.0"", ""certifi==2026.5.20"", ""tzdata==2026.2"", ""pytz==2026.2"", ""python-dateutil==2.9.0.post0"", ""webob==1.8.9"", ""colorama==0.4.6"", ""cookiecutter==2.7.1"", ""requests==2.34.2"", ""six==1.17.0"", ""packaging==26.2"", ""python-slugify==8.0.4"", ""astroid==4.0.4"", ""platformdirs==4.9.6"", ""dill==0.4.1"", ""pylint-celery==0.3"", ""tomli-w==1.2.0"", ""click==8.4.1"", ""pygments==2.20.0"", ""markdown-it-py==4.2.0"", ""cachetools==7.1.4"", ""coverage[toml]==7.14.0"", ""markupsafe==3.0.3"", ""filelock==3.29.0"", ""build==1.5.0"", ""pylint==4.0.5"", ""mccabe==0.7.0"", ""pylint-django==2.7.0"", ""click-log==0.4.0"", ""binaryornot==0.6.0"", ""jinja2==3.1.6"", ""botocore==1.43.14"", ""simplejson==4.1.1"", ""mdurl==0.1.2"", ""isort==8.0.1"", ""idna==3.16"", ""xblock-sdk==0.14.0"", ""text-unidecode==1.3"", ""appdirs==1.4.4""]",5,"[""web-fragments"", ""xblock-sdk"", ""code-annotations"", ""pytest-django"", ""pylint-django""]",5,"[""web-fragments"", ""xblock-sdk"", ""code-annotations"", ""pytest-django"", ""pylint-django""]",3,"[""xblock-sdk"", ""code-annotations"", ""web-fragments""]",False,,False,False,True,False,False,False,True,True,True,True,False,False,True,True,False,True,True,False,True,True,True,12,"{""total_duration"": ""10013 minutes 9 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2014-03-09 14:40:29,master,,1513,42,True,False,False,False,False,False,False,2026-06-01 01:10:52,GNU AGPLv3,2,True,3925,0,6149,7384,3323,33384,0,True,False,False,False,False,False,False,,openedx,0,"['http://link/to/image.jpg: HTTPConnectionPool(host=\'link\', port=80): Max retries exceeded with url: /to/image.jpg (Caused by NameResolutionError(""HTTPConnection(host=\'link\', port=80): Failed to resolve \'link\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://github.com/openedx/xblock-image-explorer/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/xblock-image-explorer/actions/workflows/ci.yml', 'https://raw.githubusercontent.com/openedx/xblock-image-explorer/3b67392a73edcd606f4e3fb30cfa8b3cc20720d3/doc/img/student-view.png', 'https://raw.githubusercontent.com/openedx/xblock-image-explorer/3b67392a73edcd606f4e3fb30cfa8b3cc20720d3/doc/img/edit-view.png']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-image-explorer,['3.12'],https://github.com/openedx/xblock-image-explorer,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/tinymce-language-selector,,,,False,2026-06-01,True,True,False,False,0,0,,0,{},0,0,{},{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,True,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": ""0 minutes 23 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}]}",Other,2020-01-23 19:26:19,master,A plugin for TinyMCE 5 that allows the user to specify if text is written in a foreign language and in which language. Adds language data to tags to improve accessibility.,2454,6,True,False,False,False,False,False,False,2026-05-19 11:12:48,GNU AGPLv3,0,False,0,0,0,22003,0,0,0,False,False,False,False,False,False,False,@edx/tinymce-language-selector,openedx,0,[],False,['https://github.com/semantic-release/semantic-release'],True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-learner-record,,,,False,2026-06-01,True,True,False,False,38,0,,0,{},29,9,"{""@edx/browserslist-config"": ""^1.2.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""6.9.1"", ""@testing-library/react"": ""14.3.1"", ""axios-mock-adapter"": ""2.1.0"", ""babel-plugin-react-intl"": ""8.2.25"", ""husky"": ""9.1.7"", ""resize-observer-polyfill"": ""^1.5.1"", ""rosie"": ""2.1.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.9.2"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""7.2.0"", ""@fortawesome/free-brands-svg-icons"": ""7.2.0"", ""@fortawesome/free-regular-svg-icons"": ""7.2.0"", ""@fortawesome/free-solid-svg-icons"": ""7.2.0"", ""@fortawesome/react-fontawesome"": ""3.3.0"", ""@openedx/frontend-plugin-framework"": ""^1.6.0"", ""@openedx/paragon"": ""^23.4.2"", ""ajv"": ""^8.12.0"", ""ajv-keywords"": ""^5.1.0"", ""babel-polyfill"": ""6.26.0"", ""core-js"": ""3.49.0"", ""js-cookie"": ""3.0.5"", ""lodash"": ""4.18.1"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-device-detect"": ""^2.2.3"", ""react-dom"": ""18.3.1"", ""react-helmet-async"": ""^2.0.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""redux"": ""4.2.1"", ""regenerator-runtime"": ""0.14.1"", ""schema-utils"": ""^4.2.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,19,"{""total_duration"": ""16541 minutes 55 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 19 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2021-07-19 19:30:14,master,Open edX micro-frontend application for viewing learner records,8716,24,True,False,False,False,False,False,False,2026-05-20 13:25:38,GNU AGPLv3,7,True,0,0,579,136471,2086,0,0,False,False,False,False,True,False,False,@edx/frontend-app-learner-record,openedx,0,"['https://en.wikipedia.org/wiki/Verifiable_credentials: 403', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/: 404', 'https://travis-ci.com/edx/frontend-app-learner-record: 404']",True,"['https://www.edx.org', 'https://github.com/openedx/frontend-plugin-framework', 'https://edx-credentials.readthedocs.io/en/latest/learner_records.html', 'https://github.com/edx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://openedx.atlassian.net/wiki/spaces/FEDX/pages/2629829454/Micro+Frontend+MFE+Onboarding', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-learner-record/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://api.travis-ci.com/edx/frontend-app-learner-record.svg?branch=master', 'https://codecov.io/gh/edx/frontend-app-learner-record/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/frontend-app-learner-record', 'https://img.shields.io/npm/l/@edx/frontend-app-learner-record.svg', 'https://github.com/openedx/frontend-app-learner-record/blob/master/LICENSE']",True,True,False,False,,,True,2026-04-06,2024-10-28,5,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-ui-toolkit,,,,False,2026-06-01,False,False,False,False,50,0,,0,{},13,37,"{""@edx/eslint-config"": ""^4.0.0"", ""bi-app-sass"": ""1.1.0"", ""bourbon"": ""4.3.4"", ""browser-sync"": ""3.0.4"", ""css-loader"": ""^6.0.0"", ""del"": ""2.2.2"", ""eslint"": ""^8.35.0"", ""eslint-config-edx"": ""4.0.4"", ""gulp"": ""^4.0.2"", ""gulp-gh-pages"": ""0.5.4"", ""gulp-rename"": ""2.1.0"", ""gulp-util"": ""3.0.8"", ""gulp4-run-sequence"": ""^1.0.1"", ""jasmine"": ""5.13.0"", ""jasmine-core"": ""5.13.0"", ""jsdoc3-parser"": ""3.0.0"", ""jsdox"": ""0.4.10"", ""karma"": ""6.4.4"", ""karma-chrome-launcher"": ""^3.1.1"", ""karma-coverage"": ""2.2.1"", ""karma-firefox-launcher"": ""2.1.3"", ""karma-jasmine"": ""5.1.0"", ""karma-jasmine-html-reporter"": ""2.2.0"", ""karma-jasmine-jquery-2"": ""^0.1.1"", ""karma-phantomjs-launcher"": ""1.0.4"", ""karma-requirejs"": ""1.1.0"", ""karma-sinon"": ""1.0.5"", ""karma-spec-reporter"": ""0.0.36"", ""puppeteer"": ""^14.1.2"", ""require-dir"": ""latest"", ""requirejs-plugins"": ""1.0.2"", ""sass-loader"": ""^13.2.0"", ""susy"": ""2.2.14"", ""style-loader"": ""3.3.4"", ""through2"": ""2.0.5"", ""webpack"": ""^5.75.0"", ""webpack-stream"": ""7.0.0""}","{""backbone"": ""1.6.1"", ""backbone.paginator"": ""2.0.8"", ""gulp-shell"": ""0.8.0"", ""jquery"": ""~3.7.0"", ""mini-css-extract-plugin"": ""^2.7.2"", ""moment"": ""2.30.1"", ""moment-timezone"": ""0.6.1"", ""requirejs"": ""2.1.22"", ""requirejs-text"": ""2.0.16"", ""sass"": ""^1.58.3"", ""sinon"": ""1.17.7"", ""underscore"": ""~1.8.3"", ""urijs"": ""1.19.11""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,True,True,False,False,False,False,False,False,True,False,True,29,"{""total_duration"": ""1 minutes 48 seconds"", ""checks"": [{""name"": ""build"", ""duration"": ""1 minutes 48 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 35 seconds""}]}",Other,2015-08-13 07:28:13,master,A JavaScript toolkit for building edX user interfaces.,3782,14,True,False,False,False,False,False,False,2026-05-28 18:31:30,Apache License 2.0,13,True,0,0,0,180573,0,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://badge.fury.io/js/edx-ui-toolkit: 403', 'http://ux.edx.org/: HTTPConnectionPool(host=\'ux.edx.org\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'ux.edx.org\', port=80): Failed to resolve \'ux.edx.org\' ([Errno -2] Name or service not known)""))', 'https://github.com/openedx/edx-ui-toolkit/blob/master/CONTRIBUTING.md: 404']",False,"['https://badge.fury.io/gh/edx%2Fedx-ui-toolkit.svg', 'https://badge.fury.io/gh/edx%2Fedx-ui-toolkit', 'https://badge.fury.io/js/edx-ui-toolkit.svg', 'https://badge.fury.io/bo/edx-ui-toolkit.svg', 'https://badge.fury.io/bo/edx-ui-toolkit', 'https://img.shields.io/coveralls/edx/edx-ui-toolkit.svg', 'https://coveralls.io/r/edx/edx-ui-toolkit?branch=master', 'https://github.com/openedx/edx-ui-toolkit/blob/master/LICENSE', 'https://github.com/tj/n', 'http://ui-toolkit.edx.org/']",True,True,False,False,,,True,2026-04-06,2023-09-04,8,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-ace,,,,True,2026-06-01,False,False,False,False,146,0,[],0,,0,0,,,107,"[""rsa==4.9.1"", ""pydocstyle==6.3.0"", ""lxml[html-clean,html_clean]==5.4.0"", ""docutils==0.21.2"", ""packaging==25.0"", ""newrelic==10.10.0"", ""jaraco-classes==3.4.0"", ""django==4.2.20"", ""pygments==2.19.1"", ""uritemplate==4.1.1"", ""google-cloud-storage==3.1.0"", ""jaraco-functools==4.1.0"", ""pyasn1-modules==0.4.2"", ""pylint-celery==0.3"", ""pylint-django==2.6.1"", ""virtualenv==20.30.0"", ""build==1.2.2.post1"", ""urllib3==2.2.3"", ""platformdirs==4.3.7"", ""httplib2==0.22.0"", ""click==8.1.8"", ""google-cloud-firestore==2.20.2"", ""rfc3986==2.0.0"", ""googleapis-common-protos==1.70.0"", ""keyring==25.6.0"", ""python-dateutil==2.9.0.post0"", ""dill==0.4.0"", ""pyjwt[crypto]==2.10.1"", ""more-itertools==10.7.0"", ""wheel==0.45.1"", ""id==1.5.0"", ""pbr==6.1.1"", ""pyproject-api==1.9.0"", ""diff-cover==9.2.4"", ""cachecontrol==0.14.2"", ""twine==6.1.0"", ""idna==3.10"", ""markupsafe==3.0.2"", ""charset-normalizer==3.4.1"", ""six==1.17.0"", ""pynacl==1.5.0"", ""attrs==25.3.0"", ""pyparsing==3.2.3"", ""cryptography==44.0.2"", ""filelock==3.18.0"", ""pylint==3.3.6"", ""astroid==3.3.9"", ""readme-renderer==44.0"", ""pyasn1==0.6.1"", ""python-slugify==8.0.4"", ""requests==2.32.3"", ""msgpack==1.1.0"", ""google-auth==2.39.0"", ""tox==4.25.0"", ""cffi==1.17.1"", ""protobuf==6.30.2"", ""pycodestyle==2.13.0"", ""google-cloud-core==2.4.3"", ""path==16.16.0"", ""click-log==0.4.0"", ""requests-toolbelt==1.0.0"", ""pylint-plugin-utils==0.8.2"", ""text-unidecode==1.3"", ""google-api-core[grpc]==2.24.2"", ""sqlparse==0.5.3"", ""edx-i18n-tools==1.8.0"", ""google-auth-httplib2==0.2.0"", ""jinja2==3.1.6"", ""sailthru-client==2.2.3"", ""pyyaml==6.0.2"", ""pip-tools==7.4.1"", ""pycparser==2.22"", ""jaraco-context==6.0.1"", ""markdown-it-py==3.0.0"", ""google-api-python-client==2.168.0"", ""polib==1.2.0"", ""cachetools==5.5.2"", ""firebase-admin==6.8.0"", ""colorama==0.4.6"", ""stevedore==5.4.1"", ""mccabe==0.7.0"", ""edx-django-utils==7.4.0"", ""lxml-html-clean==0.4.2"", ""mdurl==0.1.2"", ""pyproject-hooks==1.2.0"", ""certifi==2025.1.31"", ""edx-lint==5.6.0"", ""snowballstemmer==2.2.0"", ""google-resumable-media==2.7.2"", ""asgiref==3.8.1"", ""proto-plus==1.26.1"", ""django-push-notifications==3.2.1"", ""grpcio-status==1.72.0"", ""rich==14.0.0"", ""django-waffle==4.2.0"", ""pluggy==1.5.0"", ""grpcio==1.72.0"", ""isort==6.0.1"", ""tomlkit==0.13.2"", ""django-crum==0.7.9"", ""chardet==5.2.0"", ""simplejson==3.20.1"", ""nh3==0.2.21"", ""psutil==7.0.0"", ""google-crc32c==1.7.1"", ""distlib==0.3.9"", ""code-annotations==2.3.0""]",146,"[""sphinx-book-theme==1.1.4"", ""imagesize==1.4.1"", ""rsa==4.9.1"", ""pydocstyle==6.3.0"", ""mock==5.2.0"", ""setuptools==79.0.1"", ""lxml[html-clean,html_clean]==5.4.0"", ""docutils==0.21.2"", ""hypothesis-pytest==0.19.0"", ""roman-numerals-py==3.1.0"", ""packaging==25.0"", ""pytest==8.3.5"", ""newrelic==10.10.0"", ""jaraco-classes==3.4.0"", ""django==4.2.20"", ""pygments==2.19.1"", ""uritemplate==4.1.1"", ""google-cloud-storage==3.1.0"", ""jaraco-functools==4.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""alabaster==1.0.0"", ""pyasn1-modules==0.4.2"", ""pylint-celery==0.3"", ""pylint-django==2.6.1"", ""virtualenv==20.30.0"", ""build==1.2.2.post1"", ""urllib3==2.2.3"", ""platformdirs==4.3.7"", ""httplib2==0.22.0"", ""click==8.1.8"", ""google-cloud-firestore==2.20.2"", ""rfc3986==2.0.0"", ""googleapis-common-protos==1.70.0"", ""keyring==25.6.0"", ""hypothesis[pytz]==6.104.2"", ""python-dateutil==2.9.0.post0"", ""dill==0.4.0"", ""pyjwt[crypto]==2.10.1"", ""more-itertools==10.7.0"", ""wheel==0.45.1"", ""iniconfig==2.1.0"", ""id==1.5.0"", ""pbr==6.1.1"", ""pyproject-api==1.9.0"", ""diff-cover==9.2.4"", ""sphinxcontrib-jsmath==1.0.1"", ""cachecontrol==0.14.2"", ""twine==6.1.0"", ""idna==3.10"", ""markupsafe==3.0.2"", ""pudb==2024.1.3"", ""beautifulsoup4==4.13.4"", ""accessible-pygments==0.0.5"", ""parso==0.8.4"", ""charset-normalizer==3.4.1"", ""pydata-sphinx-theme==0.15.4"", ""ddt==1.7.2"", ""six==1.17.0"", ""pynacl==1.5.0"", ""attrs==25.3.0"", ""pyparsing==3.2.3"", ""cryptography==44.0.2"", ""filelock==3.18.0"", ""pylint==3.3.6"", ""astroid==3.3.9"", ""readme-renderer==44.0"", ""pyasn1==0.6.1"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""soupsieve==2.7"", ""python-slugify==8.0.4"", ""requests==2.32.3"", ""msgpack==1.1.0"", ""google-auth==2.39.0"", ""tox==4.25.0"", ""cffi==1.17.1"", ""protobuf==6.30.2"", ""pycodestyle==2.13.0"", ""google-cloud-core==2.4.3"", ""path==16.16.0"", ""click-log==0.4.0"", ""requests-toolbelt==1.0.0"", ""pylint-plugin-utils==0.8.2"", ""text-unidecode==1.3"", ""google-api-core[grpc]==2.24.2"", ""sqlparse==0.5.3"", ""edx-i18n-tools==1.8.0"", ""google-auth-httplib2==0.2.0"", ""jinja2==3.1.6"", ""pip==24.2"", ""babel==2.17.0"", ""sailthru-client==2.2.3"", ""pyyaml==6.0.2"", ""urwid-readline==0.15.1"", ""pip-tools==7.4.1"", ""pycparser==2.22"", ""jaraco-context==6.0.1"", ""typing-extensions==4.13.2"", ""markdown-it-py==3.0.0"", ""google-api-python-client==2.168.0"", ""polib==1.2.0"", ""cachetools==5.5.2"", ""firebase-admin==6.8.0"", ""colorama==0.4.6"", ""pytest-cov==6.1.1"", ""stevedore==5.4.1"", ""restructuredtext-lint==1.4.0"", ""sphinxcontrib-qthelp==2.0.0"", ""mccabe==0.7.0"", ""edx-django-utils==7.4.0"", ""lxml-html-clean==0.4.2"", ""mdurl==0.1.2"", ""pytest-randomly==3.16.0"", ""pyproject-hooks==1.2.0"", ""certifi==2025.1.31"", ""edx-lint==5.6.0"", ""wcwidth==0.2.13"", ""snowballstemmer==2.2.0"", ""google-resumable-media==2.7.2"", ""asgiref==3.8.1"", ""proto-plus==1.26.1"", ""django-push-notifications==3.2.1"", ""coverage[toml]==7.8.0"", ""pytest-django==4.11.1"", ""grpcio-status==1.72.0"", ""urwid==2.6.16"", ""doc8==1.1.2"", ""rich==14.0.0"", ""django-waffle==4.2.0"", ""pluggy==1.5.0"", ""sortedcontainers==2.4.0"", ""grpcio==1.72.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""isort==6.0.1"", ""tomlkit==0.13.2"", ""django-crum==0.7.9"", ""chardet==5.2.0"", ""simplejson==3.20.1"", ""nh3==0.2.21"", ""psutil==7.0.0"", ""jedi==0.19.2"", ""pytz==2025.2"", ""sphinx==8.2.3"", ""google-crc32c==1.7.1"", ""distlib==0.3.9"", ""code-annotations==2.3.0""]",6,"[""edx-i18n-tools"", ""django-waffle"", ""code-annotations"", ""pylint-django"", ""edx-django-utils"", ""pytest-django""]",8,"[""edx-i18n-tools"", ""django-waffle"", ""code-annotations"", ""django-crum"", ""pylint-django"", ""edx-django-utils"", ""pytest-django"", ""newrelic""]",4,"[""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""code-annotations""]",True,,True,False,True,False,False,True,True,True,True,False,True,False,True,True,True,True,True,True,False,True,True,8,"{""total_duration"": ""0 minutes 54 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2017-08-08 18:12:33,master,edX's Automated Communication Engine,593,26,True,False,False,False,False,False,False,2026-05-30 15:07:05,GNU AGPLv3,5,True,0,194,665,0,4491,132551,0,True,True,False,False,True,False,False,,openedx,0,"['https://open-edx-backstage.herokuapp.com/catalog/default/component/edx-ace: 404', 'https://travis-ci.com/edx/edx-ace: 404', 'https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))']",True,"['https://edx-ace.readthedocs.io/en/latest/', 'https://github.com/openedx/edx-ace/blob/master/docs/getting_started.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/edx-ace/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://github.com/openedx/edx-ace/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-ace/blob/master/.github/ISSUE_TEMPLATE.md', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/edx-ace.svg', 'https://pypi.python.org/pypi/edx-ace/', 'https://travis-ci.com/edx/edx-ace.svg?branch=master', 'http://codecov.io/github/edx/edx-ace/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-ace?branch=master', 'https://readthedocs.org/projects/edx-ace/badge/?version=latest', 'http://edx-ace.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-ace.svg', 'https://img.shields.io/github/license/edx/edx-ace.svg', 'https://github.com/openedx/edx-ace/blob/master/LICENSE.txt', 'https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/edx-ace/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-ace/actions/workflows/ci.yml', 'https://github.com/openedx/edx-ace/actions/workflows/pypi-publish.yml/badge.svg', 'https://github.com/openedx/edx-ace/actions/workflows/pypi-release.yml', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-ace,"['3', '3.12']",https://github.com/openedx/edx-ace,True,True,True,False,False,False,False,False,False,[],[],[],[] -openedx/repo-tools,,,,True,2026-06-01,True,True,False,True,0,0,[],0,,0,0,,,0,[],0,[],0,[],0,[],0,[],False,,False,True,True,False,False,False,True,True,True,True,False,False,True,True,False,False,False,False,True,True,True,57,"{""total_duration"": ""2453 minutes 34 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""build (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2013-10-16 22:30:05,master,"Tools for repo maintenance, etc.",1856,46,True,False,False,False,False,False,False,2026-05-28 05:20:15,Apache License 2.0,25,True,0,0,0,0,1205,418378,3941,False,False,False,False,True,False,False,,openedx,2,[],False,"['https://github.com/settings/tokens', 'https://docs.astral.sh/uv/', 'https://astral.sh/uv/install.sh', 'https://github.com/openedx/repo-tools/blob/7aa8bda466d1925c56d4ad6e3b2bdd87b1f83148/README.md']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-admin-portal,,,,False,2026-06-01,True,True,False,False,73,0,,0,{},53,20,"{""@edx/browserslist-config"": ""1.5.0"", ""@edx/typescript-config"": ""1.1.0"", ""@openedx/frontend-build"": ""14.5.0"", ""@testing-library/dom"": ""10.4.0"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""14.6.1"", ""@types/color"": ""^4.2.0"", ""@types/react-instantsearch-dom"": ""^6.12.8"", ""axios-mock-adapter"": ""1.22.0"", ""css-loader"": ""5.2.7"", ""husky"": ""0.14.3"", ""identity-obj-proxy"": ""3.0.0"", ""jest-canvas-mock"": ""^2.4.0"", ""jest-localstorage-mock"": ""^2.4.22"", ""patch-package"": ""8.0.0"", ""postcss"": ""8.4.24"", ""react-test-renderer"": ""^18.3.1"", ""resize-observer-polyfill"": ""1.5.1"", ""ts-jest"": ""^29.0.0""}","{""@babel/plugin-transform-runtime"": ""7.25.9"", ""@dnd-kit/core"": ""^6.3.1"", ""@dnd-kit/sortable"": ""^10.0.0"", ""@dnd-kit/utilities"": ""^3.2.2"", ""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/frontend-enterprise-catalog-search"": ""11.0.1"", ""@edx/frontend-enterprise-hotjar"": ""7.2.0"", ""@edx/frontend-enterprise-logistration"": ""9.2.1"", ""@edx/frontend-enterprise-utils"": ""10.0.0"", ""@edx/frontend-platform"": ""8.5.5"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@openedx/paragon"": ""22.20.3"", ""@tanstack/react-query"": ""4.36.1"", ""@tanstack/react-query-devtools"": ""4.36.1"", ""algoliasearch"": ""4.24.0"", ""canvas-confetti"": ""^1.9.3"", ""classnames"": ""2.5.1"", ""color"": ""3.2.1"", ""color-contrast-checker"": ""^2.1.0"", ""core-js"": ""3.40.0"", ""dash-embedded-component"": ""file:packages/dash-embedded-component-2.0.2.tgz"", ""dayjs"": ""^1.11.9"", ""file-saver"": ""1.3.8"", ""font-awesome"": ""4.7.0"", ""history"": ""4.10.1"", ""html-react-parser"": ""3.0.16"", ""jest-environment-jsdom"": ""29.7.0"", ""lodash-es"": ""^4.17.21"", ""plotly.js"": ""^2.33.0"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-helmet"": ""6.1.0"", ""react-instantsearch-dom"": ""6.40.4"", ""react-markdown"": ""6.0.3"", ""react-plotly.js"": ""^2.6.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.29.0"", ""react-router-dom"": ""6.29.0"", ""react-select"": ""^5.10.2"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""2.13.9"", ""redux-form"": ""8.3.10"", ""redux-logger"": ""3.0.6"", ""redux-mock-store"": ""1.5.5"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""0.14.1"", ""sanitize-html"": ""2.14.0"", ""timeago.js"": ""4.0.2"", ""universal-cookie"": ""4.0.4"", ""use-context-selector"": ""^1.4.1"", ""uuid"": ""9.0.1"", ""validator"": ""13.15.22""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,196,"{""total_duration"": ""2745 minutes 57 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""5 minutes 3 seconds""}, {""name"": ""build"", ""duration"": ""2 minutes 57 seconds""}, {""name"": ""lint"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""extract_translations"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2018-05-10 13:44:58,master,edx-portal is a frontend that provides branded learning experiences.,25155,44,True,False,False,False,False,False,False,2026-05-29 22:50:02,GNU AGPLv3,54,True,0,636,890,4234258,1759,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/frontend-app-admin-portal/actions/workflows/ci.yml/badge.svg', 'https://codecov.io/gh/edx/frontend-app-admin-portal/branch/master/graph/badge.svg', 'https://github.com/openedx/devstack', 'https://github.com/openedx/edx-analytics-data-api', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-admin-portal/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-02-07,2024-05-22,6,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],[],[] -openedx/tutor-contrib-aspects,,,,True,2026-06-01,True,True,False,False,83,0,[],0,,0,0,,,46,"[""markupsafe==3.0.3"", ""aiohttp==3.13.5"", ""shandy-sqlfmt[jinjafmt]==0.26.0"", ""pytokens==0.4.1"", ""kubernetes==36.0.0"", ""attrs==26.1.0"", ""pathspec==1.1.1"", ""click==8.2.1"", ""appdirs==1.4.4"", ""pyyaml==6.0.3"", ""ruamel-yaml==0.19.1"", ""multidict==6.7.1"", ""requests==2.34.2"", ""urllib3==2.7.0"", ""ast-serialize==0.5.0"", ""typing-extensions==4.15.0"", ""zipp==4.1.0"", ""propcache==0.5.2"", ""importlib-metadata==9.0.0"", ""pycryptodome==3.23.0"", ""frozenlist==1.8.0"", ""aiohappyeyeballs==2.6.2"", ""mypy==2.1.0"", ""openedx-atlas==0.7.0"", ""tutor-mfe==21.0.0"", ""idna==3.16"", ""websocket-client==1.9.0"", ""importlib-resources==7.1.0"", ""platformdirs==4.9.6"", ""packaging==26.2"", ""six==1.17.0"", ""black==26.5.1"", ""tutor==21.0.6"", ""tqdm==4.67.3"", ""bcrypt==5.0.0"", ""certifi==2026.5.20"", ""librt==0.11.0"", ""yarl==1.24.2"", ""durationpy==0.10"", ""oauthlib==3.3.1"", ""charset-normalizer==3.4.7"", ""requests-oauthlib==2.0.0"", ""aiosignal==1.4.0"", ""jinja2==3.1.6"", ""mypy-extensions==1.1.0"", ""python-dateutil==2.9.0.post0""]",83,"[""markupsafe==3.0.3"", ""shandy-sqlfmt[jinjafmt]==0.26.0"", ""kubernetes==36.0.0"", ""appdirs==1.4.4"", ""pyyaml==6.0.3"", ""multidict==6.7.1"", ""ast-serialize==0.5.0"", ""twine==6.2.0"", ""cffi==2.0.0"", ""frozenlist==1.8.0"", ""secretstorage==3.5.0"", ""pyinstaller-hooks-contrib==2026.5"", ""idna==3.16"", ""platformdirs==4.9.6"", ""black==26.5.1"", ""keyring==25.7.0"", ""pyproject-hooks==1.2.0"", ""yarl==1.24.2"", ""durationpy==0.10"", ""jinja2==3.1.6"", ""openedx-atlas==0.7.0"", ""jaraco-functools==4.5.0"", ""attrs==26.1.0"", ""click==8.4.1"", ""pylint==4.0.5"", ""astroid==4.0.4"", ""jeepney==0.9.0"", ""readme-renderer==44.0"", ""zipp==4.1.0"", ""cryptography==48.0.0"", ""aiohappyeyeballs==2.6.2"", ""more-itertools==11.1.0"", ""tutor==21.0.6"", ""tqdm==4.67.3"", ""requests-toolbelt==1.0.0"", ""librt==0.11.0"", ""pip==26.1.1"", ""jaraco-classes==3.4.0"", ""mypy-extensions==1.1.0"", ""pytokens==0.4.1"", ""mccabe==0.7.0"", ""click==8.2.1"", ""tomlkit==0.15.0"", ""id==1.6.1"", ""typing-extensions==4.15.0"", ""importlib-metadata==9.0.0"", ""pycryptodome==3.23.0"", ""jaraco-context==6.1.2"", ""mypy==2.1.0"", ""tutor-mfe==21.0.0"", ""websocket-client==1.9.0"", ""importlib-resources==7.1.0"", ""docutils==0.22.4"", ""packaging==26.2"", ""build==1.5.0"", ""certifi==2026.5.20"", ""requests-oauthlib==2.0.0"", ""aiosignal==1.4.0"", ""python-dateutil==2.9.0.post0"", ""aiohttp==3.13.5"", ""nh3==0.3.5"", ""pathspec==1.1.1"", ""rfc3986==2.0.0"", ""ruamel-yaml==0.19.1"", ""requests==2.34.2"", ""urllib3==2.7.0"", ""pip-tools==7.5.3"", ""propcache==0.5.2"", ""dill==0.4.1"", ""altgraph==0.17.5"", ""isort==8.0.1"", ""pycparser==3.0"", ""setuptools==82.0.1"", ""six==1.17.0"", ""mdurl==0.1.2"", ""markdown-it-py==4.2.0"", ""bcrypt==5.0.0"", ""wheel==0.47.0"", ""oauthlib==3.3.1"", ""charset-normalizer==3.4.7"", ""rich==15.0.0"", ""pygments==2.20.0"", ""pyinstaller==6.20.0""]",0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,True,True,True,False,False,True,True,True,22,"{""total_duration"": ""7920 minutes 19 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2023-02-07 05:22:39,main,The Open Analytics Reference System - Tutor plugin,3770,30,True,False,False,False,False,False,False,2026-06-01 01:09:49,Apache License 2.0,11,False,0,2318,0,0,3702,235250,17668,False,False,False,False,True,False,False,,openedx,2,[],False,"['https://docs.tutor.overhang.io', 'https://clickhouse.com', 'https://superset.apache.org', 'https://openfun.github.io/ralph/', 'https://vector.dev', 'https://event-routing-backends.readthedocs.io/en/latest/', 'https://www.getdbt.com', 'https://github.com/openedx/aspects-dbt', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/concepts/aspects_overview.html', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/02_upgrade.html', 'https://docs.tutor.overhang.io/install.html', 'https://docs.tutor.edly.io/gettingstarted/whatsnext.html', 'https://github.com/eduNEXT/tutor-contrib-pod-autoscaling', 'https://pypi.org', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3861512203/Aspects+Beta', 'https://superset.apache.org/docs', 'https://www.getdbt.com/docs/', 'https://vector.dev/docs/', 'https://github.com/openedx/frontend-plugin-aspects', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/aspects_production_configuration.html', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/reference/in_context_dashboards.html']",True,True,False,False,,,False,,,,False,False,False,False,"{ +openedx/openedx-k8s-harmony,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,19,"{""total_duration"": ""18648 minutes 56 seconds"", ""checks"": [{""name"": ""release"", ""duration"": ""0 minutes 7 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2022-11-25 18:03:47,main,A Prototype Helm Chart for deploying multiple Open edX instances (via Tutor) onto a cluster.,1791,19,True,False,False,False,False,False,False,2026-06-03 23:51:30,GNU AGPLv3,16,False,0,0,0,0,1262,12486,1535,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/aws/karpenter/blob/main/website/content/en/docs/upgrade-guide.md: 404', 'https://XYZ.eks.amazonaws.com: HTTPSConnectionPool(host=\'xyz.eks.amazonaws.com\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'xyz.eks.amazonaws.com\', port=443): Failed to resolve \'xyz.eks.amazonaws.com\' ([Errno -2] Name or service not known)""))', 'https://karpenter.sh/docs/concepts/provisioners/: 404', 'https://karpenter.sh/docs/concepts/node-templates/: 404', 'https://ms-yourinstanceid.meilisearch.io: HTTPSConnectionPool(host=\'ms-yourinstanceid.meilisearch.io\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'ms-yourinstanceid.meilisearch.io\', port=443): Failed to resolve \'ms-yourinstanceid.meilisearch.io\' ([Errno -2] Name or service not known)""))', 'http://10.1.2.3: HTTPConnectionPool(host=\'10.1.2.3\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'10.1.2.3\', port=80): Failed to establish a new connection: [Errno 113] No route to host""))', 'https://meilisearch: HTTPSConnectionPool(host=\'meilisearch\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'meilisearch\', port=443): Failed to resolve \'meilisearch\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://www.openedx.org', 'https://docs.tutor.overhang.io/', 'https://kubernetes.github.io/ingress-nginx/', 'https://traefik.io/traefik/', 'https://cert-manager.io/', 'https://github.com/prometheus-community/helm-charts', 'https://grove.opencraft.com/', 'https://github.com/eduNEXT/tutor-contrib-pod-autoscaling', 'https://cert-manager.io/docs/installation/upgrading/', 'https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/', 'https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler', 'https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler', 'https://karpenter.sh/', 'https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/', 'https://doc.traefik.io/traefik/migrate/nginx-to-traefik/', 'https://helm.sh/', 'https://openedx.github.io/openedx-k8s-harmony', 'https://github.com/cert-manager/cert-manager/releases/download/v1.10.1/cert-manager.crds.yaml', 'https://minikube.sigs.k8s.io/docs/start/', 'https://github.com/openedx/openedx-k8s-harmony.git', 'https://www.meilisearch.com/cloud', 'https://www.meilisearch.com/docs/learn/self_hosted/getting_started_with_self_hosted_meilisearch']",True,True,False,False,,,True,2026-04-04,2024-11-07,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xqueue,,,,True,2026-06-08,False,False,False,False,59,0,[],0,,0,0,,,57,"[""django-waffle==5.0.0"", ""pytest-cov==7.1.0"", ""requests==2.33.1"", ""filelock==3.25.2"", ""packaging==26.0"", ""pluggy==1.6.0"", ""django==5.2.13"", ""s3transfer==0.16.0"", ""cachetools==7.0.5"", ""click==8.3.2"", ""pip-tools==7.5.3"", ""botocore==1.42.84"", ""pycodestyle==2.14.0"", ""coverage[toml]==7.13.5"", ""sqlparse==0.5.5"", ""tomli-w==1.2.0"", ""pyproject-hooks==1.2.0"", ""urllib3==2.6.3"", ""python-memcached==1.62"", ""gunicorn==25.3.0"", ""virtualenv==21.2.0"", ""django-crum==0.7.9"", ""build==1.4.2"", ""python-dateutil==2.9.0.post0"", ""wheel==0.46.3"", ""django-storages==1.14.6"", ""mysqlclient==2.2.8"", ""pytest==9.0.2"", ""six==1.17.0"", ""boto3==1.42.84"", ""charset-normalizer==3.4.7"", ""colorama==0.4.6"", ""tox==4.52.0"", ""pywatchman==3.0.0 ; \""linux\"" in sys_platform"", ""asgiref==3.11.1"", ""cffi==2.0.0"", ""jmespath==1.1.0"", ""isort==8.0.1"", ""platformdirs==4.9.4"", ""certifi==2026.2.25"", ""pytest-django==4.12.0"", ""distlib==0.4.0"", ""edx-django-release-util==1.5.0"", ""idna==3.11"", ""pycparser==3.0"", ""path==17.1.1"", ""pyproject-api==1.10.0"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""pynacl==1.6.2"", ""pyyaml==6.0.3"", ""python-discovery==1.2.1"", ""newrelic==12.1.0"", ""backoff==2.2.1"", ""iniconfig==2.3.0"", ""pygments==2.20.0"", ""edx-django-utils==8.0.1""]",59,"[""django-waffle==5.0.0"", ""pytest-cov==7.1.0"", ""requests==2.33.1"", ""filelock==3.25.2"", ""packaging==26.0"", ""pluggy==1.6.0"", ""django==5.2.13"", ""s3transfer==0.16.0"", ""cachetools==7.0.5"", ""click==8.3.2"", ""pip-tools==7.5.3"", ""botocore==1.42.84"", ""pycodestyle==2.14.0"", ""coverage[toml]==7.13.5"", ""sqlparse==0.5.5"", ""tomli-w==1.2.0"", ""pyproject-hooks==1.2.0"", ""urllib3==2.6.3"", ""python-memcached==1.62"", ""gunicorn==25.3.0"", ""virtualenv==21.2.0"", ""django-crum==0.7.9"", ""build==1.4.2"", ""python-dateutil==2.9.0.post0"", ""wheel==0.46.3"", ""django-storages==1.14.6"", ""mysqlclient==2.2.8"", ""pytest==9.0.2"", ""six==1.17.0"", ""boto3==1.42.84"", ""charset-normalizer==3.4.7"", ""colorama==0.4.6"", ""tox==4.52.0"", ""pywatchman==3.0.0 ; \""linux\"" in sys_platform"", ""pip==26.0.1"", ""setuptools==82.0.1"", ""asgiref==3.11.1"", ""cffi==2.0.0"", ""jmespath==1.1.0"", ""isort==8.0.1"", ""platformdirs==4.9.4"", ""certifi==2026.2.25"", ""pytest-django==4.12.0"", ""distlib==0.4.0"", ""edx-django-release-util==1.5.0"", ""idna==3.11"", ""pycparser==3.0"", ""path==17.1.1"", ""pyproject-api==1.10.0"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""pynacl==1.6.2"", ""pyyaml==6.0.3"", ""python-discovery==1.2.1"", ""newrelic==12.1.0"", ""backoff==2.2.1"", ""iniconfig==2.3.0"", ""pygments==2.20.0"", ""edx-django-utils==8.0.1""]",5,"[""django-waffle"", ""edx-django-release-util"", ""pytest-django"", ""django-storages"", ""edx-django-utils""]",7,"[""django-crum"", ""django-waffle"", ""newrelic"", ""edx-django-release-util"", ""pytest-django"", ""django-storages"", ""edx-django-utils""]",3,"[""django-waffle"", ""edx-django-release-util"", ""edx-django-utils""]",False,,True,False,True,False,False,False,True,True,True,False,False,False,False,True,False,False,True,False,True,True,True,77,"{""total_duration"": ""74885 minutes 1 seconds"", ""checks"": [{""name"": ""check migration for MySql8 (ubuntu-latest, 3.12)"", ""duration"": ""3 minutes 49 seconds""}, {""name"": ""build (3.12, django52, mysql80)"", ""duration"": ""1 minutes 10 seconds""}, {""name"": ""build (3.12, quality, mysql80)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""build (3.12, django42, mysql80)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 13 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)"", ""duration"": ""0 minutes 13 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2012-08-09 14:43:31,master,XQueue defines an interface for the LMS to communicate with external grader services.,906,101,True,False,False,False,False,False,False,2026-05-15 04:43:52,GNU AGPLv3,5,True,0,0,51,0,3766,143881,297,True,True,False,False,True,False,False,,openedx,2,['https://open.edx.org/getting-help: 403'],True,['https://github.com/openedx/public-engineering/issues/286'],True,True,False,False,,,False,,,,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-enterprise,,,,True,2026-06-08,True,True,False,True,255,0,[],0,{},2,10,"{""css-loader"": ""^0.28.7"", ""extract-text-webpack-plugin"": ""^3.0.0"", ""jasmine-ajax"": ""^3.1.1"", ""jasmine-jquery"": ""^2.1.1"", ""jquery"": ""^2.2.4"", ""jshint"": ""^2.9.5"", ""sass-loader"": ""^7.2.0"", ""sass"": ""^1.22.10"", ""style-loader"": ""^0.18.2"", ""webpack"": ""^3.12.0""}","{""@edx/brand"": ""npm:@edx/brand-edx.org@^1.3.0"", ""@openedx/paragon"": ""^21.5.7""}",206,"[""lxml[html-clean]==5.3.2"", ""google-api-core[grpc]==2.30.3"", ""pyasn1-modules==0.4.2"", ""httpcore==1.0.9"", ""typing-extensions==4.15.0"", ""django-model-utils==5.0.0"", ""googleapis-common-protos==1.75.0"", ""httpx[http2]==0.28.1"", ""tqdm==4.67.3"", ""python-discovery==1.3.0"", ""urllib3==2.7.0"", ""pynacl==1.6.2"", ""edx-ace==1.15.0"", ""pytest==9.0.3"", ""simplejson==4.1.1"", ""edx-lint==6.1.0"", ""tincan==1.0.0"", ""path==16.11.0"", ""pylint-celery==0.3"", ""doc8==2.0.0"", ""fastavro==1.12.2"", ""python3-saml==1.16.0"", ""inflection==0.5.1"", ""bleach==6.3.0"", ""pytest-cov==7.1.0"", ""attrs==26.1.0"", ""google-cloud-core==2.6.0"", ""rules==3.5"", ""h2==4.3.0"", ""colorama==0.4.6"", ""defusedxml==0.7.1"", ""django-waffle==5.0.0"", ""vine==5.1.0"", ""click-plugins==1.1.1.2"", ""openedx-atlas==0.7.0"", ""google-cloud-storage==3.10.1"", ""model-bakery==1.23.4"", ""pytest-django==4.12.0"", ""mccabe==0.7.0"", ""sphinx-book-theme==1.2.0"", ""faker==40.15.0"", ""edx-rest-api-client==7.0.0"", ""djangorestframework==3.17.1"", ""imagesize==2.0.0"", ""factory-boy==3.3.3"", ""django-mock-queries==2.3.0"", ""pluggy==1.6.0"", ""ddt==1.3.1"", ""virtualenv==21.3.1"", ""click-didyoumean==0.3.1"", ""psutil==7.2.2"", ""tox==4.53.1"", ""cachetools==7.1.1"", ""distlib==0.4.0"", ""google-resumable-media==2.9.0"", ""pycparser==3.0"", ""pylint-django==2.7.0"", ""celery==5.6.3"", ""tomli-w==1.2.0"", ""anyio==4.13.0"", ""sphinxcontrib-applehelp==2.0.0"", ""click-repl==0.3.0"", ""google-auth==2.52.0"", ""amqp==5.3.1"", ""django-config-models==3.0.0"", ""edx-api-doc-tools==3.0.0"", ""nh3==0.3.5"", ""snowballstemmer==3.0.1"", ""pymongo==4.4.0"", ""django-oauth-toolkit==1.7.1"", ""google-crc32c==1.8.0"", ""pyproject-hooks==1.2.0"", ""edx-opaque-keys[django]==4.0.0"", ""accessible-pygments==0.0.5"", ""hyperframe==6.1.0"", ""django-filter==25.2"", ""click==8.3.3"", ""pyjwt[crypto]==2.12.1"", ""pylint==3.3.9"", ""polib==1.2.0"", ""python-ipware==3.0.0"", ""edx-rbac==3.0.0"", ""isort==6.1.0"", ""pyasn1==0.6.3"", ""pyyaml==6.0.3"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""jwcrypto==1.5.7"", ""slumber==0.7.1"", ""alabaster==1.0.0"", ""sailthru-client==2.2.3"", ""sqlparse==0.5.5"", ""unicodecsv==0.14.1"", ""edx-django-utils==8.0.1"", ""certifi==2026.4.22"", ""kombu==5.6.2"", ""google-cloud-firestore==2.27.0"", ""cffi==2.0.0"", ""hpack==4.1.0"", ""social-auth-core==4.9.1"", ""openedx-filters==3.3.0"", ""freezegun==1.5.5"", ""restructuredtext-lint==2.0.2"", ""wheel==0.47.0"", ""pyproject-api==1.10.0"", ""openedx-events==11.2.0"", ""markupsafe==3.0.3"", ""soupsieve==2.8.3"", ""wcwidth==0.7.0"", ""xmlsec==1.3.14"", ""sphinxcontrib-htmlhelp==2.1.0"", ""build==1.5.0"", ""django-fernet-fields-v2==0.9"", ""dnspython==2.8.0"", ""requests-toolbelt==1.0.0"", ""jsondiff==2.2.1"", ""drf-jwt==1.19.2"", ""click-log==0.4.0"", ""jsonfield==3.2.0"", ""twine==1.11.0"", ""idna==3.13"", ""coverage[toml]==7.14.0"", ""cryptography==48.0.0"", ""diff-cover==10.2.0"", ""text-unidecode==1.3"", ""semantic-version==2.10.0"", ""code-annotations==3.0.0"", ""oauthlib==3.3.1"", ""tzlocal==5.3.1"", ""edx-ccx-keys==2.0.2"", ""django-push-notifications==3.3.0"", ""pip-tools==7.5.3"", ""protobuf==6.33.6"", ""dill==0.4.1"", ""roman-numerals-py==4.1.0"", ""six==1.17.0"", ""aniso8601==10.0.1"", ""path-py==12.5.0"", ""requests==2.33.1"", ""tomlkit==0.15.0"", ""sphinx==8.2.3"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""asgiref==3.11.1"", ""cachecontrol==0.14.4"", ""webencodings==0.5.1"", ""python-dateutil==2.9.0.post0"", ""astroid==3.3.11"", ""firebase-admin==7.4.0"", ""django-crum==0.7.9"", ""grpcio-status==1.80.0"", ""responses==0.26.0"", ""roman-numerals==4.1.0"", ""filelock==3.29.0"", ""pygments==2.20.0"", ""edx-drf-extensions==10.6.0"", ""django-ipware==7.0.1"", ""iniconfig==2.3.0"", ""h11==0.16.0"", ""pgpy==0.6.0"", ""django-simple-history==3.11.0"", ""requests-oauthlib==2.0.0"", ""beautifulsoup4==4.14.3"", ""pydocstyle==6.3.0"", ""social-auth-app-django==5.4.1"", ""grpcio==1.80.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""prompt-toolkit==3.0.52"", ""drf-yasg==1.21.15"", ""pylint-plugin-utils==0.9.0"", ""pkginfo==1.12.1.2"", ""testfixtures==11.0.0"", ""django==5.2.14"", ""bcrypt==5.0.0"", ""django-countries==8.2.0"", ""pytz==2026.2"", ""babel==2.18.0"", ""proto-plus==1.28.0"", ""jinja2==3.1.6"", ""stevedore==5.7.0"", ""packaging==26.2"", ""pycodestyle==2.14.0"", ""isodate==0.7.2"", ""django-object-actions==5.0.1"", ""djangorestframework-xml==2.0.0"", ""paramiko==4.0.0"", ""docutils==0.21.2"", ""python-slugify==8.0.4"", ""billiard==4.2.4"", ""charset-normalizer==3.4.7"", ""sphinxcontrib-devhelp==2.0.0"", ""chardet==7.4.3"", ""django-cache-memoize==0.2.1"", ""django-multi-email-field==0.8.0"", ""lxml-html-clean==0.4.4"", ""pydata-sphinx-theme==0.16.1"", ""invoke==3.0.3"", ""edx-i18n-tools==2.0.0"", ""tzdata==2026.2"", ""edx-toggles==6.0.0"", ""platformdirs==4.9.6"", ""edx-braze-client==1.1.3"", ""mock==5.2.0"", ""pillow==12.2.0"", ""uritemplate==4.2.0"", ""readme-renderer==44.0"", ""msgpack==1.1.2""]",243,"[""jaraco-classes==3.4.0"", ""annotated-doc==0.0.4"", ""lxml[html-clean]==5.3.2"", ""google-api-core[grpc]==2.30.3"", ""pyasn1-modules==0.4.2"", ""httpcore==1.0.9"", ""typing-extensions==4.15.0"", ""django-model-utils==5.0.0"", ""googleapis-common-protos==1.75.0"", ""httpx[http2]==0.28.1"", ""tqdm==4.67.3"", ""python-discovery==1.3.0"", ""urllib3==2.7.0"", ""mdurl==0.1.2"", ""pynacl==1.6.2"", ""trio==0.33.0"", ""edx-ace==1.15.0"", ""pytest==9.0.3"", ""simplejson==4.1.1"", ""glob2==0.7"", ""edx-lint==6.1.0"", ""portend==3.2.1"", ""tempora==5.9.0"", ""tincan==1.0.0"", ""path==16.11.0"", ""pylint-celery==0.3"", ""doc8==2.0.0"", ""fastavro==1.12.2"", ""python3-saml==1.16.0"", ""inflection==0.5.1"", ""bleach==6.3.0"", ""pytest-cov==7.1.0"", ""attrs==26.1.0"", ""google-cloud-core==2.6.0"", ""rules==3.5"", ""h2==4.3.0"", ""typer-slim==0.24.0"", ""colorama==0.4.6"", ""defusedxml==0.7.1"", ""django-waffle==5.0.0"", ""vine==5.1.0"", ""click-plugins==1.1.1.2"", ""openedx-atlas==0.7.0"", ""more-itertools==11.0.2"", ""google-cloud-storage==3.10.1"", ""model-bakery==1.23.4"", ""pytest-django==4.12.0"", ""mccabe==0.7.0"", ""sphinx-book-theme==1.2.0"", ""jaraco-text==4.2.0"", ""trio-websocket==0.12.2"", ""faker==40.15.0"", ""edx-rest-api-client==7.0.0"", ""djangorestframework==3.17.1"", ""imagesize==2.0.0"", ""factory-boy==3.3.3"", ""django-mock-queries==2.3.0"", ""pluggy==1.6.0"", ""ddt==1.3.1"", ""lxml==5.3.2"", ""virtualenv==21.3.1"", ""click-didyoumean==0.3.1"", ""psutil==7.2.2"", ""tox==4.53.1"", ""wsproto==1.3.2"", ""selenium==4.43.0"", ""cachetools==7.1.1"", ""distlib==0.4.0"", ""google-resumable-media==2.9.0"", ""pycparser==3.0"", ""pylint-django==2.7.0"", ""celery==5.6.3"", ""tomli-w==1.2.0"", ""anyio==4.13.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sniffio==1.3.1"", ""click-repl==0.3.0"", ""google-auth==2.52.0"", ""jaraco-collections==5.2.1"", ""amqp==5.3.1"", ""django-config-models==3.0.0"", ""edx-api-doc-tools==3.0.0"", ""nh3==0.3.5"", ""snowballstemmer==3.0.1"", ""pymongo==4.4.0"", ""django-oauth-toolkit==1.7.1"", ""google-crc32c==1.8.0"", ""pyproject-hooks==1.2.0"", ""edx-opaque-keys[django]==4.0.0"", ""accessible-pygments==0.0.5"", ""hyperframe==6.1.0"", ""django-filter==25.2"", ""click==8.3.3"", ""pyjwt[crypto]==2.12.1"", ""pylint==3.3.9"", ""polib==1.2.0"", ""python-ipware==3.0.0"", ""edx-rbac==3.0.0"", ""isort==6.1.0"", ""setuptools==82.0.1"", ""pyasn1==0.6.3"", ""pyyaml==6.0.3"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""jwcrypto==1.5.7"", ""slumber==0.7.1"", ""alabaster==1.0.0"", ""sailthru-client==2.2.3"", ""sqlparse==0.5.5"", ""unicodecsv==0.14.1"", ""edx-django-utils==8.0.1"", ""certifi==2026.4.22"", ""ordereddict==1.1"", ""kombu==5.6.2"", ""google-cloud-firestore==2.27.0"", ""cffi==2.0.0"", ""hpack==4.1.0"", ""social-auth-core==4.9.1"", ""cherrypy==18.10.0"", ""openedx-filters==3.3.0"", ""freezegun==1.5.5"", ""restructuredtext-lint==2.0.2"", ""wheel==0.47.0"", ""cheroot==11.1.2"", ""pyproject-api==1.10.0"", ""openedx-events==11.2.0"", ""markupsafe==3.0.3"", ""soupsieve==2.8.3"", ""wcwidth==0.7.0"", ""xmlsec==1.3.14"", ""sphinxcontrib-htmlhelp==2.1.0"", ""typer==0.25.1"", ""build==1.5.0"", ""django-fernet-fields-v2==0.9"", ""dnspython==2.8.0"", ""requests-toolbelt==1.0.0"", ""jsondiff==2.2.1"", ""drf-jwt==1.19.2"", ""click-log==0.4.0"", ""jsonfield==3.2.0"", ""twine==1.11.0"", ""urllib3[socks]==2.7.0"", ""idna==3.13"", ""coverage[toml]==7.14.0"", ""cryptography==48.0.0"", ""diff-cover==10.2.0"", ""text-unidecode==1.3"", ""semantic-version==2.10.0"", ""code-annotations==3.0.0"", ""oauthlib==3.3.1"", ""tzlocal==5.3.1"", ""jaraco-functools==4.4.0"", ""edx-ccx-keys==2.0.2"", ""django-push-notifications==3.3.0"", ""pip==26.1.1"", ""shellingham==1.5.4"", ""pip-tools==7.5.3"", ""protobuf==6.33.6"", ""jaraco-context==6.1.2"", ""jasmine-core==3.99.0"", ""dill==0.4.1"", ""roman-numerals-py==4.1.0"", ""six==1.17.0"", ""aniso8601==10.0.1"", ""path-py==12.5.0"", ""requests==2.33.1"", ""tomlkit==0.15.0"", ""sphinx==8.2.3"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""asgiref==3.11.1"", ""cachecontrol==0.14.4"", ""webencodings==0.5.1"", ""pysocks==1.7.1"", ""python-dateutil==2.9.0.post0"", ""astroid==3.3.11"", ""firebase-admin==7.4.0"", ""django-crum==0.7.9"", ""grpcio-status==1.80.0"", ""responses==0.26.0"", ""roman-numerals==4.1.0"", ""filelock==3.29.0"", ""pygments==2.20.0"", ""edx-drf-extensions==10.6.0"", ""django-ipware==7.0.1"", ""iniconfig==2.3.0"", ""h11==0.16.0"", ""outcome==1.3.0.post0"", ""pgpy==0.6.0"", ""django-simple-history==3.11.0"", ""idna==3.14"", ""requests-oauthlib==2.0.0"", ""beautifulsoup4==4.14.3"", ""pydocstyle==6.3.0"", ""social-auth-app-django==5.4.1"", ""grpcio==1.80.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""prompt-toolkit==3.0.52"", ""drf-yasg==1.21.15"", ""pylint-plugin-utils==0.9.0"", ""pkginfo==1.12.1.2"", ""testfixtures==11.0.0"", ""markdown-it-py==4.2.0"", ""django==5.2.14"", ""bcrypt==5.0.0"", ""django-countries==8.2.0"", ""pytz==2026.2"", ""babel==2.18.0"", ""proto-plus==1.28.0"", ""jinja2==3.1.6"", ""stevedore==5.7.0"", ""packaging==26.2"", ""pycodestyle==2.14.0"", ""isodate==0.7.2"", ""django-object-actions==5.0.1"", ""djangorestframework-xml==2.0.0"", ""paramiko==4.0.0"", ""docutils==0.21.2"", ""python-slugify==8.0.4"", ""billiard==4.2.4"", ""charset-normalizer==3.4.7"", ""sphinxcontrib-devhelp==2.0.0"", ""chardet==7.4.3"", ""django-cache-memoize==0.2.1"", ""django-multi-email-field==0.8.0"", ""lxml-html-clean==0.4.4"", ""pydata-sphinx-theme==0.16.1"", ""invoke==3.0.3"", ""jasmine==3.99.0"", ""websocket-client==1.9.0"", ""edx-i18n-tools==2.0.0"", ""tzdata==2026.2"", ""edx-toggles==6.0.0"", ""sortedcontainers==2.4.0"", ""zc-lockfile==4.0"", ""platformdirs==4.9.6"", ""edx-braze-client==1.1.3"", ""mock==5.2.0"", ""rich==15.0.0"", ""pillow==12.2.0"", ""uritemplate==4.2.0"", ""jinja2==2.11.3"", ""readme-renderer==44.0"", ""msgpack==1.1.2""]",22,"[""code-annotations"", ""django-multi-email-field"", ""edx-api-doc-tools"", ""pylint-django"", ""edx-ace"", ""factory-boy"", ""pytest-django"", ""django-waffle"", ""social-auth-app-django"", ""django-countries"", ""django-object-actions"", ""django-cache-memoize"", ""edx-drf-extensions"", ""edx-toggles"", ""edx-rest-api-client"", ""edx-django-utils"", ""edx-rbac"", ""edx-i18n-tools"", ""djangorestframework"", ""django-config-models"", ""django-oauth-toolkit"", ""django-filter""]",32,"[""code-annotations"", ""django-multi-email-field"", ""edx-api-doc-tools"", ""django-ipware"", ""django-crum"", ""pylint-django"", ""edx-ace"", ""factory-boy"", ""drf-jwt"", ""pytest-django"", ""django-waffle"", ""drf-yasg"", ""jsonfield"", ""social-auth-app-django"", ""djangorestframework-xml"", ""django-countries"", ""django-model-utils"", ""django-object-actions"", ""django-cache-memoize"", ""edx-drf-extensions"", ""edx-toggles"", ""edx-rest-api-client"", ""django-simple-history"", ""rules"", ""edx-django-utils"", ""edx-rbac"", ""edx-i18n-tools"", ""jasmine-core"", ""djangorestframework"", ""django-config-models"", ""django-oauth-toolkit"", ""django-filter""]",16,"[""django-countries"", ""code-annotations"", ""edx-django-utils"", ""django-cache-memoize"", ""edx-ace"", ""edx-drf-extensions"", ""edx-toggles"", ""edx-rbac"", ""django-multi-email-field"", ""edx-api-doc-tools"", ""django-waffle"", ""edx-rest-api-client"", ""edx-i18n-tools"", ""django-config-models"", ""social-auth-app-django"", ""django-filter""]",True,,True,False,True,True,False,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,True,350,"{""total_duration"": ""799 minutes 35 seconds"", ""checks"": [{""name"": ""run_tests (3.12, django52)"", ""duration"": ""13 minutes 42 seconds""}, {""name"": ""run_tests (3.12, quality)"", ""duration"": ""3 minutes 12 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""2 minutes 22 seconds""}, {""name"": ""run_tests (3.12, docs)"", ""duration"": ""2 minutes 8 seconds""}, {""name"": ""run_tests (3.12, pii_check)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 7 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2016-10-12 13:48:42,master,,15891,71,True,False,False,False,False,False,False,2026-06-08 04:59:26,GNU AGPLv3,86,True,0,2741,95485,36447,10718,5772901,604,True,True,False,False,True,False,False,,openedx,5,"['https://github.com/openedx/edx-enterprise/blob/master/LICENSE.txt: 404', 'https://github.com/openedx/edx-enterprise/blob/master/.github/PULL_REQUEST_TEMPLATE_TEMPLATE.md: 404', 'https://openedx.org/getting-help: 403']",True,"['https://img.shields.io/pypi/v/edx-enterprise.svg', 'https://pypi.python.org/pypi/edx-enterprise/', 'http://codecov.io/github/edx/edx-enterprise/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-enterprise?branch=master', 'https://readthedocs.org/projects/open-edx-enterprise-service-documentation/badge/?version=latest', 'http://open-edx-enterprise-service-documentation.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-enterprise.svg', 'https://img.shields.io/github/license/edx/edx-enterprise.svg', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,edx-enterprise,"['3', '3.12']",https://github.com/openedx/edx-enterprise,True,True,True,False,False,False,False,False,False,[],[],"['curl', 'build-essential', 'python3.12-dev', 'install', 'locales', 'python3.12-venv', 'gcc', 'default-libmysqlclient-dev', 'git', 'libssl-dev', 'language-pack-en', 'python3.12', 'pkg-config']",[] +openedx/cc2olx,,,,True,2026-06-08,True,True,False,False,67,0,[],0,,0,0,,,11,"[""django==5.2.13"", ""charset-normalizer==3.4.7"", ""youtube-dl==2021.12.17"", ""urllib3==2.6.3"", ""requests==2.33.1"", ""asgiref==3.11.1"", ""certifi==2026.2.25"", ""attrs==26.1.0"", ""sqlparse==0.5.5"", ""idna==3.11"", ""lxml==6.0.2""]",67,"[""nh3==0.3.4"", ""django==5.2.13"", ""mypy-extensions==1.1.0"", ""mdurl==0.1.2"", ""pygments==2.20.0"", ""urllib3==2.6.3"", ""asgiref==3.11.1"", ""pyproject-api==1.10.0"", ""sqlparse==0.5.5"", ""idna==3.11"", ""jaraco-context==6.1.2"", ""pytest-mock==3.15.1"", ""pytest-cov==7.1.0"", ""cryptography==46.0.6"", ""jeepney==0.9.0"", ""pycodestyle==2.14.0"", ""rich==14.3.3"", ""pyflakes==3.4.0"", ""charset-normalizer==3.4.7"", ""build==1.4.2"", ""rfc3986==2.0.0"", ""docutils==0.22.4"", ""pip-tools==7.5.3"", ""filelock==3.25.2"", ""platformdirs==4.9.4"", ""pyproject-hooks==1.2.0"", ""pip==26.0.1"", ""iniconfig==2.3.0"", ""pytest-django==4.12.0"", ""requests-toolbelt==1.0.0"", ""pathspec==1.0.4"", ""pytokens==0.4.1"", ""black==26.3.1"", ""colorama==0.4.6"", ""requests==2.33.1"", ""mccabe==0.7.0"", ""tomli-w==1.2.0"", ""keyring==25.7.0"", ""attrs==26.1.0"", ""secretstorage==3.5.0"", ""jaraco-functools==4.4.0"", ""coverage[toml]==7.13.5"", ""tox==4.52.0"", ""flake8==7.3.0"", ""markdown-it-py==4.0.0"", ""id==1.6.1"", ""readme-renderer==44.0"", ""virtualenv==21.2.0"", ""jaraco-classes==3.4.0"", ""more-itertools==11.0.1"", ""pycparser==3.0"", ""setuptools==82.0.1"", ""packaging==26.0"", ""cffi==2.0.0"", ""pluggy==1.6.0"", ""youtube-dl==2021.12.17"", ""cachetools==7.0.5"", ""python-discovery==1.2.1"", ""distlib==0.4.0"", ""wheel==0.46.3"", ""certifi==2026.2.25"", ""pytest==9.0.2"", ""xmlformatter==0.2.8"", ""twine==6.2.0"", ""bump2version==1.0.1"", ""click==8.3.2"", ""lxml==6.0.2""]",1,"[""pytest-django""]",1,"[""pytest-django""]",0,[],False,,True,True,True,False,False,True,True,True,True,True,True,False,False,True,True,True,True,False,True,True,True,56,"{""total_duration"": ""4431 minutes 26 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, formatting)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2020-06-29 20:14:54,master,A library to convert Common Cartridge Courses to OLX.,43122,17,True,False,False,False,False,False,False,2026-06-03 02:18:58,GNU AGPLv3,5,True,0,111,7120,0,3811,268868,0,True,False,False,False,True,False,False,,openedx,2,['https://github.com/openedx/cc2olx/actions?query=workflow%3A%22Python+CI%22: 504'],False,"['https://github.com/openedx/cc2olx/workflows/Python%20CI/badge.svg?branch=master', 'https://www.imsglobal.org/activity/common-cartridge', 'https://github.com/raccoongang/xblock-pdf', 'https://github.com/openedx/xblock-google-drive', 'https://s3.amazonaws.com/public-imscc/c075c6df1f674a7b9d9192307e812f74.imscc', 'https://lor.instructure.com/resources/c075c6df1f674a7b9d9192307e812f74', 'https://s3.amazonaws.com/public-imscc/faa3332ffd834070ad81d97bdb236649.imscc', 'https://lor.instructure.com/resources/faa3332ffd834070ad81d97bdb236649', 'https://s3.amazonaws.com/public-imscc/d933c048da6d4fd5a9cb552148d628cb.imscc', 'https://lor.instructure.com/resources/d933c048da6d4fd5a9cb552148d628cb']",True,True,False,False,,,False,,,,False,True,False,True,,False,cc2olx,"['3', '3.12']",https://github.com/openedx/cc2olx,True,True,True,False,False,False,False,False,False,[],[],[],[] +openedx/edx-bootstrap,,,,False,2026-06-08,False,False,False,False,19,0,,0,{},1,18,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/stylelint-config-edx"": ""2.3.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""chroma-js"": ""3.2.0"", ""classnames"": ""2.5.1"", ""gh-pages"": ""6.3.0"", ""husky"": ""9.1.7"", ""jquery"": ""3.7.1"", ""lodash"": ""4.18.1"", ""node-sass"": ""9.0.0"", ""popper.js"": ""1.16.1"", ""prop-types"": ""15.8.1"", ""react"": ""17.0.2"", ""react-dom"": ""17.0.2"", ""react-router-dom"": ""6.30.3"", ""react-router-hash-link"": ""2.4.3""}","{""bootstrap"": ""4.6.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,True,True,27,"{""total_duration"": ""2 minutes 5 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""2 minutes 5 seconds""}, {""name"": ""tests"", ""duration"": ""1 minutes 57 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2017-06-23 20:12:07,master,Bootstrap theme for Open edX,9245,23,True,False,False,False,False,False,False,2026-06-05 09:07:44,Apache License 2.0,10,True,0,0,5465,144263,0,0,0,False,False,False,False,False,False,False,@edx/edx-bootstrap,openedx,0,['https://badge.fury.io/js/%40edx%2Fedx-bootstrap: 403'],False,"['https://badge.fury.io/js/%40edx%2Fedx-bootstrap.svg', 'http://getbootstrap.com', 'https://github.com/openedx/edx-bootstrap.git', 'https://github.com/nvm-sh/nvm', 'https://openedx.slack.com/messages/C0EUBSV7D', 'https://openedx.slack.com/messages/C02BMP2RD5Y', 'https://github.com/openedx/edx-bootstrap/blob/master/LICENSE', 'https://open.edx.org/wp-content/uploads/2019/01/individual-contributor-agreement.pdf', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,True,2026-04-06,2021-08-23,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/platform-plugin-aspects,,,,True,2026-06-08,True,True,False,False,148,0,[],0,,0,0,,,60,"[""celery==5.6.3"", ""click-plugins==1.1.1.2"", ""stevedore==5.8.0"", ""amqp==5.3.1"", ""web-fragments==4.0.0"", ""idna==3.17"", ""wcwidth==0.7.0"", ""openedx-atlas==0.7.0"", ""edx-opaque-keys[django]==4.0.0"", ""text-unidecode==1.3"", ""oauthlib==3.3.1"", ""requests-oauthlib==2.0.0"", ""kombu==5.6.2"", ""six==1.17.0"", ""simplejson==4.1.1"", ""click==8.4.1"", ""pycparser==3.0"", ""psutil==7.2.2"", ""pyyaml==6.0.3"", ""edx-django-utils==8.0.1"", ""prompt-toolkit==3.0.52"", ""click-didyoumean==0.3.1"", ""mako==1.3.12"", ""python-slugify==8.0.4"", ""dnspython==2.8.0"", ""charset-normalizer==3.4.7"", ""markupsafe==3.0.3"", ""pytz==2026.2"", ""webob==1.8.9"", ""edx-toggles==6.0.0"", ""djangorestframework==3.17.1"", ""tzdata==2026.2"", ""vine==5.1.0"", ""xblock==6.1.0"", ""prison==0.2.1"", ""python-dateutil==2.9.0.post0"", ""packaging==26.2"", ""appdirs==1.4.4"", ""openedx-filters==3.4.1"", ""django==5.2.14"", ""jinja2==3.1.6"", ""tzlocal==5.3.1"", ""superset-api-client==0.6.0"", ""cffi==2.0.0"", ""code-annotations==3.0.0"", ""django-waffle==5.0.0"", ""requests==2.34.2"", ""billiard==4.2.4"", ""sqlparse==0.5.5"", ""lxml==6.1.1"", ""certifi==2026.5.20"", ""django-crum==0.7.9"", ""typing-extensions==4.15.0"", ""urllib3==2.7.0"", ""fs==2.4.16"", ""pymongo==4.17.0"", ""click-repl==0.3.0"", ""pynacl==1.6.2"", ""redis==8.0.0"", ""asgiref==3.11.1""]",148,"[""tomlkit==0.15.0"", ""black==26.5.1"", ""pytokens==0.4.1"", ""filelock==3.29.0"", ""pycodestyle==2.14.0"", ""coverage[toml]==7.14.1"", ""pathspec==1.1.1"", ""edx-django-utils==8.0.1"", ""pyproject-hooks==1.2.0"", ""charset-normalizer==3.4.7"", ""sphinxcontrib-jsmath==1.0.1"", ""webob==1.8.9"", ""restructuredtext-lint==2.0.2"", ""cryptography==48.0.0"", ""chardet==7.4.3"", ""tzdata==2026.2"", ""pyproject-api==1.10.1"", ""sphinx-book-theme==1.2.0"", ""prison==0.2.1"", ""responses==0.26.1"", ""babel==2.18.0"", ""pylint-django==2.7.0"", ""appdirs==1.4.4"", ""openedx-filters==3.4.1"", ""pluggy==1.6.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""jinja2==3.1.6"", ""mdurl==0.1.2"", ""id==1.6.1"", ""accessible-pygments==0.0.5"", ""distlib==0.4.0"", ""edx-lint==6.1.0"", ""alabaster==1.0.0"", ""sphinx==9.1.0"", ""lxml-html-clean==0.4.5"", ""pylint-celery==0.3"", ""requests==2.34.2"", ""imagesize==2.0.0"", ""django-crum==0.7.9"", ""setuptools==82.0.1"", ""pymongo==4.17.0"", ""click-log==0.4.0"", ""readme-renderer==44.0"", ""pylint-plugin-utils==0.9.0"", ""celery==5.6.3"", ""stevedore==5.8.0"", ""virtualenv==21.4.2"", ""edx-opaque-keys[django]==4.0.0"", ""rfc3986==2.0.0"", ""six==1.17.0"", ""model-bakery==1.23.4"", ""mccabe==0.7.0"", ""click-didyoumean==0.3.1"", ""jaraco-functools==4.5.0"", ""snowballstemmer==3.1.0"", ""python-slugify==8.0.4"", ""dnspython==2.8.0"", ""pytz==2026.2"", ""edx-i18n-tools==2.0.0"", ""python-discovery==1.4.0"", ""jaraco-classes==3.4.0"", ""xblock==6.1.0"", ""iniconfig==2.3.0"", ""packaging==26.2"", ""pytest==9.0.3"", ""soupsieve==2.8.4"", ""django==5.2.14"", ""secretstorage==3.5.0"", ""platformdirs==4.10.0"", ""cffi==2.0.0"", ""typing-extensions==4.15.0"", ""lxml==6.1.1"", ""urllib3==2.7.0"", ""fs==2.4.16"", ""roman-numerals==4.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""path==16.16.0"", ""click-plugins==1.1.1.2"", ""web-fragments==4.0.0"", ""amqp==5.3.1"", ""sphinxcontrib-devhelp==2.0.0"", ""idna==3.17"", ""wcwidth==0.7.0"", ""pydocstyle==6.3.0"", ""text-unidecode==1.3"", ""oauthlib==3.3.1"", ""requests-oauthlib==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""kombu==5.6.2"", ""django-mock-queries==2.3.0"", ""simplejson==4.1.1"", ""click==8.4.1"", ""lxml[html-clean]==6.1.1"", ""pycparser==3.0"", ""twine==6.2.0"", ""psutil==7.2.2"", ""prompt-toolkit==3.0.52"", ""doc8==2.0.0"", ""rich==15.0.0"", ""mypy-extensions==1.1.0"", ""cachetools==7.1.4"", ""djangorestframework==3.17.1"", ""pytest-cov==7.1.0"", ""jeepney==0.9.0"", ""beautifulsoup4==4.14.3"", ""colorama==0.4.6"", ""polib==1.2.0"", ""tzlocal==5.3.1"", ""docutils==0.21.2"", ""ddt==1.7.2"", ""billiard==4.2.4"", ""build==1.5.0"", ""sqlparse==0.5.5"", ""more-itertools==11.1.0"", ""click-repl==0.3.0"", ""redis==8.0.0"", ""markdown-it-py==4.2.0"", ""keyring==25.7.0"", ""openedx-atlas==0.7.0"", ""pydata-sphinx-theme==0.16.1"", ""pyyaml==6.0.3"", ""pip==26.1.2"", ""wheel==0.47.0"", ""tox==4.55.0"", ""sphinxcontrib-applehelp==2.0.0"", ""mako==1.3.12"", ""dill==0.4.1"", ""markupsafe==3.0.3"", ""edx-toggles==6.0.0"", ""requests-toolbelt==1.0.0"", ""vine==5.1.0"", ""isort==8.0.1"", ""python-dateutil==2.9.0.post0"", ""diff-cover==10.3.0"", ""superset-api-client==0.6.0"", ""tomli-w==1.2.0"", ""nh3==0.3.5"", ""pip-tools==7.5.3"", ""code-annotations==3.0.0"", ""django-waffle==5.0.0"", ""certifi==2026.5.20"", ""pylint==4.0.5"", ""pytest-django==4.12.0"", ""pynacl==1.6.2"", ""pygments==2.20.0"", ""astroid==4.0.4"", ""jaraco-context==6.1.2"", ""asgiref==3.11.1""]",10,"[""djangorestframework"", ""code-annotations"", ""pylint-django"", ""web-fragments"", ""edx-toggles"", ""xblock"", ""pytest-django"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils""]",11,"[""djangorestframework"", ""code-annotations"", ""pylint-django"", ""web-fragments"", ""edx-toggles"", ""xblock"", ""pytest-django"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""django-crum""]",7,"[""code-annotations"", ""web-fragments"", ""edx-toggles"", ""xblock"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils""]",False,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""6457 minutes 56 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, quality)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django52)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, django42)"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, docs)"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""tests (ubuntu-24.04, 3.12, pii_check)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Run tests & display coverage"", ""duration"": ""0 minutes 9 seconds""}, {""name"": ""Run tests & display coverage"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2024-02-29 19:49:46,main,Aspects plugins for the Open edX LMS and Studio,3807,13,True,False,False,False,False,False,False,2026-06-08 00:59:42,Apache License 2.0,1,True,841,0,2484,4162,5302,234888,0,True,True,False,False,True,False,False,,openedx,1,"['https://openedx.org/getting-help: 403', 'https://github.com/openedx/edx-platform: 504', 'https://www.npmjs.com/package/@superset-ui/embedded-sdk: 403']",True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://docs.openedx.org/projects/platform-plugin-aspects', 'https://discuss.openedx.org', 'https://github.com/openedx/platform-plugin-aspects/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/platform-plugin-aspects', 'https://github.com/openedx/openedx-events', 'https://clickhouse.com', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html', 'https://docs.openedx.org/projects/openedx-filters/en/latest/', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/backfill.html']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,platform-plugin-aspects,"['3', '3.12']",https://github.com/openedx/platform-plugin-aspects,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/mockprock,,,,True,2026-06-08,False,False,False,False,46,0,[],0,{},1,0,{},"{""@edx/edx-proctoring"": ""^4.9.0""}",0,[],45,"[""code-annotations==2.3.0"", ""pylint-django==2.6.1"", ""jinja2==2.11.3"", ""setuptools==79.0.0"", ""pyyaml==6.0.2"", ""requests==2.32.3"", ""mccabe==0.7.0"", ""pip==24.2"", ""platformdirs==4.3.7"", ""werkzeug==1.0.1"", ""click-log==0.4.0"", ""pbr==6.1.1"", ""pylint-plugin-utils==0.8.2"", ""python-slugify==8.0.4"", ""flask==1.1.4"", ""pluggy==1.5.0"", ""pytest==8.3.5"", ""coverage[toml]==7.8.0"", ""certifi==2025.1.31"", ""pylint-celery==0.3"", ""charset-normalizer==3.4.1"", ""jinja2==3.1.6"", ""urllib3==2.4.0"", ""idna==3.10"", ""build==1.2.2.post1"", ""tomlkit==0.13.2"", ""pylint==3.3.6"", ""packaging==25.0"", ""stevedore==5.4.1"", ""dill==0.4.0"", ""click==7.1.2"", ""text-unidecode==1.3"", ""pip-tools==7.4.1"", ""pytest-cov==6.1.1"", ""markupsafe==3.0.2"", ""wheel==0.45.1"", ""astroid==3.3.9"", ""itsdangerous==1.1.0"", ""isort==6.0.1"", ""pyproject-hooks==1.2.0"", ""click==8.1.8"", ""edx-lint==5.6.0"", ""six==1.17.0"", ""iniconfig==2.1.0"", ""pyjwt==2.10.1""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,False,False,True,False,False,False,True,True,True,False,True,True,True,True,False,True,False,False,True,True,True,15,"{""total_duration"": ""0 minutes 4 seconds"", ""checks"": [{""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2018-11-16 19:08:31,master,mock proctoring package,387,8,True,False,False,False,False,False,False,2026-05-30 15:27:16,Apache License 2.0,3,False,0,0,544,1728,1928,27357,0,True,True,False,True,True,False,True,@edx/mockprock,openedx,5,[],False,['https://github.com/openedx/edx-proctoring/'],True,True,False,False,,,True,,,0,False,False,False,True,,False,mockprock,"['3', '3.11', '3.12']",,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-gradebook,,,,False,2026-06-08,True,True,False,False,47,0,,0,{},35,12,"{""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.4"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""es-check"": ""^2.3.0"", ""fetch-mock"": ""^12.2.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.7.0"", ""react-dev-utils"": ""^12.0.1"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""^1.5.3""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^6.6.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@fortawesome/fontawesome-svg-core"": ""^1.2.25"", ""@fortawesome/free-brands-svg-icons"": ""^5.11.2"", ""@fortawesome/free-solid-svg-icons"": ""^5.11.2"", ""@fortawesome/react-fontawesome"": ""^0.1.5"", ""@openedx/frontend-plugin-framework"": ""^1.6.0"", ""@openedx/paragon"": ""^23.4.5"", ""@redux-beacon/segment"": ""^1.0.0"", ""@reduxjs/toolkit"": ""^1.5.1"", ""classnames"": ""^2.2.6"", ""core-js"": ""3.6.5"", ""email-prop-type"": ""^1.1.7"", ""font-awesome"": ""4.7.0"", ""history"": ""4.10.1"", ""prop-types"": ""15.8.1"", ""query-string"": ""6.13.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-redux"": ""^7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""react-router-redux"": ""^5.0.0-alpha.9"", ""redux"": ""4.0.5"", ""redux-beacon"": ""^2.1.0"", ""redux-devtools-extension"": ""2.13.8"", ""redux-logger"": ""3.0.6"", ""redux-thunk"": ""2.3.0"", ""regenerator-runtime"": ""^0.13.7"", ""sass"": ""^1.49.0"", ""whatwg-fetch"": ""^2.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,60,"{""total_duration"": ""26620 minutes 27 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""2 minutes 53 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2018-10-17 15:49:15,master,Instructor grade book tool,10198,116,True,False,False,False,False,False,False,2026-06-08 01:04:46,GNU AGPLv3,17,True,0,0,381,559794,1890,0,0,False,False,False,False,True,False,False,@edx/frontend-app-gradebook,openedx,0,"['http://apps.local.openedx.io/gradebook/course-v1: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: /gradebook/course-v1 (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://travis-ci.com/edx/frontend-app-gradebook: 415']",False,"['https://docs.openedx.org/en/latest/educators/how-tos/data/view_learner_grades.html', 'https://docs.openedx.org/en/latest/educators/how-tos/data/manage_learner_grades.html', 'https://github.com/openedx/frontend-app-gradebook.git', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-plugin-framework', 'https://webpack.js.org/', 'https://github.com/edx-unsupported/frontend-auth', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-gradebook/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://api.travis-ci.com/edx/frontend-app-gradebook.svg?branch=master', 'https://img.shields.io/codecov/c/gh/openedx/frontend-app-gradebook', 'https://app.codecov.io/gh/openedx/frontend-app-gradebook', 'https://img.shields.io/npm/v/@edx/frontend-app-gradebook.svg', 'https://img.shields.io/npm/dt/@edx/frontend-app-gradebook.svg', 'https://img.shields.io/npm/l/@edx/frontend-app-gradebook.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xblock-sdk,,,,True,2026-06-08,True,True,False,False,84,0,[],0,,0,0,,,41,"[""webob==1.8.9"", ""web-fragments==4.0.0"", ""xblock[django]==6.1.0"", ""pypng==0.20220715.0"", ""charset-normalizer==3.4.7"", ""click==8.4.1"", ""certifi==2026.5.20"", ""django==5.2.14"", ""pyyaml==6.0.3"", ""jmespath==1.1.0"", ""mako==1.3.12"", ""cookiecutter==2.7.1"", ""text-unidecode==1.3"", ""asgiref==3.11.1"", ""jinja2==3.1.6"", ""markdown-it-py==4.2.0"", ""urllib3==2.7.0"", ""markupsafe==3.0.3"", ""lxml==6.1.1"", ""appdirs==1.4.4"", ""simplejson==4.1.1"", ""fs-s3fs==1.1.1"", ""python-slugify==8.0.4"", ""boto3==1.43.18"", ""python-dateutil==2.9.0.post0"", ""botocore==1.43.18"", ""pygments==2.20.0"", ""arrow==1.4.0"", ""lazy==1.6"", ""tzdata==2026.2"", ""s3transfer==0.18.0"", ""mdurl==0.1.2"", ""pytz==2026.2"", ""rich==15.0.0"", ""openedx-django-pyfs==4.0.0"", ""sqlparse==0.5.5"", ""fs==2.4.16"", ""six==1.17.0"", ""requests==2.34.2"", ""binaryornot==0.6.0"", ""idna==3.17""]",84,"[""certifi==2026.5.20"", ""django==5.2.14"", ""ddt==1.7.2"", ""mako==1.3.12"", ""colorama==0.4.6"", ""dill==0.4.1"", ""pylint-django==2.7.0"", ""click-log==0.4.0"", ""astroid==4.0.4"", ""distlib==0.4.0"", ""stevedore==5.8.0"", ""python-slugify==8.0.4"", ""edx-lint==6.1.0"", ""tomlkit==0.15.0"", ""code-annotations==3.0.0"", ""setuptools==81.0.0"", ""cachetools==7.1.4"", ""acid-xblock==0.4.1"", ""mdurl==0.1.2"", ""pytz==2026.2"", ""pytest==9.0.3"", ""isort==8.0.1"", ""jmespath==1.1.0"", ""wheel==0.47.0"", ""mccabe==0.7.0"", ""asgiref==3.11.1"", ""jinja2==3.1.6"", ""pycodestyle==2.14.0"", ""appdirs==1.4.4"", ""botocore==1.43.18"", ""pydocstyle==6.3.0"", ""filelock==3.29.0"", ""python-discovery==1.4.0"", ""snowballstemmer==3.1.0"", ""pyproject-hooks==1.2.0"", ""pylint-plugin-utils==0.9.0"", ""coverage[toml]==7.14.1"", ""pip-tools==7.5.3"", ""pypng==0.20220715.0"", ""click==8.4.1"", ""pyyaml==6.0.3"", ""cookiecutter==2.7.1"", ""text-unidecode==1.3"", ""pytest-django==4.12.0"", ""markdown-it-py==4.2.0"", ""urllib3==2.7.0"", ""markupsafe==3.0.3"", ""lxml==6.1.1"", ""simplejson==4.1.1"", ""pip==26.1.1"", ""platformdirs==4.10.0"", ""virtualenv==21.4.1"", ""pygments==2.20.0"", ""pylint==4.0.5"", ""lazy==1.6"", ""iniconfig==2.3.0"", ""pytest-cov==7.1.0"", ""pytest-rerunfailures==16.3"", ""fs==2.4.16"", ""pyproject-api==1.10.1"", ""binaryornot==0.6.0"", ""tox==4.55.0"", ""webob==1.8.9"", ""web-fragments==4.0.0"", ""xblock[django]==6.1.0"", ""charset-normalizer==3.4.7"", ""pylint-celery==0.3"", ""fs-s3fs==1.1.1"", ""packaging==26.2"", ""boto3==1.43.18"", ""python-dateutil==2.9.0.post0"", ""pluggy==1.6.0"", ""mock==5.2.0"", ""arrow==1.4.0"", ""tzdata==2026.2"", ""s3transfer==0.18.0"", ""sqlparse==0.5.5"", ""rich==15.0.0"", ""openedx-django-pyfs==4.0.0"", ""build==1.5.0"", ""tomli-w==1.2.0"", ""six==1.17.0"", ""requests==2.34.2"", ""idna==3.17""]",4,"[""pytest-django"", ""code-annotations"", ""web-fragments"", ""pylint-django""]",4,"[""pytest-django"", ""code-annotations"", ""web-fragments"", ""pylint-django""]",2,"[""code-annotations"", ""web-fragments""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,35,"{""total_duration"": ""4908 minutes 52 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""run_tests (3.12, quality)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""run_tests (3.12, django42)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""run_tests (3.12, django52)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2014-03-06 20:34:41,master,Workbench and example xblocks,1877,104,True,False,False,False,False,False,False,2026-06-07 00:36:57,Apache License 2.0,2,True,14419,0,8892,237928,3559,135793,0,True,True,False,False,True,False,False,,openedx,3,"['http://docs.seleniumhq.org/: HTTPConnectionPool(host=\'docs.seleniumhq.org\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'docs.seleniumhq.org\', port=80): Failed to resolve \'docs.seleniumhq.org\' ([Errno -2] Name or service not known)""))', 'http://coverage.readthedocs.org/: 429', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403', 'https://docs.openedx.org/projects/xblock-sdk: 404', 'https://github.com/openedx/xblock-sdk/blob/main/LICENSE.txt: 404']",True,"['https://docs.djangoproject.com/en/1.11/topics/testing/tools/', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/sdk/get_started_sdk.html', 'https://discuss.openedx.org', 'https://github.com/openedx/xblock-sdk/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/xblock-sdk', 'https://img.shields.io/pypi/v/xblock-sdk.svg', 'https://pypi.python.org/pypi/xblock-sdk/', 'https://github.com/openedx/xblock-sdk/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/xblock-sdk/actions', 'https://codecov.io/github/openedx/xblock-sdk/coverage.svg?branch=main', 'https://codecov.io/github/openedx/xblock-sdk?branch=main', 'https://readthedocs.org/projects/xblock-sdk/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/xblock-sdk.svg', 'https://img.shields.io/github/license/openedx/xblock-sdk.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/index.html', 'https://openedx.atlassian.net/wiki/display/OPEN/XBlock+review+guidelines', 'https://github.com/openedx/xblock-sdk/blob/master/sample_xblocks/README.rst', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/43385346/XBlocks+Directory']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-sdk,"['3', '3.12']",,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/help-tokens,,,,True,2026-06-08,True,True,False,False,92,0,[],0,,0,0,,,5,"[""django==4.2.11"", ""asgiref==3.8.1"", ""sqlparse==0.4.4"", ""backports-zoneinfo==0.2.1 ; python_version < \""3.9\"""", ""typing-extensions==4.10.0""]",92,"[""pylint-plugin-utils==0.9.0"", ""pytest-cov==7.1.0"", ""pylint-django==2.7.0"", ""pylint-celery==0.3"", ""id==1.6.1"", ""pylint==4.0.5"", ""jaraco-context==6.1.2"", ""tomlkit==0.15.0"", ""astroid==4.0.4"", ""rfc3986==2.0.0"", ""certifi==2026.5.20"", ""asgiref==3.11.1"", ""requests-toolbelt==1.0.0"", ""typing-extensions==4.10.0"", ""diff-cover==10.3.0"", ""lxml[html-clean]==6.1.1"", ""nh3==0.3.5"", ""pydocstyle==6.3.0"", ""django==4.2.11"", ""twine==6.2.0"", ""jinja2==3.1.6"", ""code-annotations==3.0.0"", ""urllib3==2.7.0"", ""sqlparse==0.5.5"", ""pluggy==1.6.0"", ""pygments==2.20.0"", ""setuptools==82.0.1"", ""jaraco-functools==4.5.0"", ""edx-lint==6.1.0"", ""path==16.16.0"", ""readme-renderer==44.0"", ""python-slugify==8.0.4"", ""click==8.4.1"", ""keyring==25.7.0"", ""edx-i18n-tools==2.0.0"", ""click-log==0.4.0"", ""pip==26.1.2"", ""cffi==2.0.0"", ""requests==2.34.2"", ""platformdirs==4.10.0"", ""secretstorage==3.5.0"", ""sqlparse==0.4.4"", ""tox==4.55.0"", ""pytest-catchlog==1.2.2"", ""pyproject-hooks==1.2.0"", ""pytest==9.0.3"", ""colorama==0.4.6"", ""build==1.5.0"", ""mccabe==0.7.0"", ""tomli-w==1.2.0"", ""filelock==3.29.0"", ""pip-tools==7.5.3"", ""more-itertools==11.1.0"", ""distlib==0.4.1"", ""rich==15.0.0"", ""charset-normalizer==3.4.7"", ""snowballstemmer==3.1.1"", ""markupsafe==3.0.3"", ""polib==1.2.0"", ""jaraco-classes==3.4.0"", ""coverage[toml]==7.14.1"", ""dill==0.4.1"", ""cachetools==7.1.4"", ""pyproject-api==1.10.1"", ""pycodestyle==2.14.0"", ""idna==3.18"", ""django==5.2.14"", ""isort==8.0.1"", ""jeepney==0.9.0"", ""pyyaml==6.0.3"", ""docutils==0.23"", ""pytest-django==4.12.0"", ""six==1.17.0"", ""virtualenv==21.4.2"", ""py==1.11.0"", ""chardet==7.4.3"", ""cryptography==48.0.0"", ""python-discovery==1.4.0"", ""coverage==7.14.1"", ""lxml-html-clean==0.4.5"", ""pycparser==3.0"", ""wheel==0.47.0"", ""markdown-it-py==4.2.0"", ""packaging==26.2"", ""asgiref==3.8.1"", ""backports-zoneinfo==0.2.1 ; python_version < \""3.9\"""", ""edx-django-release-util==1.5.0"", ""iniconfig==2.3.0"", ""mdurl==0.1.2"", ""text-unidecode==1.3"", ""codecov==2.1.13"", ""stevedore==5.8.0""]",5,"[""pylint-django"", ""edx-django-release-util"", ""pytest-django"", ""code-annotations"", ""edx-i18n-tools""]",5,"[""pylint-django"", ""edx-django-release-util"", ""pytest-django"", ""code-annotations"", ""edx-i18n-tools""]",3,"[""edx-django-release-util"", ""code-annotations"", ""edx-i18n-tools""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,61,"{""total_duration"": ""0 minutes 37 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 25 seconds""}]}",Other,2017-04-26 19:09:45,master,A Django app for resolving help tokens to full URLs.,344,6,True,False,False,False,False,False,False,2026-06-03 21:47:00,GNU AGPLv3,6,True,0,0,0,0,3137,15760,0,True,True,False,False,True,False,False,,openedx,2,['https://open.edx.org/getting-help: 403'],True,"['https://docs.openedx.org/en/latest/learners', 'https://docs.openedx.org/en/latest/educators', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/help-tokens/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/help-tokens/blob/master/.github/ISSUE_TEMPLATE.md', 'https://img.shields.io/pypi/v/help-tokens.svg', 'https://pypi.python.org/pypi/help-tokens/', 'https://github.com/openedx/help-tokens/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/help-tokens/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/help-tokens/coverage.svg?branch=master', 'http://codecov.io/github/edx/help-tokens?branch=master', 'https://img.shields.io/pypi/pyversions/help-tokens.svg', 'https://img.shields.io/github/license/edx/help-tokens.svg', 'https://github.com/openedx/help-tokens/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,help-tokens,"['3', '3.11', '3.12']",https://github.com/openedx/help-tokens,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/xblock-free-text-response,,,,True,2026-06-08,True,True,False,False,81,0,[],0,{},0,3,"{""eslint"": ""8.12.0"", ""less"": ""4.1.2"", ""csslint"": ""1.0.5""}",{},16,"[""python-dateutil==2.9.0.post0"", ""django==4.2.19"", ""appdirs==1.4.4"", ""simplejson==3.19.3"", ""markupsafe==3.0.2"", ""pyyaml==6.0.2"", ""six==1.17.0"", ""webob==1.8.9"", ""asgiref==3.8.1"", ""pytz==2025.1"", ""lxml==4.9.4"", ""mako==1.3.9"", ""web-fragments==2.2.0"", ""fs==2.4.16"", ""xblock==5.1.2"", ""sqlparse==0.5.3""]",78,"[""astroid==3.3.8"", ""django==4.2.19"", ""wheel==0.45.1"", ""asgiref==3.8.1"", ""botocore==1.36.17"", ""pypng==0.20220715.0"", ""xblock==5.1.2"", ""tox==4.24.1"", ""pytz==2025.1"", ""build==1.2.2.post1"", ""edx-opaque-keys==2.11.0"", ""mock==5.1.0"", ""requests==2.32.3"", ""isort==6.0.0"", ""fs==2.4.16"", ""pylint==3.3.4"", ""coverage[toml]==7.6.11"", ""tomlkit==0.13.2"", ""packaging==24.2"", ""mccabe==0.7.0"", ""typing-extensions==4.12.2"", ""platformdirs==4.3.6"", ""pymongo==4.11.1"", ""python-dateutil==2.9.0.post0"", ""fs-s3fs==1.1.1"", ""docopt==0.6.2"", ""click==8.1.8"", ""idna==3.10"", ""lxml==4.9.4"", ""mdurl==0.1.2"", ""binaryornot==0.4.4"", ""python-slugify==8.0.4"", ""pbr==6.1.1"", ""dnspython==2.7.0"", ""boto3==1.36.17"", ""s3transfer==0.11.2"", ""pycodestyle==2.12.1"", ""pip==24.2"", ""virtualenv==20.29.2"", ""dill==0.3.9"", ""lazy==1.6"", ""cookiecutter==2.6.0"", ""web-fragments==2.2.0"", ""sqlparse==0.5.3"", ""pyproject-hooks==1.2.0"", ""pyproject-api==1.9.0"", ""django-pyfs==3.2.0"", ""pip-tools==7.4.1"", ""jmespath==1.0.1"", ""types-python-dateutil==2.9.0.20241206"", ""appdirs==1.4.4"", ""webob==1.8.9"", ""stevedore==5.4.0"", ""pyyaml==6.0.2"", ""six==1.17.0"", ""pluggy==1.5.0"", ""certifi==2025.1.31"", ""markupsafe==3.0.2"", ""charset-normalizer==3.4.1"", ""filelock==3.17.0"", ""mako==1.3.9"", ""setuptools==75.8.0"", ""coveralls==4.0.1"", ""chardet==5.2.0"", ""coverage==7.6.11"", ""text-unidecode==1.3"", ""jinja2==3.1.5"", ""xblock-sdk==0.12.0"", ""markdown-it-py==3.0.0"", ""cachetools==5.5.1"", ""ddt==1.7.2"", ""colorama==0.4.6"", ""simplejson==3.19.3"", ""rich==13.9.4"", ""distlib==0.3.9"", ""pygments==2.19.1"", ""arrow==1.3.0"", ""urllib3==2.2.3""]",5,"[""xblock-sdk"", ""web-fragments"", ""xblock"", ""django-pyfs"", ""edx-opaque-keys""]",5,"[""xblock-sdk"", ""web-fragments"", ""xblock"", ""django-pyfs"", ""edx-opaque-keys""]",4,"[""xblock-sdk"", ""xblock"", ""edx-opaque-keys"", ""web-fragments""]",False,,True,False,True,False,False,False,True,True,True,True,True,True,True,True,False,True,True,False,True,False,False,15,"{""total_duration"": ""71852 minutes 58 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, translations_validate)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, translations_validate)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, csslint)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, quality)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, django52)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, eslint)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.11, eslint)"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2020-01-27 18:09:29,master,,428,20,True,False,False,False,True,False,False,2026-05-15 04:57:19,GNU AGPLv3,5,True,3078,236,2484,7271,6853,58878,0,False,True,False,False,True,False,False,,openedx,7,['https://github.com/openedx/xblock-free-text-response/actions?query=workflow%3A%22Python+CI%22: 504'],False,"['https://coveralls.io/repos/github/Stanford-Online/xblock-free-text-response/badge.svg?branch=master', 'https://coveralls.io/github/Stanford-Online/xblock-free-text-response?branch=master', 'https://github.com/openedx/xblock-free-text-response/workflows/Python%20CI/badge.svg?branch=master']",True,True,False,False,,,True,,,0,False,True,False,False,,False,xblock-free-text-response,"['3', '3.11', '3.12']",https://github.com/Stanford-Online/xblock-free-text-response,True,True,True,False,False,False,False,False,False,[],[],[],[] +openedx/frontend-app-communications,,,,False,2026-06-08,False,False,False,False,39,0,,0,{},29,10,"{""@edx/browserslist-config"": ""^1.2.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""axios-mock-adapter"": ""1.21.2"", ""glob"": ""7.2.3"", ""jest"": ""29.7.0"", ""prettier"": ""2.8.1"", ""rosie"": ""2.1.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^6.6.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@edx/tinymce-language-selector"": ""1.1.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.0"", ""@openedx/frontend-plugin-framework"": ""^1.6.0"", ""@openedx/paragon"": ""^23.3.0"", ""@tinymce/tinymce-react"": ""3.14.0"", ""axios"": ""0.27.2"", ""classnames"": ""2.3.2"", ""core-js"": ""3.26.1"", ""jquery"": ""3.6.1"", ""popper.js"": ""1.16.1"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""redux"": ""4.2.0"", ""regenerator-runtime"": ""0.13.11"", ""tinymce"": ""5.10.7""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,21,"{""total_duration"": ""33699 minutes 0 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 29 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2021-12-03 16:33:28,master,Frontend to manage instructor-learner communications,5221,61,True,False,False,False,False,False,False,2026-06-08 00:38:16,GNU AGPLv3,3,True,0,0,386,152177,1716,0,0,False,False,False,False,False,False,False,@edx/frontend-app-communications,openedx,0,"['https://github.com/overhangio/tutor: 504', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file: 504', 'https://github.com/edx/frontend-app-communications.git: 504', 'https://github.com/openedx/frontend-plugin-framework: 504', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst: 504', 'https://github.com/openedx/frontend-app-communications/issues: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-communications: 404', 'https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml: 504']",False,"['https://github.com/nvm-sh/nvm', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-communications.svg', 'https://github.com/openedx/frontend-app-communications/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml/badge.svg', 'https://codecov.io/github/openedx/frontend-app-communications/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-communications?branch=master']",True,True,False,False,,,True,2022-12-12,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/browserslist-config,,,,False,2026-06-08,False,False,False,False,1,0,,0,{},0,1,"{""browserslist"": ""4.24.2""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,False,False,True,1,"{""total_duration"": ""0 minutes 20 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2021-11-02 20:06:24,master,,41,6,True,False,False,False,False,False,False,2026-05-20 13:27:14,GNU AGPLv3,0,False,0,0,0,341,0,0,0,False,False,False,False,False,False,False,@edx/browserslist-config,openedx,0,"['https://www.npmjs.com/package/@edx/browserslist-config: 403', 'https://github.com/browserslist/browserslist: 504']",False,"['https://img.shields.io/npm/l/@edx/browserslist-config', 'https://img.shields.io/npm/v/@edx/browserslist-config', 'https://support.edx.org/hc/en-us/articles/206211848-What-are-the-system-requirements-and-supported-browsers-on-edX']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/auth-backends,,,,True,2026-06-08,True,True,False,False,76,0,[],0,,0,0,,,33,"[""django-waffle==5.0.0"", ""click==8.3.1"", ""social-auth-core==4.8.5"", ""edx-django-utils==8.0.1"", ""python3-openid==3.2.0"", ""edx-toggles==5.4.1"", ""jinja2==3.1.6"", ""python-slugify==8.0.4"", ""six==1.17.0"", ""stevedore==5.7.0"", ""sqlparse==0.5.5"", ""django-crum==0.7.9"", ""urllib3==2.6.3"", ""defusedxml==0.7.1"", ""idna==3.11"", ""cffi==2.0.0"", ""django==5.2.12"", ""text-unidecode==1.3"", ""pyjwt[crypto]==2.11.0"", ""social-auth-app-django==5.7.0"", ""psutil==7.2.2"", ""asgiref==3.11.1"", ""markupsafe==3.0.3"", ""requests-oauthlib==2.0.0"", ""requests==2.32.5"", ""code-annotations==2.3.2"", ""charset-normalizer==3.4.5"", ""certifi==2026.2.25"", ""cryptography==46.0.5"", ""pycparser==3.0"", ""oauthlib==3.3.1"", ""pynacl==1.6.2"", ""pyyaml==6.0.3""]",76,"[""pytest-django==4.12.0"", ""tox==3.28.0"", ""pylint-plugin-utils==0.9.0"", ""django-waffle==5.0.0"", ""click==8.3.1"", ""click-log==0.4.0"", ""mccabe==0.7.0"", ""setuptools==82.0.0"", ""typing-extensions==4.15.0"", ""astroid==4.0.4"", ""pluggy==1.6.0"", ""social-auth-core==4.8.5"", ""edx-django-utils==8.0.1"", ""python3-openid==3.2.0"", ""edx-toggles==5.4.1"", ""jinja2==3.1.6"", ""httpretty==1.1.4"", ""python-slugify==8.0.4"", ""pylint-celery==0.3"", ""six==1.17.0"", ""tomlkit==0.14.0"", ""filelock==3.25.0"", ""packaging==26.0"", ""stevedore==5.7.0"", ""distlib==0.4.0"", ""wheel==0.46.3"", ""pylint-django==2.7.0"", ""python-discovery==1.1.0"", ""argparse==1.4.0"", ""django-crum==0.7.9"", ""sqlparse==0.5.5"", ""unittest2==1.1.0"", ""urllib3==2.6.3"", ""pycodestyle==2.14.0"", ""pygments==2.19.2"", ""defusedxml==0.7.1"", ""idna==3.11"", ""cffi==2.0.0"", ""platformdirs==4.9.4"", ""virtualenv==21.1.0"", ""build==1.4.0"", ""isort==8.0.1"", ""django==5.2.12"", ""text-unidecode==1.3"", ""pyjwt[crypto]==2.11.0"", ""coverage[toml]==7.13.4"", ""social-auth-app-django==5.7.0"", ""psutil==7.2.2"", ""dill==0.4.1"", ""asgiref==3.11.1"", ""pip==26.0.1"", ""edx-lint==5.6.0"", ""markupsafe==3.0.3"", ""requests-oauthlib==2.0.0"", ""edx-django-release-util==1.5.0"", ""requests==2.32.5"", ""traceback2==1.4.0"", ""pyproject-hooks==1.2.0"", ""ddt==1.7.2"", ""responses==0.26.0"", ""pylint==4.0.5"", ""linecache2==1.0.0"", ""code-annotations==2.3.2"", ""iniconfig==2.3.0"", ""pytest-cov==7.0.0"", ""pip-tools==7.5.3"", ""py==1.11.0"", ""charset-normalizer==3.4.5"", ""certifi==2026.2.25"", ""cryptography==46.0.5"", ""pycparser==3.0"", ""oauthlib==3.3.1"", ""pycryptodomex==3.23.0"", ""pynacl==1.6.2"", ""pytest==9.0.2"", ""pyyaml==6.0.3""]",8,"[""edx-django-release-util"", ""social-auth-app-django"", ""edx-django-utils"", ""pytest-django"", ""code-annotations"", ""pylint-django"", ""edx-toggles"", ""django-waffle""]",9,"[""edx-django-release-util"", ""social-auth-app-django"", ""edx-django-utils"", ""pytest-django"", ""code-annotations"", ""pylint-django"", ""edx-toggles"", ""django-waffle"", ""django-crum""]",6,"[""edx-django-release-util"", ""social-auth-app-django"", ""edx-django-utils"", ""code-annotations"", ""edx-toggles"", ""django-waffle""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,False,True,True,18,"{""total_duration"": ""6500 minutes 14 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, check_keywords)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 49 seconds""}]}",Other,2015-02-17 19:08:53,master,Custom authentication backends and views for edX services,411,24,True,False,False,False,False,False,False,2026-06-04 03:18:20,GNU AGPLv3,5,True,0,0,0,0,2244,41146,0,True,True,False,False,True,False,False,,openedx,4,"['http://edx.devstack.lms: HTTPConnectionPool(host=\'edx.devstack.lms\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'edx.devstack.lms\', port=80): Failed to resolve \'edx.devstack.lms\' ([Errno -2] Name or service not known)""))']",False,"['https://github.com/openedx/auth-backends/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/auth-backends/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/auth-backends/coverage.svg?branch=master', 'http://codecov.io/github/edx/auth-backends?branch=master', 'https://courses.stage.edx.org', 'http://python-social-auth.readthedocs.io/en/latest/strategies.html', 'https://github.com/openedx/auth-backends/releases', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,edx-auth-backends,"['3', '3.12']",https://github.com/openedx/auth-backends,True,True,True,True,False,False,False,False,False,[],[],,[] +openedx/enterprise-subsidy,,,,True,2026-06-08,True,True,False,False,178,0,[],0,,0,0,,,92,"[""stevedore==5.6.0"", ""markupsafe==3.0.3"", ""pycparser==2.23"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""zope-interface==8.2"", ""jinja2==3.1.6"", ""psutil==7.2.1"", ""openedx-ledger==1.6.15"", ""edx-rbac==2.1.0"", ""getsmarter-api-clients==0.6.3"", ""djangorestframework==3.16.1"", ""redis==7.1.0"", ""social-auth-core==4.8.3"", ""drf-spectacular==0.29.0"", ""edx-toggles==5.4.1"", ""python-memcached==1.62"", ""httpx==0.28.1"", ""pynacl==1.6.2"", ""pyyaml==6.0.3"", ""openedx-events==10.5.0"", ""cachetools==6.2.4"", ""python-dateutil==2.9.0.post0"", ""packaging==25.0"", ""pymemcache==4.0.0"", ""ply==3.11"", ""edx-django-utils==8.0.1"", ""gevent==25.9.1"", ""cffi==2.0.0"", ""jsonfield2==4.0.0.post0"", ""drf-jwt==1.19.2"", ""cryptography==46.0.3"", ""edx-ccx-keys==2.0.2"", ""sqlparse==0.5.5"", ""edx-django-release-util==1.5.0"", ""django-extensions==4.1"", ""requests==2.32.5"", ""fastavro==1.12.1"", ""semantic-version==2.10.0"", ""pymongo==4.16.0"", ""edx-event-bus-kafka==6.1.0"", ""django-log-request-id==2.1.0"", ""confluent-kafka[avro,schema-registry]==2.13.0"", ""zope-event==6.1"", ""edx-rest-api-client==6.2.0"", ""jsonschema-specifications==2025.9.1"", ""python3-openid==3.2.0"", ""edx-drf-extensions==10.6.0"", ""defusedxml==0.7.1"", ""authlib==1.6.6"", ""uritemplate==4.2.0"", ""idna==3.11"", ""pytz==2025.2"", ""certifi==2026.1.4"", ""dnspython==2.8.0"", ""httpcore==1.0.9"", ""djangoql==0.18.1"", ""mysqlclient==2.2.7"", ""jsonschema==4.26.0"", ""requests-oauthlib==2.0.0"", ""drf-yasg==1.21.11"", ""greenlet==3.3.0"", ""anyio==4.12.1"", ""social-auth-app-django==5.7.0"", ""django-waffle==5.0.0"", ""django-object-actions==5.0.0"", ""django-crum==0.7.9"", ""rpds-py==0.30.0"", ""django-cors-headers==4.9.0"", ""pyjwt[crypto]==2.10.1"", ""six==1.17.0"", ""asgiref==3.11.0"", ""gunicorn==23.0.0"", ""rules==3.5"", ""h11==0.16.0"", ""django==5.2.10"", ""avro==1.12.1"", ""charset-normalizer==3.4.4"", ""code-annotations==2.3.0"", ""edx-auth-backends==4.6.2"", ""referencing==0.37.0"", ""urllib3==2.6.3"", ""click==8.3.1"", ""django-clearcache==1.2.1"", ""oauthlib==3.3.1"", ""attrs==25.4.0"", ""django-model-utils==5.0.0"", ""typing-extensions==4.15.0"", ""edx-opaque-keys[django]==3.0.0"", ""django-simple-history==3.4.0"", ""inflection==0.5.1"", ""django-filter==25.2""]",178,"[""pylint-plugin-utils==0.9.0"", ""imagesize==1.4.1"", ""docutils==0.22.4"", ""stevedore==5.6.0"", ""markupsafe==3.0.3"", ""pycparser==2.23"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""zope-interface==8.2"", ""rich==14.2.0"", ""jinja2==3.1.6"", ""colorama==0.4.6"", ""psutil==7.2.1"", ""django-dynamic-fixture==4.0.1"", ""openedx-ledger==1.6.15"", ""pytest==9.0.2"", ""pydata-sphinx-theme==0.15.4"", ""pylint-celery==0.3"", ""edx-rbac==2.1.0"", ""beautifulsoup4==4.14.3"", ""getsmarter-api-clients==0.6.3"", ""djangorestframework==3.16.1"", ""redis==7.1.0"", ""social-auth-core==4.8.3"", ""drf-spectacular==0.29.0"", ""sphinxcontrib-devhelp==2.0.0"", ""edx-toggles==5.4.1"", ""python-memcached==1.62"", ""httpx==0.28.1"", ""pynacl==1.6.2"", ""accessible-pygments==0.0.5"", ""pyyaml==6.0.3"", ""sphinxcontrib-applehelp==2.0.0"", ""django-debug-toolbar==6.1.0"", ""openedx-events==10.5.0"", ""sphinxcontrib-jsmath==1.0.1"", ""cachetools==6.2.4"", ""python-dateutil==2.9.0.post0"", ""jaraco-functools==4.4.0"", ""packaging==25.0"", ""jaraco-context==6.0.2"", ""pyproject-hooks==1.2.0"", ""path==16.16.0"", ""pymemcache==4.0.0"", ""sphinx-book-theme==1.1.4"", ""pylint-django==2.7.0"", ""ply==3.11"", ""edx-django-utils==8.0.1"", ""edx-lint==5.6.0"", ""gevent==25.9.1"", ""secretstorage==3.5.0"", ""wheel==0.45.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""cffi==2.0.0"", ""faker==40.1.0"", ""jsonfield2==4.0.0.post0"", ""mccabe==0.7.0"", ""chardet==5.2.0"", ""id==1.5.0"", ""snowballstemmer==3.0.1"", ""drf-jwt==1.19.2"", ""coverage[toml]==7.13.1"", ""cryptography==46.0.3"", ""pluggy==1.6.0"", ""edx-ccx-keys==2.0.2"", ""sqlparse==0.5.5"", ""edx-django-release-util==1.5.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""django-extensions==4.1"", ""sphinxcontrib-qthelp==2.0.0"", ""babel==2.17.0"", ""requests==2.32.5"", ""nh3==0.3.2"", ""pytest-cov==7.0.0"", ""polib==1.2.0"", ""tox==4.34.1"", ""distlib==0.4.0"", ""ddt==1.7.2"", ""isort==7.0.0"", ""fastavro==1.12.1"", ""semantic-version==2.10.0"", ""pymongo==4.16.0"", ""edx-event-bus-kafka==6.1.0"", ""django-log-request-id==2.1.0"", ""pygments==2.19.2"", ""confluent-kafka[avro,schema-registry]==2.13.0"", ""zope-event==6.1"", ""edx-rest-api-client==6.2.0"", ""jsonschema-specifications==2025.9.1"", ""python3-openid==3.2.0"", ""factory-boy==3.3.3"", ""edx-drf-extensions==10.6.0"", ""pip==25.3"", ""defusedxml==0.7.1"", ""authlib==1.6.6"", ""pyproject-api==1.10.0"", ""uritemplate==4.2.0"", ""idna==3.11"", ""twine==6.2.0"", ""alabaster==1.0.0"", ""pytz==2025.2"", ""certifi==2026.1.4"", ""build==1.4.0"", ""dnspython==2.8.0"", ""django-test-migrations==1.5.0"", ""setuptools==80.9.0"", ""httpcore==1.0.9"", ""djangoql==0.18.1"", ""virtualenv==20.36.1"", ""more-itertools==10.8.0"", ""edx-i18n-tools==1.9.0"", ""docutils==0.21.2"", ""mysqlclient==2.2.7"", ""jsonschema==4.26.0"", ""pydocstyle==6.3.0"", ""click-log==0.4.0"", ""requests-oauthlib==2.0.0"", ""drf-yasg==1.21.11"", ""greenlet==3.3.0"", ""anyio==4.12.1"", ""social-auth-app-django==5.7.0"", ""django-waffle==5.0.0"", ""django-object-actions==5.0.0"", ""django-crum==0.7.9"", ""tzdata==2025.3"", ""jaraco-classes==3.4.0"", ""rpds-py==0.30.0"", ""lxml[html-clean]==6.0.2"", ""django-cors-headers==4.9.0"", ""pyjwt[crypto]==2.10.1"", ""six==1.17.0"", ""asgiref==3.11.0"", ""iniconfig==2.3.0"", ""keyring==25.7.0"", ""astroid==4.0.3"", ""gunicorn==23.0.0"", ""rules==3.5"", ""roman-numerals==4.1.0"", ""h11==0.16.0"", ""rfc3986==2.0.0"", ""readme-renderer==44.0"", ""django==5.2.10"", ""avro==1.12.1"", ""soupsieve==2.8.1"", ""charset-normalizer==3.4.4"", ""pylint==4.0.4"", ""code-annotations==2.3.0"", ""responses==0.25.8"", ""requests-toolbelt==1.0.0"", ""sphinx==9.1.0"", ""edx-auth-backends==4.6.2"", ""filelock==3.20.3"", ""pycodestyle==2.14.0"", ""markdown-it-py==4.0.0"", ""mdurl==0.1.2"", ""referencing==0.37.0"", ""tomlkit==0.13.3"", ""lxml-html-clean==0.4.3"", ""doc8==2.0.0"", ""urllib3==2.6.3"", ""restructuredtext-lint==2.0.2"", ""click==8.3.1"", ""django-clearcache==1.2.1"", ""oauthlib==3.3.1"", ""diff-cover==10.2.0"", ""attrs==25.4.0"", ""django-model-utils==5.0.0"", ""typing-extensions==4.15.0"", ""edx-opaque-keys[django]==3.0.0"", ""django-simple-history==3.4.0"", ""inflection==0.5.1"", ""dill==0.4.0"", ""platformdirs==4.5.1"", ""pip-tools==7.5.2"", ""pytest-django==4.11.1"", ""jeepney==0.9.0"", ""django-filter==25.2"", ""mock==5.2.0""]",20,"[""edx-drf-extensions"", ""edx-django-release-util"", ""factory-boy"", ""django-object-actions"", ""django-cors-headers"", ""code-annotations"", ""djangorestframework"", ""edx-toggles"", ""social-auth-app-django"", ""edx-auth-backends"", ""edx-i18n-tools"", ""django-waffle"", ""pylint-django"", ""edx-django-utils"", ""django-debug-toolbar"", ""edx-rest-api-client"", ""edx-rbac"", ""django-extensions"", ""pytest-django"", ""django-filter""]",28,"[""edx-drf-extensions"", ""edx-django-release-util"", ""drf-jwt"", ""rules"", ""factory-boy"", ""django-model-utils"", ""django-object-actions"", ""drf-yasg"", ""django-cors-headers"", ""code-annotations"", ""djangorestframework"", ""edx-toggles"", ""social-auth-app-django"", ""edx-auth-backends"", ""django-simple-history"", ""edx-i18n-tools"", ""django-crum"", ""django-waffle"", ""authlib"", ""pylint-django"", ""edx-django-utils"", ""django-debug-toolbar"", ""edx-rest-api-client"", ""django-dynamic-fixture"", ""edx-rbac"", ""django-extensions"", ""pytest-django"", ""django-filter""]",15,"[""edx-toggles"", ""edx-drf-extensions"", ""django-debug-toolbar"", ""edx-rest-api-client"", ""social-auth-app-django"", ""edx-django-release-util"", ""edx-auth-backends"", ""edx-rbac"", ""django-extensions"", ""django-filter"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""django-cors-headers"", ""code-annotations""]",False,,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,False,True,True,True,True,True,96,"{""total_duration"": ""25787 minutes 5 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""360 minutes 14 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""3 minutes 44 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2022-12-21 21:18:24,main,Captures and balances enterprise-subsidized transactions.,1997,13,True,False,False,False,False,False,False,2026-05-18 20:36:24,GNU AGPLv3,5,True,0,0,856,0,10403,687743,2314,True,True,False,False,True,False,False,,openedx,3,"['https://open-edx-backstage.herokuapp.com/catalog/default/component/enterprise-subsidy: 404', 'https://github.com/openedx/enterprise-subsidy/workflows/Python%20CI/badge.svg?branch=main: 504']",True,"['https://github.com/openedx/enterprise-subsidy/tree/main/docs/decisions', 'https://github.com/openedx/enterprise-subsidy/tree/main/docs/caching.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/enterprise-subsidy/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/enterprise-subsidy/actions', 'https://codecov.io/github/openedx/enterprise-subsidy/coverage.svg?branch=main', 'https://codecov.io/github/openedx/enterprise-subsidy?branch=main', 'https://img.shields.io/github/license/openedx/enterprise-subsidy.svg', 'https://github.com/openedx/enterprise-subsidy/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-learner-dashboard,,,,False,2026-06-08,True,True,False,False,42,0,,0,{},28,14,"{""@edx/browserslist-config"": ""^1.3.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""copy-webpack-plugin"": ""^13.0.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-expect-message"": ""^1.1.3"", ""jest-when"": ""^3.6.0"", ""react-dev-utils"": ""^12.0.0"", ""react-test-renderer"": ""^18.3.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-enterprise-hotjar"": ""7.2.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""^1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""^5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""^5.15.4"", ""@fortawesome/react-fontawesome"": ""^0.2.0"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@tanstack/react-query"": ""^5.90.16"", ""classnames"": ""^2.3.1"", ""core-js"": ""3.49.0"", ""font-awesome"": ""4.7.0"", ""history"": ""5.3.0"", ""lodash"": ""^4.17.21"", ""moment"": ""^2.29.4"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-intl"": ""6.8.9"", ""react-router-dom"": ""6.30.3"", ""react-share"": ""^5.2.2"", ""regenerator-runtime"": ""^0.14.0"", ""util"": ""^0.12.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,28,"{""total_duration"": ""5012 minutes 38 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2022-06-03 14:59:36,master,Learner Dashboard MFE,9510,197,True,False,False,False,False,False,False,2026-06-03 00:28:28,GNU AGPLv3,10,True,0,0,224,409312,2330,0,0,False,False,False,False,True,False,False,@edx/frontend-app-learner-dashboard,openedx,0,"['https://github.com/openedx/frontend-app-learner-dashboard/blob/master/LICENSE: 504', 'https://github.com/openedx/frontend-plugin-framework: 504', 'https://github.com/openedx/frontend-app-learner-dashboard/issues: 504']",False,"['https://img.shields.io/github/license/openedx/frontend-app-learner-dashboard.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-learner-dashboard/coverage.svg?branch=master', 'https://app.codecov.io/github/openedx/frontend-app-learner-dashboard?branch=master', 'https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3875962884/How+to+submit+an+open+source+contribution+for+Product+Review', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575906333/Learner+Home', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2025-02-17,4,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/forum,,,,True,2026-06-08,False,False,False,False,163,0,[],0,,0,0,,,67,"[""anyio==4.12.1"", ""asgiref==3.11.1"", ""psutil==7.2.2"", ""dnspython==2.8.0"", ""tzlocal==5.3.1"", ""sqlparse==0.5.5"", ""meilisearch==0.40.0"", ""python-slugify==8.0.4"", ""typing-extensions==4.15.0"", ""h11==0.16.0"", ""tzdata==2025.3"", ""pyyaml==6.0.3"", ""beautifulsoup4==4.14.3"", ""httpx==0.28.1"", ""camel-converter[pydantic]==5.1.0"", ""celery==5.6.2"", ""edx-django-utils==8.0.1"", ""fastavro==1.12.1"", ""pytz==2026.1.post1"", ""openedx-events==10.5.0"", ""soupsieve==2.8.3"", ""python-dateutil==2.9.0.post0"", ""amqp==5.3.1"", ""text-unidecode==1.3"", ""charset-normalizer==3.4.5"", ""idna==3.11"", ""pydantic==2.12.5"", ""djangorestframework==3.16.1"", ""attrs==25.4.0"", ""pymongo==4.16.0"", ""stevedore==5.7.0"", ""django-waffle==5.0.0"", ""requests==2.32.5"", ""typing-inspection==0.4.2"", ""edx-search==4.4.0"", ""click==8.3.1"", ""edx-toggles==5.4.1"", ""jinja2==3.1.6"", ""pycparser==3.0"", ""markupsafe==3.0.3"", ""pynacl==1.6.2"", ""edx-opaque-keys[django]==3.1.0"", ""prompt-toolkit==3.0.52"", ""six==1.17.0"", ""wcwidth==0.6.0"", ""django==5.2.12"", ""annotated-types==0.7.0"", ""click-repl==0.3.0"", ""elasticsearch==7.13.4"", ""packaging==26.0"", ""code-annotations==2.3.2"", ""kombu==5.6.2"", ""typesense==2.0.0"", ""cffi==2.0.0"", ""click-plugins==1.1.1.2"", ""django-crum==0.7.9"", ""pydantic-core==2.41.5"", ""urllib3==1.26.20"", ""certifi==2026.2.25"", ""vine==5.1.0"", ""openedx-atlas==0.7.0"", ""event-tracking==3.3.0"", ""edx-ccx-keys==2.0.2"", ""mysqlclient==2.2.8"", ""billiard==4.2.4"", ""click-didyoumean==0.3.1"", ""httpcore==1.0.9""]",163,"[""docutils==0.22.4"", ""pycodestyle==2.14.0"", ""rich==14.3.3"", ""restructuredtext-lint==2.0.2"", ""sqlparse==0.5.5"", ""rfc3986==2.0.0"", ""django-stubs==5.2.9"", ""alabaster==1.0.0"", ""fastavro==1.12.1"", ""edx-django-utils==8.0.1"", ""text-unidecode==1.3"", ""tomli-w==1.2.0"", ""python-discovery==1.1.0"", ""polib==1.2.0"", ""pymongo==4.16.0"", ""requests==2.32.5"", ""jinja2==3.1.6"", ""pylint-django==2.7.0"", ""snowballstemmer==3.0.1"", ""wcwidth==0.6.0"", ""distlib==0.4.0"", ""isort==8.0.1"", ""build==1.4.0"", ""jaraco-classes==3.4.0"", ""packaging==26.0"", ""setuptools==82.0.0"", ""vine==5.1.0"", ""cffi==2.0.0"", ""tomlkit==0.14.0"", ""django-crum==0.7.9"", ""sphinx==9.1.0"", ""openedx-atlas==0.7.0"", ""event-tracking==3.3.0"", ""jaraco-functools==4.4.0"", ""accessible-pygments==0.0.5"", ""billiard==4.2.4"", ""sentinels==1.1.1"", ""pylint-plugin-utils==0.9.0"", ""roman-numerals==4.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""more-itertools==10.8.0"", ""mypy-extensions==1.1.0"", ""jaraco-context==6.1.0"", ""faker==40.8.0"", ""httpcore==1.0.9"", ""typing-extensions==4.15.0"", ""tzdata==2025.3"", ""pyproject-hooks==1.2.0"", ""pylint==4.0.5"", ""wheel==0.46.3"", ""camel-converter[pydantic]==5.1.0"", ""cryptography==46.0.5"", ""pytz==2026.1.post1"", ""types-beautifulsoup4==4.12.0.20250516"", ""keyring==25.7.0"", ""soupsieve==2.8.3"", ""charset-normalizer==3.4.5"", ""pydantic==2.12.5"", ""djangorestframework==3.16.1"", ""diff-cover==10.2.0"", ""filelock==3.25.0"", ""edx-lint==5.6.0"", ""types-requests==2.31.0.6"", ""django-waffle==5.0.0"", ""pytokens==0.4.1"", ""path==16.16.0"", ""pip-tools==7.5.3"", ""click==8.3.1"", ""pycparser==3.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-opaque-keys[django]==3.1.0"", ""django==5.2.12"", ""types-pyyaml==6.0.12.20250915"", ""markdown-it-py==4.0.0"", ""annotated-types==0.7.0"", ""mdurl==0.1.2"", ""elasticsearch==7.13.4"", ""platformdirs==4.9.4"", ""click-plugins==1.1.1.2"", ""pathspec==1.0.4"", ""edx-ccx-keys==2.0.2"", ""edx-i18n-tools==1.9.0"", ""click-didyoumean==0.3.1"", ""lxml[html-clean]==6.0.2"", ""nh3==0.3.3"", ""anyio==4.12.1"", ""requests-toolbelt==1.0.0"", ""asgiref==3.11.1"", ""mccabe==0.7.0"", ""dnspython==2.8.0"", ""click-log==0.4.0"", ""babel==2.18.0"", ""pylint-celery==0.3"", ""mypy==1.19.1"", ""types-webencodings==0.5.0.20251108"", ""sphinx-book-theme==1.1.4"", ""celery==5.6.2"", ""twine==6.2.0"", ""imagesize==2.0.0"", ""openedx-events==10.5.0"", ""pyproject-api==1.10.0"", ""iniconfig==2.3.0"", ""attrs==25.4.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""doc8==0.11.2"", ""typing-inspection==0.4.2"", ""edx-search==4.4.0"", ""pynacl==1.6.2"", ""six==1.17.0"", ""markupsafe==3.0.3"", ""prompt-toolkit==3.0.52"", ""jeepney==0.9.0"", ""chardet==7.0.1"", ""django-stubs-ext==5.2.9"", ""readme-renderer==44.0"", ""kombu==5.6.2"", ""pip==26.0.1"", ""certifi==2026.2.25"", ""colorama==0.4.6"", ""pytest==9.0.2"", ""sphinxcontrib-qthelp==2.0.0"", ""cachetools==7.0.3"", ""pydata-sphinx-theme==0.15.4"", ""h11==0.16.0"", ""astroid==4.0.4"", ""pytest-django==4.12.0"", ""psutil==7.2.2"", ""pluggy==1.6.0"", ""tzlocal==5.3.1"", ""black==26.3.0"", ""sphinxcontrib-devhelp==2.0.0"", ""meilisearch==0.40.0"", ""python-slugify==8.0.4"", ""librt==0.8.1"", ""dill==0.4.1"", ""pyyaml==6.0.3"", ""beautifulsoup4==4.14.3"", ""httpx==0.28.1"", ""pydocstyle==6.3.0"", ""lxml-html-clean==0.4.4"", ""python-dateutil==2.9.0.post0"", ""amqp==5.3.1"", ""idna==3.11"", ""pytest-cov==7.0.0"", ""stevedore==5.7.0"", ""edx-toggles==5.4.1"", ""djangorestframework-stubs==3.16.8"", ""coverage[toml]==7.13.4"", ""types-urllib3==1.26.25.14"", ""types-html5lib==1.1.11.20251117"", ""virtualenv==21.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""click-repl==0.3.0"", ""pygments==2.19.2"", ""code-annotations==2.3.2"", ""typesense==2.0.0"", ""secretstorage==3.5.0"", ""pydantic-core==2.41.5"", ""urllib3==1.26.20"", ""mongomock==4.3.0"", ""tox==4.49.0"", ""mysqlclient==2.2.8"", ""id==1.5.0""]",10,"[""edx-django-utils"", ""edx-toggles"", ""edx-i18n-tools"", ""pytest-django"", ""djangorestframework"", ""django-waffle"", ""pylint-django"", ""edx-search"", ""code-annotations"", ""event-tracking""]",11,"[""edx-django-utils"", ""edx-toggles"", ""edx-i18n-tools"", ""pytest-django"", ""djangorestframework"", ""django-waffle"", ""pylint-django"", ""django-crum"", ""edx-search"", ""code-annotations"", ""event-tracking""]",7,"[""edx-django-utils"", ""edx-toggles"", ""edx-i18n-tools"", ""django-waffle"", ""edx-search"", ""code-annotations"", ""event-tracking""]",False,,True,True,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""11760 minutes 40 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, e2e)"", ""duration"": ""3 minutes 10 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""2 minutes 1 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, py)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2024-07-25 08:43:29,master,Python rewrite of the legacy Open edX Ruby forum,777,22,True,False,False,False,False,False,False,2026-06-07 19:24:47,GNU AGPLv3,4,True,0,0,873,0,5775,701211,0,False,False,False,False,True,False,False,,openedx,1,"['https://github.com/openedx/cs_comments_service: 504', 'https://docs.openedx.org/projects/forum/how-tos/how-to-deploy-this-component.html: 404', 'https://docs.openedx.org/projects/forum: 404']",True,"['https://openedx.org', 'https://github.com/openedx/frontend-app-discussions', 'https://discuss.openedx.org/t/axim-funded-contribution-proposal-forum-rewrite-from-ruby-mongodb-to-python-mysql/12788', 'https://github.com/overhangio/tutor-forum', 'https://docs.tutor.edly.io/', 'https://docs.tutor.edly.io/tutorials/main.html', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/forum/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/forum', 'https://github.com/openedx/forum/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/forum/actions/workflows/ci.yml', 'https://img.shields.io/github/license/openedx/forum.svg', 'https://github.com/openedx/forum/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-forum,"['3', '3.12']",https://github.com/openedx/forum,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/paragon,,,,False,2026-06-08,True,True,False,False,93,0,,0,{},44,49,"{""@babel/cli"": ""^7.16.8"", ""@babel/core"": ""^7.17.8"", ""@babel/eslint-parser"": ""^7.18.2"", ""@babel/plugin-proposal-class-properties"": ""^7.16.7"", ""@babel/plugin-proposal-object-rest-spread"": ""^7.16.7"", ""@babel/preset-env"": ""^7.16.8"", ""@babel/preset-react"": ""^7.16.7"", ""@babel/preset-typescript"": ""^7.16.7"", ""@edx/browserslist-config"": ""^1.5.0"", ""@edx/eslint-config"": ""^4.4.0"", ""@edx/stylelint-config-edx"": ""^2.3.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@formatjs/cli"": ""^5.0.2"", ""@semantic-release/changelog"": ""^6.0.1"", ""@semantic-release/git"": ""^10.0.1"", ""@testing-library/jest-dom"": ""^6.6"", ""@testing-library/react"": ""^16.1"", ""@testing-library/user-event"": ""^14.5"", ""@types/jest"": ""^29.5.10"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""@types/react-responsive"": ""^9.0.0"", ""@types/react-table"": ""^7.7.19"", ""@types/react-test-renderer"": ""^18.0.0"", ""@types/uuid"": ""^9.0.0"", ""@typescript-eslint/eslint-plugin"": ""^5.22.0"", ""@typescript-eslint/parser"": ""^5.22.0"", ""axios-mock-adapter"": ""^2.0.0"", ""babel-jest"": ""^29.7.0"", ""babel-loader"": ""^8.2.4"", ""commander"": ""^9.3.0"", ""eslint"": ""8.57.1"", ""eslint-config-airbnb"": ""19.0.4"", ""eslint-config-airbnb-typescript"": ""^17.0.0"", ""eslint-plugin-import"": ""2.32.0"", ""eslint-plugin-jsonc"": ""^2.18.1"", ""eslint-plugin-jsx-a11y"": ""6.10.2"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.7.0"", ""jest-cli"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""markdown-loader-jest"": ""^0.1.1"", ""react"": ""^18"", ""react-test-renderer"": ""^18"", ""regenerator-runtime"": ""^0.14.0"", ""semantic-release"": ""^25.0.0"", ""stylelint"": ""^15.11.0"", ""ts-jest"": ""^29.1.2"", ""typescript"": ""^4.7.4""}","{""@popperjs/core"": ""^2.11.4"", ""@tokens-studio/sd-transforms"": ""^1.2.4"", ""axios"": ""^1.0.0"", ""bootstrap"": ""^4.6.2"", ""chalk"": ""^4.1.2"", ""child_process"": ""^1.0.2"", ""chroma-js"": ""^3.0.0"", ""classnames"": ""^2.3.1"", ""cli-progress"": ""^3.12.0"", ""commander"": ""^9.4.1"", ""email-prop-type"": ""^3.0.0"", ""file-selector"": ""^0.10.0"", ""glob"": ""^13.0.0"", ""inquirer"": ""^8.2.5"", ""js-toml"": ""^1.0.0"", ""lodash.uniqby"": ""^4.7.0"", ""log-update"": ""^4.0.0"", ""lz-string"": ""^1.5.0"", ""mailto-link"": ""^2.0.0"", ""minimist"": ""^1.2.8"", ""ora"": ""^5.4.1"", ""postcss"": ""^8.4.21"", ""postcss-combine-duplicated-selectors"": ""^10.0.3"", ""postcss-custom-media"": ""^9.1.2"", ""postcss-import"": ""^15.1.0"", ""postcss-map"": ""^0.11.0"", ""postcss-minify"": ""^1.1.0"", ""prop-types"": ""^15.8.1"", ""react-bootstrap"": ""^1.6.5"", ""react-colorful"": ""^5.6.1"", ""react-dropzone"": ""^14.2.1"", ""react-focus-on"": ""^3.5.4"", ""react-imask"": ""^7.1.3"", ""react-loading-skeleton"": ""^3.1.0"", ""react-popper"": ""^2.2.5"", ""react-proptype-conditional-require"": ""^1.0.4"", ""react-responsive"": ""^10.0.0"", ""react-table"": ""^7.7.0"", ""react-transition-group"": ""^4.4.2"", ""sass"": ""^1.58.3"", ""style-dictionary"": ""^4.4.0"", ""tabbable"": ""^5.3.3"", ""uncontrollable"": ""^7.2.1"", ""uuid"": ""^9.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,True,True,False,False,False,False,False,False,True,True,True,177,"{""total_duration"": ""0 minutes 0 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2017-04-27 18:57:22,release-23.x,"💎 An accessible, theme-ready design system built for learning applications and Open edX.",349963,99,True,False,False,False,False,False,False,2026-06-08 00:50:50,Apache License 2.0,56,True,271597,0,237,4367759,2202,0,2709,False,False,False,False,True,False,False,,openedx,0,"['https://www.npmjs.com/package/@openedx/paragon: 403', 'https://openedx.org/slack: 403', 'https://cdn.jsdelivr.net/npm/@my-brand/core.min.css: 404', 'https://cdn.jsdelivr.net/npm/@my-brand/light.min.css: 404', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403', 'https://github.com/openedx/eslint-config-edx/tree/master/packages/eslint-config-edx: 404', 'https://www.npmjs.com/package/eslint-config-airbnb: 403', 'https://facebook.github.io/jest/: 404', 'https://facebook.github.io/jest/docs/en/api.html: 404', 'https://facebook.github.io/jest/docs/en/getting-started.html: 404', 'http://facebook.github.io/jest/docs/en/snapshot-testing.html: 404']",False,"['https://github.com/openedx/paragon/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/paragon/actions/workflows/release.yml', 'https://img.shields.io/npm/v/@openedx/paragon.svg', 'https://img.shields.io/badge/status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/paragon.svg', 'https://codecov.io/gh/edx/paragon/branch/master/graph/badge.svg?token=x1tZmNduy9', 'https://codecov.io/gh/edx/paragon', 'https://img.shields.io/npm/dw/@openedx/paragon', 'https://www.w3.org/WAI/standards-guidelines/aria/', 'https://openedx.org/', 'https://paragon-openedx.netlify.app/', 'https://openedx.slack.com/archives/C02NR285KV4', 'https://github.com/openedx/paragon/issues/new?template=blank-issue.md', 'https://calendar.google.com/calendar/embed?src=c_v86shrnegshsqgp4fj2k94u7bc%40group.calendar.google.com&ctz=America%2FNew_York', 'https://github.com/openedx/brand-openedx', 'https://formatjs.io/docs/react-intl/', 'https://github.com/openedx/paragon/tree/release-22.x', 'https://paragon-openedx-v22.netlify.app/', 'https://github.com/openedx/paragon/tree/release-23.x', 'https://paragon-openedx-v23.netlify.app/', 'https://github.com/openedx/paragon/tree/next', 'https://github.com/openedx/paragon/issues', 'https://github.com/orgs/openedx/projects/43/views/15', 'https://github.com/openedx/frontend-build', 'http://eslint.org/docs/user-guide/integrations', 'http://eslint.org/docs/rules/comma-dangle', 'https://github.com/evcohen/eslint-plugin-jsx-a11y', 'https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md', 'https://github.com/airbnb/enzyme', 'http://airbnb.io/enzyme/', 'http://airbnb.io/enzyme/docs/api/index.html', 'https://github.com/openedx/paragon/blob/master/src/Dropdown/deprecated/Dropdown.test.jsx', 'https://github.com/openedx/paragon/blob/master/src/CheckBox/CheckBox.test.jsx', 'https://github.com/semantic-release/semantic-release', 'https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular', 'https://github.com/conventional-changelog/commitlint/blob/master/%40commitlint/config-angular-type-enum/index.js', 'https://github.com/openedx/frontend-app-payment/pull/48', 'https://backstage.openedx.org/catalog/default/component/paragon', 'https://github.com/amzn/style-dictionary', 'https://github.com/openedx/frontend-platform/pull/440']",True,True,False,False,,,True,2026-04-22,2025-10-10,10,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-ios,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,False,False,False,False,False,False,False,True,True,True,16,"{""total_duration"": ""10793 minutes 28 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-03-13 09:15:29,main,The mobile app for iOS for the Open EdX Platform.,13069,31,True,False,False,False,False,False,False,2026-05-28 08:47:00,Apache License 2.0,3,False,0,0,0,537,433,70039,1844,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/openedx-atlas: 504', 'https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403', 'https://app.transifex.com/open-edx/openedx-translations/openedx-app-ios/: 404']",False,"['https://github.com/openedx/openedx-app-ios.git', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://github.com/openedx/openedx-translations', 'https://github.com/openedx/openedx-translations/blob/6448167e9695a921f003ff6bd8f40f006a2d6743/translations/openedx-app-ios/I18N/I18N/uk.lproj/Localizable.strings', 'https://github.com/openedx/openedx-atlas/issues/20', 'https://github.com/apps/transifex-integration', 'https://github.com/openedx/openedx-app-ios/blob/main/LICENSE']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-authn,,,,False,2026-06-08,True,True,False,False,41,0,,0,{},30,11,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.9.1"", ""babel-plugin-formatjs"": ""10.5.41"", ""eslint-plugin-import"": ""2.32.0"", ""glob"": ""7.2.3"", ""history"": ""5.3.0"", ""jest"": ""30.3.0"", ""react-test-renderer"": ""^18.3.1"", ""ts-jest"": ""^29.4.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.2"", ""@optimizely/react-sdk"": ""^2.9.1"", ""@tanstack/react-query"": ""^5.90.19"", ""@testing-library/react"": ""^16.2.0"", ""algoliasearch"": ""^4.14.3"", ""algoliasearch-helper"": ""^3.26.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.43.0"", ""fastest-levenshtein"": ""1.0.16"", ""form-urlencoded"": ""6.1.6"", ""prop-types"": ""15.8.1"", ""query-string"": ""7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""6.1.0"", ""react-loading-skeleton"": ""3.5.0"", ""react-responsive"": ""8.2.0"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""react-zendesk"": ""^0.1.13"", ""regenerator-runtime"": ""0.14.1"", ""universal-cookie"": ""7.2.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,50,"{""total_duration"": ""2 minutes 31 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 31 seconds""}, {""name"": ""autoupdate"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2020-09-28 13:08:13,master,Open edX micro-frontend application for new login and registration experience.,17283,261,True,False,False,False,False,False,False,2026-06-07 05:15:47,GNU AGPLv3,19,True,0,0,1165,555109,1657,0,0,False,False,False,False,False,False,False,@edx/frontend-app-authn,openedx,0,"['https://support.example.com: HTTPSConnectionPool(host=\'support.example.com\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'support.example.com\', port=443): Failed to resolve \'support.example.com\' ([Errno -5] No address associated with hostname)""))', 'https://github.com/openedx/frontend-app-authn/blob/master/LICENSE: 504', 'https://travis-ci.com/edx/frontend-app-authn: 415', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml: 504', 'https://github.com/semantic-release/semantic-release: 504']",False,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/edx/frontend-app-authn.git', 'https://github.com/nvm-sh/nvm', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html', 'https://github.com/openedx/frontend-app-authn/blob/master/.github/pull_request_template.md', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-authn/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/group/2u-infinity', 'https://api.travis-ci.com/edx/frontend-app-authn.svg?branch=master', 'https://img.shields.io/codecov/c/github/edx/frontend-app-authn', 'https://codecov.io/gh/edx/frontend-app-authn', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg']",True,True,False,False,,,True,2026-03-27,2024-12-05,8,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/wg-marketing,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""1388 minutes 55 seconds"", ""checks"": [{""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-04-19 17:26:44,main,Marketing Working Group,6,2,True,False,False,False,False,False,False,2025-10-30 15:17:11,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/didkit-python,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""6 minutes 54 seconds"", ""checks"": [{""name"": ""windows"", ""duration"": ""6 minutes 54 seconds""}, {""name"": ""linux-x86_64"", ""duration"": ""6 minutes 6 seconds""}, {""name"": ""CI (3.11)"", ""duration"": ""6 minutes 0 seconds""}, {""name"": ""CI (3.10)"", ""duration"": ""5 minutes 40 seconds""}, {""name"": ""CI (3.12)"", ""duration"": ""5 minutes 35 seconds""}, {""name"": ""macos (aarch64)"", ""duration"": ""5 minutes 5 seconds""}, {""name"": ""macos (x64)"", ""duration"": ""4 minutes 47 seconds""}, {""name"": ""linux-aarch64"", ""duration"": ""4 minutes 41 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2026-03-12 15:11:16,main,Python bindings for DIDKit.,183,1,True,False,False,False,True,False,False,2026-05-30 14:52:54,,0,True,0,0,0,0,0,7345,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://badge.fury.io/py/openedx-didkit.svg', 'https://badge.fury.io/py/openedx-didkit', 'https://spruceid.dev/docs/didkit/', 'https://github.com/spruceid/ssi', 'https://pypi.org/project/openedx-didkit/', 'https://github.com/GlugovGrGlib/didkit-python', 'https://github.com/spruceid/didkit-python']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-component-footer,,,,False,2026-06-08,False,False,False,False,26,0,,0,{},8,18,"{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/browserslist-config"": ""^1.1.1"", ""@edx/frontend-platform"": ""^8.2.1"", ""@openedx/frontend-build"": ""^14.3.1"", ""@openedx/paragon"": ""^23.3.0"", ""@testing-library/jest-dom"": ""^5.16.4"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/user-event"": ""^14.6.1"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-redux"": ""8.1.3"", ""react-router-dom"": ""6.30.2"", ""react-test-renderer"": ""18.3.1"", ""redux"": ""4.2.1"", ""semantic-release"": ""21.1.2"", ""ts-jest"": ""^29.1.2""}","{""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-regular-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""classnames"": ""^2.5.1"", ""lodash"": ""^4.17.21""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,22,"{""total_duration"": ""2 minutes 21 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""2 minutes 21 seconds""}, {""name"": ""tests"", ""duration"": ""1 minutes 48 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-01-02 20:14:34,master,Site footer component for edX frontend apps.,16297,155,True,False,False,False,False,False,False,2026-06-04 18:40:07,GNU AGPLv3,15,True,0,0,252,40107,1299,0,0,False,False,False,False,False,False,False,@edx/frontend-component-footer,openedx,0,"['https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://travis-ci.com/edx/frontend-component-footer: 415']",False,"['https://github.com/openedx/devstack', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx', 'https://github.com/openedx/frontend-component-footer.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-component-footer/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://api.travis-ci.com/edx/frontend-component-footer.svg?branch=master', 'https://img.shields.io/codecov/c/github/edx/frontend-component-footer', 'https://img.shields.io/npm/v/@edx/frontend-component-footer.svg', 'https://img.shields.io/npm/dt/@edx/frontend-component-footer.svg', 'https://img.shields.io/npm/l/@edx/frontend-component-footer.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-04-06,2022-11-21,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/codejail-service,,,,True,2026-06-08,False,False,False,False,138,0,[],0,,0,0,,,58,"[""typing-extensions==4.15.0"", ""gunicorn==23.0.0"", ""openedx-calc==5.0.0"", ""django-crum==0.7.9"", ""python-slugify==8.0.4"", ""matplotlib==3.10.8"", ""sympy==1.14.0"", ""psutil==7.1.0"", ""django==4.2.24"", ""edx-codejail==4.0.0"", ""stevedore==5.5.0"", ""networkx==3.6.1"", ""attrs==25.3.0"", ""chem==2.0.0"", ""jinja2==3.1.6"", ""djangorestframework==3.16.1"", ""scipy==1.17.1"", ""pycparser==3.0"", ""jsonschema==4.25.1"", ""codejail-includes==2.0.0"", ""django-waffle==5.0.0"", ""edx-django-utils==8.0.0"", ""sqlparse==0.5.3"", ""pillow==12.1.1"", ""markupsafe==3.0.2"", ""contourpy==1.3.3"", ""markupsafe==3.0.3"", ""lxml[html-clean]==5.3.2"", ""cffi==2.0.0"", ""kiwisolver==1.5.0"", ""edx-toggles==5.4.1"", ""lxml-html-clean==0.4.4"", ""numpy==1.26.4"", ""python-dateutil==2.9.0.post0"", ""pyyaml==6.0.2"", ""six==1.17.0"", ""pyparsing==3.3.2"", ""text-unidecode==1.3"", ""asgiref==3.9.1"", ""pycparser==2.23"", ""fonttools==4.62.1"", ""click==8.3.0"", ""jsonschema-specifications==2025.9.1"", ""mpmath==1.3.0"", ""joblib==1.5.3"", ""cycler==0.12.1"", ""packaging==26.0"", ""code-annotations==2.3.0"", ""pynacl==1.6.0"", ""referencing==0.36.2"", ""rpds-py==0.27.1"", ""packaging==25.0"", ""click==8.3.1"", ""nltk==3.9.3"", ""regex==2026.2.28"", ""tqdm==4.67.3"", ""cryptography==45.0.7"", ""random2==1.0.2""]",138,"[""cachetools==6.2.0"", ""openedx-calc==5.0.0"", ""mdurl==0.1.2"", ""sympy==1.14.0"", ""platformdirs==4.4.0"", ""nh3==0.3.0"", ""jinja2==3.1.6"", ""pylint-django==2.6.1"", ""isort==6.0.1"", ""pillow==12.1.1"", ""ddt==1.7.2"", ""pylint-celery==0.3"", ""markdown-it-py==4.0.0"", ""lxml[html-clean]==5.3.2"", ""edx-toggles==5.4.1"", ""lxml-html-clean==0.4.4"", ""python-dateutil==2.9.0.post0"", ""pyyaml==6.0.2"", ""iniconfig==2.1.0"", ""pyparsing==3.3.2"", ""text-unidecode==1.3"", ""soupsieve==2.8"", ""dill==0.4.0"", ""cycler==0.12.1"", ""pip-tools==7.5.0"", ""pynacl==1.6.0"", ""packaging==25.0"", ""nltk==3.9.3"", ""random2==1.0.2"", ""setuptools==80.9.0"", ""click-log==0.4.0"", ""alabaster==1.0.0"", ""roman-numerals-py==3.1.0"", ""typing-extensions==4.15.0"", ""secretstorage==3.4.0"", ""django-crum==0.7.9"", ""babel==2.17.0"", ""pip==24.2"", ""wheel==0.45.1"", ""psutil==7.1.0"", ""edx-codejail==4.0.0"", ""distlib==0.4.0"", ""chardet==5.2.0"", ""attrs==25.3.0"", ""chem==2.0.0"", ""pycparser==3.0"", ""pylint==3.3.8"", ""restructuredtext-lint==1.4.0"", ""colorama==0.4.6"", ""tox==4.30.2"", ""pluggy==1.6.0"", ""virtualenv==20.34.0"", ""sphinxcontrib-jsmath==1.0.1"", ""rich==14.1.0"", ""pylint-plugin-utils==0.9.0"", ""markupsafe==3.0.3"", ""keyring==25.6.0"", ""docutils==0.22.2"", ""fonttools==4.62.1"", ""asgiref==3.9.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pytest==8.4.2"", ""urllib3==2.5.0"", ""filelock==3.19.1"", ""readme-renderer==44.0"", ""gunicorn==23.0.0"", ""pycodestyle==2.14.0"", ""pyproject-api==1.9.1"", ""matplotlib==3.10.8"", ""pygments==2.19.2"", ""sphinxcontrib-applehelp==2.0.0"", ""django==4.2.24"", ""stevedore==5.5.0"", ""accessible-pygments==0.0.5"", ""djangorestframework==3.16.1"", ""docutils==0.21.2"", ""codejail-includes==2.0.0"", ""django-waffle==5.0.0"", ""pytest-cov==7.0.0"", ""sphinx==8.2.3"", ""more-itertools==10.8.0"", ""sphinxcontrib-devhelp==2.0.0"", ""cryptography==46.0.1"", ""rfc3986==2.0.0"", ""coverage[toml]==7.10.7"", ""markupsafe==3.0.2"", ""build==1.3.0"", ""imagesize==1.4.1"", ""numpy==1.26.4"", ""pycparser==2.23"", ""twine==6.2.0"", ""tomlkit==0.13.3"", ""jaraco-functools==4.3.0"", ""diff-cover==9.6.0"", ""pydata-sphinx-theme==0.15.4"", ""mpmath==1.3.0"", ""rpds-py==0.27.1"", ""referencing==0.36.2"", ""pytest-django==4.11.1"", ""id==1.5.0"", ""click==8.3.1"", ""cryptography==45.0.7"", ""doc8==2.0.0"", ""requests==2.32.5"", ""sphinx-book-theme==1.1.4"", ""python-slugify==8.0.4"", ""requests-toolbelt==1.0.0"", ""jaraco-classes==3.4.0"", ""networkx==3.6.1"", ""scipy==1.17.1"", ""sphinxcontrib-qthelp==2.0.0"", ""pyproject-hooks==1.2.0"", ""certifi==2025.8.3"", ""jsonschema==4.25.1"", ""edx-django-utils==8.0.0"", ""charset-normalizer==3.4.3"", ""sqlparse==0.5.3"", ""astroid==3.3.11"", ""contourpy==1.3.3"", ""cffi==2.0.0"", ""kiwisolver==1.5.0"", ""six==1.17.0"", ""beautifulsoup4==4.13.5"", ""jeepney==0.9.0"", ""click==8.3.0"", ""idna==3.10"", ""pydocstyle==6.3.0"", ""jaraco-context==6.0.1"", ""jsonschema-specifications==2025.9.1"", ""mccabe==0.7.0"", ""joblib==1.5.3"", ""packaging==26.0"", ""code-annotations==2.3.0"", ""edx-lint==5.6.0"", ""regex==2026.2.28"", ""tqdm==4.67.3"", ""snowballstemmer==3.0.1""]",7,"[""edx-toggles"", ""pytest-django"", ""edx-django-utils"", ""djangorestframework"", ""code-annotations"", ""django-waffle"", ""pylint-django""]",8,"[""edx-toggles"", ""django-crum"", ""pytest-django"", ""edx-django-utils"", ""djangorestframework"", ""code-annotations"", ""django-waffle"", ""pylint-django""]",4,"[""edx-toggles"", ""code-annotations"", ""edx-django-utils"", ""django-waffle""]",True,,True,True,True,False,False,True,True,True,True,False,False,False,True,True,True,False,True,True,True,True,True,4,"{""total_duration"": ""0 minutes 36 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, py312)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2025-01-13 21:44:45,main,Experimental repository for refactoring codejail for containerization,229,3,True,False,False,False,False,False,False,2026-05-19 10:43:24,Apache License 2.0,1,True,0,0,0,0,4039,89024,0,False,True,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/codejail: 504', 'https://docs.openedx.org/projects/codejail-service: 404']",True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://github.com/openedx/codejail-service/issues/3', 'https://discuss.openedx.org', 'https://github.com/openedx/codejail-service/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/codejail-service', 'https://github.com/openedx/codejail-service/workflows/Python%20CI/badge.svg', 'https://github.com/openedx/codejail-service/actions', 'https://codecov.io/github/openedx/codejail-service/coverage.svg?branch=main', 'https://codecov.io/github/openedx/codejail-service?branch=main', 'https://readthedocs.org/projects/codejail-service/badge/?version=latest', 'https://img.shields.io/github/license/openedx/codejail-service.svg', 'https://github.com/openedx/codejail-service/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,True,,,0,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-drf-extensions,,,,True,2026-06-08,True,True,False,False,90,0,[],0,,0,0,,,26,"[""pynacl==1.6.0"", ""cffi==2.0.0"", ""requests==2.32.5"", ""djangorestframework==3.16.1"", ""charset-normalizer==3.4.3"", ""stevedore==5.5.0"", ""dnspython==2.8.0"", ""pyjwt[crypto]==2.10.1"", ""drf-jwt==1.19.2"", ""cryptography==46.0.2"", ""edx-django-utils==8.0.1"", ""django-waffle==5.0.0"", ""idna==3.10"", ""semantic-version==2.10.0"", ""psutil==7.1.0"", ""pymongo==4.15.3"", ""edx-opaque-keys==3.0.0"", ""sqlparse==0.5.3"", ""django-crum==0.7.9"", ""pycparser==2.23"", ""typing-extensions==4.15.0"", ""urllib3==2.5.0"", ""django==4.2.25"", ""click==8.3.0"", ""asgiref==3.10.0"", ""certifi==2025.10.5""]",90,"[""snowballstemmer==3.0.1"", ""cffi==2.0.0"", ""tzdata==2025.2"", ""dill==0.4.0"", ""dnspython==2.8.0"", ""httpretty==1.1.4"", ""distlib==0.4.0"", ""babel==2.17.0"", ""coverage[toml]==7.10.7"", ""tomlkit==0.13.3"", ""chardet==5.2.0"", ""idna==3.10"", ""soupsieve==2.8"", ""virtualenv==20.35.1"", ""sphinx-book-theme==1.1.3"", ""edx-opaque-keys==3.0.0"", ""iniconfig==2.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""factory-boy==2.12.0"", ""beautifulsoup4==4.14.2"", ""six==1.17.0"", ""pynacl==1.6.0"", ""setuptools==80.9.0"", ""pygments==2.19.2"", ""djangorestframework==3.16.1"", ""pytest-cov==7.0.0"", ""charset-normalizer==3.4.3"", ""faker==37.11.0"", ""pluggy==1.6.0"", ""stevedore==5.5.0"", ""pyjwt[crypto]==2.10.1"", ""alabaster==0.7.16"", ""click-log==0.4.0"", ""cryptography==46.0.2"", ""platformdirs==4.5.0"", ""django-waffle==5.0.0"", ""pylint-celery==0.3"", ""edx-lint==5.6.0"", ""semantic-version==2.10.0"", ""psutil==7.1.0"", ""tox==4.31.0"", ""pymongo==4.15.3"", ""isort==6.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""ddt==1.7.2"", ""certifi==2025.10.5"", ""pip-tools==7.5.1"", ""imagesize==1.4.1"", ""pyproject-hooks==1.2.0"", ""requests==2.32.5"", ""docutils==0.19"", ""pyproject-api==1.10.0"", ""pydata-sphinx-theme==0.15.4"", ""wheel==0.45.1"", ""edx-django-utils==8.0.1"", ""python-slugify==8.0.4"", ""pytest-django==4.11.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pylint==3.3.9"", ""django-crum==0.7.9"", ""colorama==0.4.6"", ""jinja2==3.1.6"", ""django==4.2.25"", ""click==8.3.0"", ""asgiref==3.10.0"", ""build==1.3.0"", ""cachetools==6.2.0"", ""pip==25.2"", ""sphinx==5.3.0"", ""packaging==25.0"", ""drf-jwt==1.19.2"", ""accessible-pygments==0.0.5"", ""filelock==3.20.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""pylint-django==2.6.1"", ""code-annotations==2.3.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sqlparse==0.5.3"", ""pycparser==2.23"", ""typing-extensions==4.15.0"", ""urllib3==2.5.0"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""astroid==3.3.11"", ""pycodestyle==2.14.0"", ""markupsafe==3.0.3"", ""pytest==8.4.2"", ""pyyaml==6.0.3""]",8,"[""pylint-django"", ""code-annotations"", ""edx-opaque-keys"", ""edx-django-utils"", ""djangorestframework"", ""django-waffle"", ""factory-boy"", ""pytest-django""]",10,"[""drf-jwt"", ""pylint-django"", ""django-crum"", ""code-annotations"", ""edx-opaque-keys"", ""edx-django-utils"", ""djangorestframework"", ""django-waffle"", ""factory-boy"", ""pytest-django""]",4,"[""edx-opaque-keys"", ""edx-django-utils"", ""django-waffle"", ""code-annotations""]",True,,False,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,False,True,True,44,"{""total_duration"": ""1 minutes 30 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42-drflatest)"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 45 seconds""}]}",Other,2016-03-11 12:28:52,master,edX extensions for Django REST Framework,796,22,True,False,False,False,False,False,False,2026-05-30 15:13:08,Apache License 2.0,12,True,0,0,0,0,3063,221404,0,True,True,False,False,True,False,True,,openedx,4,[],False,"['https://github.com/openedx/edx-drf-extensions/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-drf-extensions/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/edx/edx-drf-extensions/coverage.svg?branch=master', 'https://codecov.io/github/edx/edx-drf-extensions?branch=master', 'https://readthedocs.org/projects/edx-drf-extensions/badge/?version=latest', 'http://edx-drf-extensions.readthedocs.io/en/latest/', 'https://www.django-rest-framework.org/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-drf-extensions,"['3', '3.11']",https://github.com/openedx/edx-drf-extensions,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-translations,,,,True,2026-06-08,True,True,False,False,41,0,[],0,{},0,1,"{""@formatjs/cli"": ""^6.7.2""}",{},0,[],40,"[""responses==0.25.8"", ""setuptools==80.9.0"", ""pytest-cov==7.0.0"", ""click==8.3.1"", ""pip==25.3"", ""pluggy==1.6.0"", ""build==1.3.0"", ""future==1.0.0"", ""regex==2025.11.3"", ""transifex-python==3.7.0"", ""text-unidecode==1.3"", ""iniconfig==2.3.0"", ""packaging==25.0"", ""edx-i18n-tools==1.9.0"", ""requests==2.32.5"", ""charset-normalizer==3.4.4"", ""django==5.2.9"", ""python-slugify==8.0.4"", ""urllib3==2.6.2"", ""asttokens==3.0.1"", ""idna==3.11"", ""pyproject-hooks==1.2.0"", ""transifex-client==0.12.5"", ""pyseeyou==1.0.2"", ""coverage[toml]==7.13.0"", ""parsimonious==0.11.0"", ""certifi==2025.11.12"", ""path==16.16.0"", ""sqlparse==0.5.4"", ""pygments==2.19.2"", ""wheel==0.45.1"", ""pip-tools==7.5.2"", ""six==1.17.0"", ""pytest==9.0.2"", ""asgiref==3.11.0"", ""lxml-html-clean==0.4.3"", ""toolz==1.1.0"", ""lxml[html-clean]==6.0.2"", ""pyyaml==6.0.3"", ""polib==1.2.0""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",False,,False,True,True,False,False,False,True,True,True,True,False,True,False,True,False,False,False,False,True,True,True,71,"{""total_duration"": """", ""checks"": []}",Other,2022-08-03 20:53:06,main,Open edX Translation files in sync with Transifex,481580,159,True,False,False,False,False,False,False,2026-06-08 01:57:48,Creative Commons Attribution Share Alike 4.0 International,57,False,0,0,0,0,2291,52681,1375,False,False,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/openedx-atlas: 504', 'https://github.com/openedx/openedx-translations/actions/workflows/sync-translations.yml: 504', 'https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403', 'https://github.com/openedx/openedx-translations/tree/main/.github/workflows: 504']",False,"['https://app.transifex.com/open-edx/', 'https://github.com/openedx/open-edx-proposals/pull/367', 'https://docs.tutor.edly.io/tutorials/nightly.html', 'https://github.com/openedx/openedx-platform', 'https://docs.tutor.edly.io/', 'https://github.com/openedx/openedx-platform/tree/release/ulmo', 'https://github.com/openedx/openedx-translations/blob/main/Makefile']",True,True,False,False,,,False,,,,False,False,False,True,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-events,,,,True,2026-06-08,True,True,False,False,121,0,[],0,,0,0,,,20,"[""dnspython==2.8.0"", ""attrs==26.1.0"", ""edx-ccx-keys==2.0.2"", ""django-waffle==5.0.0"", ""cffi==2.0.0"", ""click==8.4.1"", ""edx-django-utils==8.0.1"", ""pymongo==4.17.0"", ""django==5.2.14"", ""typing-extensions==4.15.0"", ""six==1.17.0"", ""sqlparse==0.5.5"", ""stevedore==5.8.0"", ""fastavro==1.12.2"", ""edx-opaque-keys[django]==4.0.0"", ""psutil==7.2.2"", ""django-crum==0.7.9"", ""pynacl==1.6.2"", ""asgiref==3.11.1"", ""pycparser==3.0""]",121,"[""alabaster==1.0.0"", ""wheel==0.47.0"", ""jaraco-context==6.1.2"", ""soupsieve==2.8.4"", ""idna==3.17"", ""coverage[toml]==7.14.1"", ""ruff==0.15.15"", ""pycodestyle==2.14.0"", ""pytest==9.0.3"", ""babel==2.18.0"", ""distlib==0.4.0"", ""edx-django-utils==8.0.1"", ""pluggy==1.6.0"", ""watchfiles==1.2.0"", ""restructuredtext-lint==2.0.2"", ""sphinxcontrib-jsmath==1.0.1"", ""pymongo==4.17.0"", ""rfc3986==2.0.0"", ""django==5.2.14"", ""starlette==1.2.1"", ""tomli-w==1.2.0"", ""typing-extensions==4.15.0"", ""ddt==1.7.2"", ""jinja2==3.1.6"", ""tomlkit==0.15.0"", ""platformdirs==4.10.0"", ""twine==6.2.0"", ""more-itertools==11.1.0"", ""uvicorn==0.48.0"", ""sqlparse==0.5.5"", ""iniconfig==2.3.0"", ""cachetools==7.1.4"", ""pygments==2.20.0"", ""jaraco-functools==4.5.0"", ""sphinx-autobuild==2025.8.25"", ""markdown-it-py==4.2.0"", ""asgiref==3.11.1"", ""pylint-django==2.7.0"", ""gitpython==3.1.50"", ""requests==2.34.2"", ""id==1.6.1"", ""packaging==26.2"", ""websockets==16.0"", ""build==1.5.0"", ""pylint-celery==0.3"", ""nh3==0.3.5"", ""pyproject-hooks==1.2.0"", ""docutils==0.23"", ""smmap==5.0.3"", ""requests-toolbelt==1.0.0"", ""code-annotations==3.0.0"", ""filelock==3.29.0"", ""virtualenv==21.4.2"", ""sphinx-book-theme==1.2.0"", ""pylint-plugin-utils==0.9.0"", ""sphinx==9.1.0"", ""accessible-pygments==0.0.5"", ""docutils==0.21.2"", ""mdurl==0.1.2"", ""pydata-sphinx-theme==0.16.1"", ""cryptography==48.0.0"", ""certifi==2026.5.20"", ""sphinxcontrib-qthelp==2.0.0"", ""fastavro==1.12.2"", ""python-discovery==1.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-lint==6.1.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""mccabe==0.7.0"", ""charset-normalizer==3.4.7"", ""imagesize==2.0.0"", ""diff-cover==10.3.0"", ""cffi==2.0.0"", ""snowballstemmer==3.1.0"", ""secretstorage==3.5.0"", ""pip==26.1.2"", ""jeepney==0.9.0"", ""isort==8.0.1"", ""colorama==0.4.6"", ""six==1.17.0"", ""setuptools==82.0.1"", ""edx-opaque-keys[django]==4.0.0"", ""pylint==4.0.5"", ""dill==0.4.1"", ""chardet==7.4.3"", ""django-crum==0.7.9"", ""keyring==25.7.0"", ""pynacl==1.6.2"", ""sphinx-copybutton==0.5.2"", ""beautifulsoup4==4.14.3"", ""markupsafe==3.0.3"", ""pycparser==3.0"", ""roman-numerals==4.1.0"", ""dnspython==2.8.0"", ""pyproject-api==1.10.1"", ""rich==15.0.0"", ""attrs==26.1.0"", ""pip-tools==7.5.3"", ""click-log==0.4.0"", ""edx-ccx-keys==2.0.2"", ""django-waffle==5.0.0"", ""sphinxcontrib-mermaid==2.0.2"", ""sphinxcontrib-applehelp==2.0.0"", ""doc8==2.0.0"", ""click==8.4.1"", ""astroid==4.0.4"", ""pytest-cov==7.1.0"", ""text-unidecode==1.3"", ""sphinxcontrib-devhelp==2.0.0"", ""h11==0.16.0"", ""python-slugify==8.0.4"", ""anyio==4.13.0"", ""pyyaml==6.0.3"", ""tox==4.55.0"", ""stevedore==5.8.0"", ""jaraco-classes==3.4.0"", ""psutil==7.2.2"", ""gitdb==4.0.12"", ""readme-renderer==44.0"", ""pytest-django==4.12.0"", ""urllib3==2.7.0""]",5,"[""edx-django-utils"", ""pytest-django"", ""pylint-django"", ""code-annotations"", ""django-waffle""]",6,"[""edx-django-utils"", ""pytest-django"", ""django-crum"", ""pylint-django"", ""code-annotations"", ""django-waffle""]",3,"[""code-annotations"", ""edx-django-utils"", ""django-waffle""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,25,"{""total_duration"": ""9671 minutes 18 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2021-04-07 23:40:38,main,Open edX events from the Hooks Extensions Framework,1424,32,True,False,False,False,False,False,False,2026-06-08 06:42:37,Apache License 2.0,11,True,0,0,0,0,5324,292325,0,True,True,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/openedx-events/issues: 504', 'https://github.com/openedx/openedx-events/blob/main/LICENSE.txt: 504']",True,"['https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx-events.readthedocs.io/en/latest/', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-events', 'https://img.shields.io/pypi/v/openedx-events.svg', 'https://pypi.python.org/pypi/openedx-events/', 'https://github.com/openedx/openedx-events/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-events/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-events/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-events?branch=main', 'https://readthedocs.org/projects/openedx-events/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-events.svg', 'https://img.shields.io/github/license/openedx/openedx-events.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-events,"['3', '3.12']",https://github.com/openedx/openedx-events,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-account,,,,False,2026-06-08,False,False,False,False,60,0,,0,{},53,7,"{""@edx/browserslist-config"": ""1.5.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""6.9.1"", ""@testing-library/react"": ""14.3.1"", ""jest-environment-jsdom"": ""^30.3.0"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""1.5.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""^6.6.0"", ""@fortawesome/free-brands-svg-icons"": ""^6.6.0"", ""@fortawesome/free-regular-svg-icons"": ""^6.6.0"", ""@fortawesome/free-solid-svg-icons"": ""^6.6.0"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@tensorflow-models/blazeface"": ""0.1.0"", ""@tensorflow/tfjs-converter"": ""4.22.0"", ""@tensorflow/tfjs-core"": ""4.22.0"", ""bowser"": ""2.14.1"", ""classnames"": ""2.5.1"", ""core-js"": ""3.49.0"", ""font-awesome"": ""4.7.0"", ""form-urlencoded"": ""6.1.6"", ""formdata-polyfill"": ""4.0.10"", ""jslib-html5-camera-photo"": ""3.3.4"", ""lodash.camelcase"": ""4.3.0"", ""lodash.debounce"": ""4.0.8"", ""lodash.findindex"": ""4.6.0"", ""lodash.get"": ""4.4.2"", ""lodash.isempty"": ""4.4.0"", ""lodash.merge"": ""4.6.2"", ""lodash.omit"": ""4.18.0"", ""lodash.pick"": ""4.4.0"", ""lodash.pickby"": ""4.6.0"", ""lodash.snakecase"": ""4.1.1"", ""long"": ""5.3.2"", ""memoize-one"": ""^6.0.0"", ""prop-types"": ""15.8.1"", ""qs"": ""6.15.0"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""^6.25.1"", ""react-router-dom"": ""^6.25.1"", ""react-router-hash-link"": ""2.4.3"", ""react-scrollspy"": ""3.4.3"", ""react-transition-group"": ""4.4.5"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""2.13.9"", ""redux-logger"": ""3.0.6"", ""redux-saga"": ""1.4.2"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""0.14.1"", ""reselect"": ""^5.1.1"", ""universal-cookie"": ""7.2.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,78,"{""total_duration"": ""0 minutes 0 seconds"", ""checks"": [{""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2019-04-23 15:40:26,master,Open edX micro-frontend application for managing user account information.,21157,182,True,False,False,False,False,False,False,2026-06-08 01:21:05,GNU AGPLv3,21,True,0,0,5411,532186,2011,0,0,False,False,False,False,True,False,False,@edx/frontend-app-account,openedx,0,"['https://support.example.com: HTTPSConnectionPool(host=\'support.example.com\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'support.example.com\', port=443): Failed to resolve \'support.example.com\' ([Errno -5] No address associated with hostname)""))', 'https://openedx.github.io/frontend-platform/module-Config.html: 404']",False,"['https://github.com/openedx/frontend-app-profile', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-plugin-framework', 'https://support.edx.org/hc/en-us/articles/206212088-What-if-I-did-not-receive-a-password-reset-message', 'https://github.com/openedx/frontend-app-account.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-build', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-account/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml', 'https://img.shields.io/codecov/c/github/edx/frontend-app-account', 'https://codecov.io/gh/openedx/frontend-app-account/', 'https://img.shields.io/npm/v/@edx/frontend-app-account.svg', 'https://img.shields.io/npm/dt/@edx/frontend-app-account.svg', 'https://img.shields.io/npm/l/@edx/frontend-app-account.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-04-06,2025-11-03,5,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/enterprise-access,,,,True,2026-06-08,True,True,False,False,202,0,[],0,,0,0,,,117,"[""stevedore==5.6.0"", ""zope-event==6.1"", ""avro==1.12.1"", ""cattrs==25.3.0"", ""greenlet==3.3.0"", ""charset-normalizer==3.4.4"", ""six==1.17.0"", ""gunicorn==23.0.0"", ""uritemplate==4.2.0"", ""edx-celeryutils==1.4.0"", ""django-object-actions==5.0.0"", ""cryptography==46.0.3"", ""edx-drf-extensions==10.6.0"", ""itypes==1.2.0"", ""python-memcached==1.62"", ""djangorestframework==3.16.1"", ""code-annotations==2.3.0"", ""jsonschema-specifications==2025.9.1"", ""click-didyoumean==0.3.1"", ""psutil==7.2.1"", ""djangoql==0.18.1"", ""analytics-python==1.4.post1"", ""typing-extensions==4.15.0"", ""django-crispy-forms==2.5"", ""pymemcache==4.0.0"", ""edx-enterprise-subsidy-client==2.0.19"", ""markupsafe==3.0.3"", ""monotonic==1.6"", ""edx-django-utils==8.0.1"", ""celery==5.6.2"", ""sqlparse==0.5.5"", ""django==5.2.10"", ""django-extensions==4.1"", ""gevent==25.9.1"", ""django-crum==0.7.9"", ""social-auth-core==4.8.3"", ""coreapi==2.3.3"", ""backoff==1.10.0"", ""pynacl==1.6.2"", ""edx-opaque-keys[django]==3.0.0"", ""pytz==2025.2"", ""semantic-version==2.10.0"", ""pycparser==2.23"", ""python-dateutil==2.9.0.post0"", ""edx-toggles==5.4.1"", ""urllib3==2.6.3"", ""openedx-events==10.5.0"", ""click==8.3.1"", ""dnspython==2.8.0"", ""python3-openid==3.2.0"", ""kombu==5.6.2"", ""wcwidth==0.2.14"", ""jinja2==3.1.6"", ""referencing==0.37.0"", ""coreschema==0.0.4"", ""certifi==2026.1.4"", ""tzlocal==5.3.1"", ""redis==7.1.0"", ""pygments==2.19.2"", ""mysqlclient==2.2.7"", ""django-cors-headers==4.9.0"", ""django-log-request-id==2.1.0"", ""attrs==25.4.0"", ""simplejson==3.20.2"", ""edx-auth-backends==4.6.2"", ""requests-oauthlib==2.0.0"", ""jsonfield==3.2.0"", ""idna==3.11"", ""zope-interface==8.2"", ""vine==5.1.0"", ""drf-jwt==1.19.2"", ""drf-spectacular==0.29.0"", ""fastavro==1.12.1"", ""django-rest-swagger==2.2.0"", ""requests==2.32.5"", ""oauthlib==3.3.1"", ""tzdata==2025.3"", ""django-model-utils==5.0.0"", ""cffi==2.0.0"", ""prompt-toolkit==3.0.52"", ""edx-ccx-keys==2.0.2"", ""pymongo==4.16.0"", ""django-waffle==5.0.0"", ""packaging==25.0"", ""edx-event-bus-kafka==6.1.0"", ""inflection==0.5.1"", ""jsonschema==4.26.0"", ""asgiref==3.11.0"", ""openapi-codec==1.3.2"", ""stripe==14.1.0"", ""text-unidecode==1.3"", ""confluent-kafka[avro,schema-registry]==2.6.1"", ""crispy-bootstrap5==2025.6"", ""drf-yasg==1.21.11"", ""click-plugins==1.1.1.2"", ""billiard==4.2.4"", ""edx-rest-api-client==6.2.0"", ""rpds-py==0.30.0"", ""social-auth-app-django==5.7.0"", ""edx-braze-client==0.2.5"", ""defusedxml==0.7.1"", ""ply==3.11"", ""pyjwt[crypto]==2.10.1"", ""django-celery-results==2.6.0"", ""django-countries==8.2.0"", ""djangorestframework-csv==3.0.2"", ""edx-django-release-util==1.5.0"", ""amqp==5.3.1"", ""pyyaml==6.0.3"", ""click-repl==0.3.0"", ""edx-rbac==2.1.0"", ""jsonfield2==4.0.0.post0"", ""python-slugify==8.0.4"", ""django-simple-history==3.11.0"", ""django-filter==25.2"", ""edx-api-doc-tools==2.1.0"", ""rules==3.5""]",202,"[""stevedore==5.6.0"", ""alabaster==1.0.0"", ""markdown-it-py==4.0.0"", ""tomlkit==0.13.3"", ""zope-event==6.1"", ""avro==1.12.1"", ""cattrs==25.3.0"", ""six==1.17.0"", ""charset-normalizer==3.4.4"", ""requests-toolbelt==1.0.0"", ""greenlet==3.3.0"", ""doc8==2.0.0"", ""gunicorn==23.0.0"", ""uritemplate==4.2.0"", ""polib==1.2.0"", ""edx-celeryutils==1.4.0"", ""django-object-actions==5.0.0"", ""cryptography==46.0.3"", ""edx-drf-extensions==10.6.0"", ""itypes==1.2.0"", ""jaraco-classes==3.4.0"", ""python-memcached==1.62"", ""djangorestframework==3.16.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""lxml[html-clean]==6.0.2"", ""code-annotations==2.3.0"", ""pydocstyle==6.3.0"", ""nh3==0.3.2"", ""jsonschema-specifications==2025.9.1"", ""lxml-html-clean==0.4.3"", ""click-didyoumean==0.3.1"", ""path==16.16.0"", ""sphinxcontrib-devhelp==2.0.0"", ""docutils==0.22.4"", ""psutil==7.2.1"", ""twine==6.2.0"", ""dill==0.4.0"", ""pyproject-api==1.10.0"", ""djangoql==0.18.1"", ""analytics-python==1.4.post1"", ""ddt==1.7.2"", ""typing-extensions==4.15.0"", ""django-crispy-forms==2.5"", ""pymemcache==4.0.0"", ""edx-enterprise-subsidy-client==2.0.19"", ""markupsafe==3.0.3"", ""freezegun==1.5.5"", ""django-debug-toolbar==6.1.0"", ""sphinx-book-theme==1.1.4"", ""monotonic==1.6"", ""edx-django-utils==8.0.1"", ""roman-numerals==4.1.0"", ""pydata-sphinx-theme==0.15.4"", ""mccabe==0.7.0"", ""celery==5.6.2"", ""sqlparse==0.5.5"", ""django==5.2.10"", ""django-extensions==4.1"", ""jaraco-context==6.0.2"", ""gevent==25.9.1"", ""django-crum==0.7.9"", ""social-auth-core==4.8.3"", ""coreapi==2.3.3"", ""backoff==1.10.0"", ""pynacl==1.6.2"", ""edx-opaque-keys[django]==3.0.0"", ""pytz==2025.2"", ""cachetools==6.2.4"", ""semantic-version==2.10.0"", ""diff-cover==10.2.0"", ""restructuredtext-lint==2.0.2"", ""secretstorage==3.5.0"", ""pycparser==2.23"", ""rich==14.2.0"", ""docutils==0.21.2"", ""pycodestyle==2.14.0"", ""python-dateutil==2.9.0.post0"", ""edx-toggles==5.4.1"", ""urllib3==2.6.3"", ""beautifulsoup4==4.14.3"", ""openedx-events==10.5.0"", ""click==8.3.1"", ""dnspython==2.8.0"", ""build==1.4.0"", ""python3-openid==3.2.0"", ""chardet==5.2.0"", ""kombu==5.6.2"", ""wcwidth==0.2.14"", ""babel==2.17.0"", ""iniconfig==2.3.0"", ""jinja2==3.1.6"", ""edx-lint==5.6.0"", ""jaraco-functools==4.4.0"", ""referencing==0.37.0"", ""coreschema==0.0.4"", ""certifi==2026.1.4"", ""tzlocal==5.3.1"", ""redis==7.1.0"", ""pygments==2.19.2"", ""sphinxcontrib-jsmath==1.0.1"", ""click-log==0.4.0"", ""sphinxcontrib-applehelp==2.0.0"", ""mysqlclient==2.2.7"", ""django-cors-headers==4.9.0"", ""faker==40.1.0"", ""dictdiffer==0.9.0"", ""django-log-request-id==2.1.0"", ""attrs==25.4.0"", ""readme-renderer==44.0"", ""simplejson==3.20.2"", ""edx-auth-backends==4.6.2"", ""mdurl==0.1.2"", ""accessible-pygments==0.0.5"", ""requests-oauthlib==2.0.0"", ""isort==7.0.0"", ""jsonfield==3.2.0"", ""idna==3.11"", ""zope-interface==8.2"", ""vine==5.1.0"", ""fastavro==1.12.1"", ""distlib==0.4.0"", ""drf-jwt==1.19.2"", ""drf-spectacular==0.29.0"", ""django-rest-swagger==2.2.0"", ""setuptools==80.9.0"", ""requests==2.32.5"", ""pip==25.3"", ""oauthlib==3.3.1"", ""pylint==4.0.4"", ""pylint-celery==0.3"", ""tzdata==2025.3"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinx==9.1.0"", ""pip-tools==7.5.2"", ""virtualenv==20.36.1"", ""tox==4.34.1"", ""django-model-utils==5.0.0"", ""cffi==2.0.0"", ""edx-i18n-tools==1.9.0"", ""soupsieve==2.8.1"", ""prompt-toolkit==3.0.52"", ""django-dynamic-fixture==4.0.1"", ""edx-ccx-keys==2.0.2"", ""pylint-django==2.7.0"", ""pymongo==4.16.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""django-waffle==5.0.0"", ""rfc3986==2.0.0"", ""packaging==25.0"", ""platformdirs==4.5.1"", ""edx-event-bus-kafka==6.1.0"", ""inflection==0.5.1"", ""jsonschema==4.26.0"", ""asgiref==3.11.0"", ""pytest-django==4.11.1"", ""pytest-dictsdiff==0.5.8"", ""openapi-codec==1.3.2"", ""factory-boy==3.3.3"", ""stripe==14.1.0"", ""text-unidecode==1.3"", ""confluent-kafka[avro,schema-registry]==2.6.1"", ""pytest-cov==7.0.0"", ""crispy-bootstrap5==2025.6"", ""drf-yasg==1.21.11"", ""click-plugins==1.1.1.2"", ""jeepney==0.9.0"", ""imagesize==1.4.1"", ""billiard==4.2.4"", ""edx-rest-api-client==6.2.0"", ""keyring==25.7.0"", ""rpds-py==0.30.0"", ""social-auth-app-django==5.7.0"", ""edx-braze-client==0.2.5"", ""defusedxml==0.7.1"", ""ply==3.11"", ""pyjwt[crypto]==2.10.1"", ""pylint-plugin-utils==0.9.0"", ""django-celery-results==2.6.0"", ""django-countries==8.2.0"", ""djangorestframework-csv==3.0.2"", ""edx-django-release-util==1.5.0"", ""id==1.5.0"", ""amqp==5.3.1"", ""coverage[toml]==7.13.1"", ""pyyaml==6.0.3"", ""astroid==4.0.3"", ""click-repl==0.3.0"", ""edx-rbac==2.1.0"", ""pluggy==1.6.0"", ""snowballstemmer==3.0.1"", ""jsonfield2==4.0.0.post0"", ""colorama==0.4.6"", ""pyproject-hooks==1.2.0"", ""python-slugify==8.0.4"", ""django-simple-history==3.11.0"", ""filelock==3.20.3"", ""pytest==9.0.2"", ""more-itertools==10.8.0"", ""django-filter==25.2"", ""wheel==0.45.1"", ""edx-api-doc-tools==2.1.0"", ""rules==3.5""]",25,"[""django-waffle"", ""pytest-django"", ""django-object-actions"", ""factory-boy"", ""edx-drf-extensions"", ""django-crispy-forms"", ""edx-toggles"", ""django-celery-results"", ""djangorestframework"", ""edx-celeryutils"", ""django-debug-toolbar"", ""edx-rest-api-client"", ""edx-api-doc-tools"", ""code-annotations"", ""django-filter"", ""edx-django-utils"", ""edx-auth-backends"", ""django-extensions"", ""edx-i18n-tools"", ""social-auth-app-django"", ""django-cors-headers"", ""django-countries"", ""pylint-django"", ""edx-rbac"", ""edx-django-release-util""]",35,"[""django-waffle"", ""pytest-django"", ""django-rest-swagger"", ""django-object-actions"", ""factory-boy"", ""django-model-utils"", ""edx-drf-extensions"", ""django-crispy-forms"", ""django-dynamic-fixture"", ""django-crum"", ""edx-toggles"", ""djangorestframework-csv"", ""django-celery-results"", ""djangorestframework"", ""edx-celeryutils"", ""django-debug-toolbar"", ""edx-rest-api-client"", ""django-simple-history"", ""edx-api-doc-tools"", ""code-annotations"", ""rules"", ""django-filter"", ""edx-django-utils"", ""jsonfield"", ""edx-auth-backends"", ""django-extensions"", ""edx-i18n-tools"", ""social-auth-app-django"", ""django-cors-headers"", ""django-countries"", ""drf-jwt"", ""drf-yasg"", ""pylint-django"", ""edx-rbac"", ""edx-django-release-util""]",20,"[""django-waffle"", ""edx-drf-extensions"", ""django-crispy-forms"", ""edx-toggles"", ""django-celery-results"", ""edx-celeryutils"", ""django-debug-toolbar"", ""edx-rest-api-client"", ""edx-api-doc-tools"", ""code-annotations"", ""django-filter"", ""edx-django-utils"", ""edx-auth-backends"", ""django-extensions"", ""edx-i18n-tools"", ""social-auth-app-django"", ""django-cors-headers"", ""django-countries"", ""edx-rbac"", ""edx-django-release-util""]",True,,True,False,True,True,False,False,True,True,True,True,False,False,True,True,True,False,True,False,True,True,True,78,"{""total_duration"": ""12235 minutes 39 seconds"", ""checks"": [{""name"": ""tests (3.12, pinned)"", ""duration"": ""11 minutes 28 seconds""}, {""name"": ""tests (3.12, 5.2)"", ""duration"": ""11 minutes 27 seconds""}, {""name"": ""upgrade_requirements (3.12)"", ""duration"": ""2 minutes 19 seconds""}, {""name"": ""upgrade_requirements (3.12)"", ""duration"": ""2 minutes 5 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2022-01-07 21:05:23,main,Service to manage access to content for enterprise users,8125,18,True,False,False,False,False,False,False,2026-06-08 03:18:24,GNU AGPLv3,22,True,0,0,4135,0,10959,3236104,3206,True,True,False,False,True,False,False,,openedx,5,"['https://github.com/edx/devstack: 504', 'https://openedx-slack-invite.herokuapp.com/: 404', 'https://github.com/edx/enterprise-access/workflows/Python%20CI/badge.svg?branch=main: 404', 'https://enterprise-access.readthedocs.io/en/latest/: 404']",True,"['https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/enterprise-access.svg', 'https://pypi.python.org/pypi/enterprise-access/', 'https://github.com/edx/enterprise-access/actions', 'https://codecov.io/github/edx/enterprise-access/coverage.svg?branch=main', 'https://codecov.io/github/edx/enterprise-access?branch=main', 'https://readthedocs.org/projects/enterprise-access/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/enterprise-access.svg', 'https://img.shields.io/github/license/edx/enterprise-access.svg', 'https://github.com/edx/enterprise-access/blob/main/LICENSE.txt']",True,True,False,False,,,True,,,0,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/RecommenderXBlock,,,,True,2026-06-08,True,True,False,False,26,0,[],0,,0,0,,,17,"[""appdirs==1.4.4"", ""webencodings==0.5.1"", ""webob==1.8.9"", ""web-fragments==3.1.0"", ""asgiref==3.11.1"", ""six==1.17.0"", ""bleach==6.3.0"", ""pyyaml==6.0.3"", ""edx-i18n-tools==1.9.0"", ""path==16.16.0"", ""lxml-html-clean==0.4.4"", ""sqlparse==0.5.5"", ""lxml[html-clean]==6.0.2"", ""django==5.2.12"", ""simplejson==3.20.2"", ""polib==1.2.0"", ""fs==2.4.16""]",26,"[""build==1.4.0"", ""pyyaml==6.0.3"", ""pip-tools==7.5.3"", ""simplejson==3.20.2"", ""lxml-html-clean==0.4.4"", ""pycodestyle==2.14.0"", ""web-fragments==3.1.0"", ""setuptools==82.0.0"", ""six==1.17.0"", ""bleach==6.3.0"", ""edx-i18n-tools==1.9.0"", ""path==16.16.0"", ""sqlparse==0.5.5"", ""django==5.2.12"", ""fs==2.4.16"", ""click==8.3.1"", ""appdirs==1.4.4"", ""webencodings==0.5.1"", ""wheel==0.46.3"", ""pip==26.0.1"", ""lxml[html-clean]==6.0.2"", ""webob==1.8.9"", ""asgiref==3.11.1"", ""pyproject-hooks==1.2.0"", ""packaging==26.0"", ""polib==1.2.0""]",2,"[""web-fragments"", ""edx-i18n-tools""]",2,"[""web-fragments"", ""edx-i18n-tools""]",2,"[""web-fragments"", ""edx-i18n-tools""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,False,True,False,False,True,False,False,29,"{""total_duration"": ""12191 minutes 22 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 16 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 12 seconds""}]}",Other,2017-07-07 15:37:29,master,"edX: An XBlock to recommend resources to other students, written by Daniel Li, under my supervision",1423,15,True,False,False,False,False,False,False,2026-05-30 13:37:31,GNU AGPLv3,4,True,17972,0,19728,70007,1429,56828,0,False,False,False,False,False,False,False,,openedx,3,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,recommender-xblock,"['3', '3.12']",https://github.com/openedx/RecommenderXBlock,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-toggles,,,,True,2026-06-08,True,True,False,False,112,0,[],0,,0,0,,,18,"[""edx-django-utils==8.0.1"", ""code-annotations==3.0.0"", ""django-crum==0.7.9"", ""jinja2==3.1.6"", ""cffi==2.0.0"", ""asgiref==3.11.1"", ""python-slugify==8.0.4"", ""django-waffle==5.0.0"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""text-unidecode==1.3"", ""django==5.2.13"", ""pycparser==3.0"", ""pyyaml==6.0.3"", ""click==8.3.2"", ""pynacl==1.6.2"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5""]",112,"[""tomlkit==0.14.0"", ""imagesize==2.0.0"", ""filelock==3.25.2"", ""psutil==7.2.2"", ""mccabe==0.7.0"", ""polib==1.2.0"", ""jinja2==3.1.6"", ""pyproject-hooks==1.2.0"", ""idna==3.11"", ""virtualenv==21.2.0"", ""tox==4.52.0"", ""text-unidecode==1.3"", ""snowballstemmer==3.0.1"", ""edx-lint==6.0.0"", ""typing-extensions==4.15.0"", ""jaraco-context==6.1.2"", ""pyproject-api==1.10.0"", ""lxml-html-clean==0.4.4"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pylint==4.0.5"", ""click==8.3.2"", ""build==1.4.2"", ""readme-renderer==44.0"", ""django-crum==0.7.9"", ""pycparser==3.0"", ""cryptography==46.0.6"", ""sphinxcontrib-htmlhelp==2.1.0"", ""click-log==0.4.0"", ""lxml[html-clean]==6.0.2"", ""django-waffle==5.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinx-book-theme==1.2.0"", ""jmespath==1.1.0"", ""python-discovery==1.2.1"", ""wrapt==2.1.2"", ""jeepney==0.9.0"", ""atlassian-python-api==4.0.7"", ""cffi==2.0.0"", ""asgiref==3.11.1"", ""pyyaml==6.0.3"", ""packaging==26.0"", ""pluggy==1.6.0"", ""pydocstyle==6.3.0"", ""charset-normalizer==3.4.7"", ""deprecated==1.3.1"", ""nh3==0.3.4"", ""distlib==0.4.0"", ""jaraco-classes==3.4.0"", ""oauthlib==3.3.1"", ""rfc3986==2.0.0"", ""pylint-celery==0.3"", ""sphinx==9.1.0"", ""python-slugify==8.0.4"", ""chardet==7.4.0.post2"", ""requests-toolbelt==1.0.0"", ""mdurl==0.1.2"", ""docutils==0.21.2"", ""pytest-cov==7.1.0"", ""pydata-sphinx-theme==0.16.1"", ""pycodestyle==2.14.0"", ""roman-numerals==4.1.0"", ""dill==0.4.1"", ""django==5.2.13"", ""pip==26.0.1"", ""doc8==2.0.0"", ""setuptools==82.0.1"", ""jaraco-functools==4.4.0"", ""secretstorage==3.5.0"", ""code-annotations==3.0.0"", ""platformdirs==4.9.4"", ""beautifulsoup4==4.14.3"", ""urllib3==2.6.3"", ""certifi==2026.2.25"", ""keyring==25.7.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""pynacl==1.6.2"", ""wheel==0.46.3"", ""colorama==0.4.6"", ""isort==8.0.1"", ""coverage[toml]==7.13.5"", ""six==1.17.0"", ""stevedore==5.7.0"", ""path==16.16.0"", ""soupsieve==2.8.3"", ""more-itertools==11.0.1"", ""id==1.6.1"", ""iniconfig==2.3.0"", ""cachetools==7.0.5"", ""diff-cover==10.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""tomli-w==1.2.0"", ""sqlparse==0.5.5"", ""pylint-django==2.7.0"", ""pygments==2.20.0"", ""babel==2.18.0"", ""pytest-django==4.12.0"", ""edx-i18n-tools==2.0.0"", ""pip-tools==7.5.3"", ""alabaster==1.0.0"", ""markupsafe==3.0.3"", ""accessible-pygments==0.0.5"", ""edx-django-utils==8.0.1"", ""requests==2.33.1"", ""twine==6.2.0"", ""pytest==9.0.2"", ""requests-oauthlib==2.0.0"", ""rich==14.3.3"", ""astroid==4.0.4"", ""restructuredtext-lint==2.0.2"", ""markdown-it-py==4.0.0""]",6,"[""edx-i18n-tools"", ""code-annotations"", ""pylint-django"", ""django-waffle"", ""edx-django-utils"", ""pytest-django""]",7,"[""edx-i18n-tools"", ""code-annotations"", ""pylint-django"", ""django-waffle"", ""edx-django-utils"", ""django-crum"", ""pytest-django""]",4,"[""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""code-annotations""]",True,,True,False,True,True,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,10,"{""total_duration"": ""7991 minutes 57 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2018-07-05 18:19:46,master,Library and utilities for feature toggles,739,16,True,False,False,False,False,False,False,2026-06-06 08:52:10,GNU AGPLv3,2,True,0,0,0,0,4590,90839,0,True,True,False,False,True,False,True,,openedx,3,[],True,"['https://docs.openedx.org/projects/edx-toggles/en/latest/readme.html', 'https://github.com/openedx/edx-toggles', 'https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-toggles.svg', 'https://pypi.python.org/pypi/edx-toggles/', 'https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-toggles?branch=master', 'https://readthedocs.org/projects/edx-toggles/badge/?version=latest', 'http://edx-toggles.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-toggles.svg', 'https://img.shields.io/github/license/edx/edx-toggles.svg', 'https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-toggles,"['3', '3.12']",https://github.com/openedx/edx-toggles,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/opaque-keys,,,,True,2026-06-08,True,True,False,False,85,0,[],0,,0,0,,,4,"[""stevedore==5.8.0"", ""dnspython==2.8.0"", ""typing-extensions==4.15.0"", ""pymongo==4.17.0""]",85,"[""pytest==9.0.3"", ""imagesize==2.0.0"", ""iniconfig==2.3.0"", ""python-discovery==1.4.0"", ""pylint-django==2.7.0"", ""pyyaml==6.0.3"", ""click-log==0.4.0"", ""pygments==2.20.0"", ""sphinxcontrib-qthelp==2.0.0"", ""python-slugify==8.0.4"", ""coverage==7.14.1"", ""pip-tools==7.5.3"", ""ast-serialize==0.5.0"", ""pathspec==1.1.1"", ""markupsafe==3.0.3"", ""pyproject-hooks==1.2.0"", ""typing-extensions==4.15.0"", ""sortedcontainers==2.4.0"", ""wheel==0.47.0"", ""pip==26.1.2"", ""text-unidecode==1.3"", ""mypy==2.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""mypy-extensions==1.1.0"", ""docutils==0.22.4"", ""ddt==1.7.2"", ""accessible-pygments==0.0.5"", ""execnet==2.1.2"", ""tox==4.55.0"", ""jinja2==3.1.6"", ""idna==3.17"", ""packaging==26.2"", ""alabaster==1.0.0"", ""requests==2.34.2"", ""soupsieve==2.8.4"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pytest-django==4.12.0"", ""coverage[toml]==7.14.1"", ""hypothesis==6.155.1"", ""isort==8.0.1"", ""cachetools==7.1.4"", ""pluggy==1.6.0"", ""sphinx-book-theme==1.2.0"", ""pytest-cov==7.1.0"", ""pylint==4.0.5"", ""pydata-sphinx-theme==0.16.1"", ""pylint-celery==0.3"", ""distlib==0.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""virtualenv==21.4.2"", ""tomlkit==0.15.0"", ""six==1.17.0"", ""colorama==0.4.6"", ""build==1.5.0"", ""dill==0.4.1"", ""librt==0.11.0"", ""setuptools==82.0.1"", ""pycodestyle==2.14.0"", ""dnspython==2.8.0"", ""nh3==0.3.5"", ""sphinx==9.1.0"", ""filelock==3.29.0"", ""roman-numerals==4.1.0"", ""beautifulsoup4==4.14.3"", ""sphinxcontrib-applehelp==2.0.0"", ""edx-lint==6.1.0"", ""babel==2.18.0"", ""stevedore==5.8.0"", ""tomli-w==1.2.0"", ""mccabe==0.7.0"", ""pymongo==4.17.0"", ""astroid==4.0.4"", ""snowballstemmer==3.1.0"", ""certifi==2026.5.20"", ""click==8.4.1"", ""readme-renderer==44.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""code-annotations==3.0.0"", ""pylint-plugin-utils==0.9.0"", ""pyproject-api==1.10.1"", ""urllib3==2.7.0"", ""pytest-xdist==3.8.0"", ""charset-normalizer==3.4.7"", ""mock==5.2.0"", ""platformdirs==4.10.0""]",3,"[""code-annotations"", ""pylint-django"", ""pytest-django""]",3,"[""code-annotations"", ""pylint-django"", ""pytest-django""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,13,"{""total_duration"": ""9603 minutes 2 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""3 minutes 11 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, without-django)"", ""duration"": ""3 minutes 7 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2014-05-23 17:24:54,master,,1005,21,True,False,False,False,False,False,False,2026-06-08 00:30:49,GNU AGPLv3,3,True,0,0,0,0,1757,258429,0,True,False,False,False,True,False,False,,openedx,0,[],False,"['http://code.edx.org/', 'https://github.com/openedx/opaque-keys/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/opaque-keys/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/edx/opaque-keys/badge.svg?branch=master', 'https://coveralls.io/r/edx/opaque-keys', 'https://github.com/openedx/edx-platform/wiki/Opaque-Keys']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-opaque-keys,"['3', '3.12']",https://github.com/openedx/opaque-keys,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/web-fragments,,,,True,2026-06-08,True,True,False,False,105,0,[],0,,0,0,,,0,[],105,"[""wheel==0.47.0"", ""asgiref==3.11.1"", ""jinja2==3.1.6"", ""typing-extensions==4.15.0"", ""python-discovery==1.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pockets==0.9.1"", ""pyyaml==6.0.3"", ""secretstorage==3.5.0"", ""click-log==0.4.0"", ""readme-renderer==44.0"", ""isort==8.0.1"", ""doc8==2.0.0"", ""soupsieve==2.8.4"", ""sphinxcontrib-applehelp==2.0.0"", ""cryptography==48.0.0"", ""pylint==4.0.5"", ""astroid==4.0.4"", ""charset-normalizer==3.4.7"", ""lxml-html-clean==0.4.5"", ""rich==15.0.0"", ""imagesize==2.0.0"", ""twine==6.2.0"", ""pylint-plugin-utils==0.9.0"", ""platformdirs==4.10.0"", ""edx-lint==6.1.0"", ""diff-cover==10.3.0"", ""more-itertools==11.1.0"", ""markupsafe==3.0.3"", ""pylint-django==2.7.0"", ""pydocstyle==6.3.0"", ""pycodestyle==2.14.0"", ""pip-tools==7.5.3"", ""click==8.4.1"", ""pyproject-hooks==1.2.0"", ""code-annotations==3.0.0"", ""pycparser==3.0"", ""beautifulsoup4==4.14.3"", ""rfc3986==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""pip==26.1.2"", ""sphinxcontrib-qthelp==2.0.0"", ""stevedore==5.8.0"", ""six==1.17.0"", ""accessible-pygments==0.0.5"", ""jeepney==0.9.0"", ""pytest==9.0.3"", ""lxml[html-clean]==6.1.1"", ""tomli-w==1.2.0"", ""pytest-django==4.12.0"", ""jaraco-context==6.1.2"", ""sphinx==9.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""virtualenv==21.4.2"", ""docutils==0.23"", ""mdurl==0.1.2"", ""pytest-cov==7.1.0"", ""jaraco-classes==3.4.0"", ""keyring==25.7.0"", ""ddt==1.3.1"", ""setuptools==82.0.1"", ""cachetools==7.1.4"", ""pylint-celery==0.3"", ""build==1.5.0"", ""nh3==0.3.5"", ""roman-numerals==4.1.0"", ""cffi==2.0.0"", ""chardet==7.4.3"", ""pygments==2.20.0"", ""polib==1.2.0"", ""snowballstemmer==3.1.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-i18n-tools==2.0.0"", ""dill==0.4.1"", ""markdown-it-py==4.2.0"", ""distlib==0.4.1"", ""filelock==3.29.1"", ""sqlparse==0.5.5"", ""jaraco-functools==4.5.0"", ""coverage[toml]==7.14.1"", ""python-slugify==8.0.4"", ""pyproject-api==1.10.1"", ""tox==4.55.1"", ""docutils==0.21.2"", ""babel==2.18.0"", ""mccabe==0.7.0"", ""idna==3.18"", ""alabaster==1.0.0"", ""tomlkit==0.15.0"", ""requests==2.34.2"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-napoleon==0.7"", ""django==5.2.15"", ""pluggy==1.6.0"", ""path==16.16.0"", ""id==1.6.1"", ""urllib3==2.7.0"", ""text-unidecode==1.3"", ""certifi==2026.5.20"", ""sphinx-book-theme==1.2.0"", ""requests-toolbelt==1.0.0"", ""iniconfig==2.3.0"", ""restructuredtext-lint==2.0.2"", ""colorama==0.4.6"", ""packaging==26.2""]",4,"[""pytest-django"", ""code-annotations"", ""pylint-django"", ""edx-i18n-tools""]",4,"[""pytest-django"", ""code-annotations"", ""pylint-django"", ""edx-i18n-tools""]",2,"[""code-annotations"", ""edx-i18n-tools""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,43,"{""total_duration"": ""0 minutes 50 seconds"", ""checks"": [{""name"": ""update-pip-graph"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 23 seconds""}]}",Other,2016-12-08 15:24:36,master,Provides the ability to render fragments of web pages,304,9,True,False,False,False,False,False,False,2026-06-05 13:48:54,Apache License 2.0,2,True,0,0,120,0,3016,27818,0,True,True,False,False,True,False,False,,openedx,2,"['http://web-fragments.readthedocs.io/en/latest/?badge=latest: 404', 'http://web-fragments.readthedocs.io/en/latest/: 404', 'https://web-fragments.readthedocs.org: 404', 'https://open.edx.org/getting-help: 403']",True,"['https://img.shields.io/pypi/v/web-fragments.svg', 'https://pypi.python.org/pypi/web-fragments/', 'https://github.com/openedx/web-fragments/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/web-fragments/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/web-fragments/coverage.svg?branch=master', 'http://codecov.io/github/edx/web-fragments?branch=master', 'https://img.shields.io/pypi/pyversions/web-fragments.svg', 'https://img.shields.io/github/license/edx/web-fragments.svg', 'https://github.com/openedx/web-fragments/blob/master/LICENSE.txt', 'https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0012-arch-fragment-views.html', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,False,,,,False,True,True,True,,False,web-fragments,"['3', '3.12']",https://github.com/openedx/web-fragments,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/olxcleaner,,,,True,2026-06-08,False,False,False,False,101,0,[],0,,0,0,,,5,"[""python-dateutil==2.9.0.post0"", ""pylatexenc==2.10"", ""six==1.16.0"", ""pytz==2024.1"", ""lxml==5.2.1""]",101,"[""pydata-sphinx-theme==0.14.4"", ""sphinxcontrib-htmlhelp==2.0.1"", ""mccabe==0.7.0"", ""stevedore==5.2.0"", ""pytest==8.1.1"", ""urllib3==2.2.1"", ""pluggy==1.4.0"", ""soupsieve==2.5"", ""iniconfig==2.0.0"", ""sphinx==6.2.1"", ""astroid==3.1.0"", ""mdurl==0.1.2"", ""pygments==2.17.2"", ""markupsafe==2.1.5"", ""platformdirs==4.2.0"", ""requests-toolbelt==1.0.0"", ""sphinxcontrib-qthelp==1.0.3"", ""idna==3.7"", ""rfc3986==2.0.0"", ""python-dateutil==2.9.0.post0"", ""typing-extensions==4.11.0"", ""importlib-resources==6.4.0"", ""tomli==2.0.1"", ""accessible-pygments==0.0.4"", ""coverage[toml]==7.4.4"", ""alabaster==0.7.13"", ""isort==5.13.2"", ""virtualenv==20.25.3"", ""importlib-metadata==6.11.0"", ""pbr==6.0.0"", ""pydocstyle==6.3.0"", ""tomlkit==0.12.4"", ""pip==24.0"", ""sphinxcontrib-jsmath==1.0.1"", ""wheel==0.43.0"", ""pylatexenc==2.10"", ""markdown-it-py==3.0.0"", ""six==1.16.0"", ""more-itertools==10.2.0"", ""lxml==5.2.1"", ""requests==2.31.0"", ""charset-normalizer==3.3.2"", ""jinja2==3.1.3"", ""pyproject-api==1.6.1"", ""readme-renderer==43.0"", ""docutils==0.20.1"", ""diff-cover==9.0.0"", ""keyring==25.1.0"", ""python-slugify==8.0.4"", ""sphinxcontrib-serializinghtml==1.1.5"", ""nh3==0.2.17"", ""pylint==3.1.0"", ""cryptography==42.0.5"", ""zipp==3.18.1"", ""pycparser==2.22"", ""edx-lint==5.3.6"", ""pyproject-hooks==1.0.0"", ""setuptools==69.5.1"", ""text-unidecode==1.3"", ""beautifulsoup4==4.12.3"", ""filelock==3.13.4"", ""packaging==24.0"", ""pycodestyle==2.11.1"", ""babel==2.14.0"", ""colorama==0.4.6"", ""click-log==0.4.0"", ""jaraco-context==5.3.0"", ""jaraco-classes==3.4.0"", ""snowballstemmer==2.2.0"", ""restructuredtext-lint==1.4.0"", ""pylint-django==2.5.5"", ""pip-tools==7.4.1"", ""sphinxcontrib-devhelp==1.0.2"", ""docutils==0.19"", ""imagesize==1.4.1"", ""doc8==1.1.1"", ""jaraco-functools==4.0.1"", ""jeepney==0.8.0"", ""certifi==2024.2.2"", ""code-annotations==1.8.0"", ""pytz==2024.1"", ""twine==5.0.0"", ""pkginfo==1.10.0"", ""pyyaml==6.0.1"", ""pytest-cov==5.0.0"", ""tox==4.14.2"", ""pylint-plugin-utils==0.8.2"", ""cachetools==5.3.3"", ""sphinx-book-theme==1.0.1"", ""build==1.2.1"", ""secretstorage==3.3.3"", ""sphinxcontrib-applehelp==1.0.4"", ""pylint-celery==0.3"", ""chardet==5.2.0"", ""cffi==1.16.0"", ""click==8.1.7"", ""dill==0.3.8"", ""rich==13.7.1"", ""distlib==0.3.8"", ""exceptiongroup==1.2.1"", ""backports-tarfile==1.1.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,False,False,False,False,True,True,True,False,False,True,True,True,9,"{""total_duration"": ""0 minutes 17 seconds"", ""checks"": [{""name"": ""Python Tests (ubuntu-latest, 3.11)"", ""duration"": ""0 minutes 17 seconds""}, {""name"": ""Python Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 15 seconds""}]}",Other,2021-04-02 16:44:34,master,Tool for checking edX courses for errors and creating content reports,243,6,True,False,False,False,True,False,False,2026-05-30 15:27:43,GNU GPLv3,0,True,0,0,1361,0,3140,180832,0,False,True,False,False,True,False,False,,openedx,0,[],False,"['https://github.com/openedx/olxcleaner/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/olxcleaner/actions/workflows/ci.yaml', 'https://codecov.io/gh/jolyonb/olxcleaner/branch/master/graphs/badge.svg', 'https://codecov.io/gh/jolyonb/olxcleaner', 'https://github.com/openedx/olxcleaner']",True,True,False,False,,,False,,,,False,False,False,True,,False,olxcleaner,"['3.11', '3.12']",https://github.com/openedx/olxcleaner,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-user-groups,,,,True,2026-06-08,False,False,False,False,105,0,[],0,,0,0,,,4,"[""django==4.2.21"", ""asgiref==3.8.1"", ""sqlparse==0.5.3"", ""openedx-atlas==0.7.0""]",105,"[""jaraco-functools==4.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""edx-i18n-tools==1.9.0"", ""sphinx==8.2.3"", ""pycodestyle==2.13.0"", ""click-log==0.4.0"", ""build==1.2.2.post1"", ""filelock==3.18.0"", ""jaraco-classes==3.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""typing-extensions==4.13.2"", ""diff-cover==9.3.1"", ""pytest-django==4.11.1"", ""pytest==8.3.5"", ""astroid==3.3.10"", ""cachetools==6.0.0"", ""pip==24.2"", ""lxml[html-clean]==5.4.0"", ""soupsieve==2.7"", ""pygments==2.19.1"", ""platformdirs==4.3.8"", ""more-itertools==10.7.0"", ""jeepney==0.9.0"", ""twine==6.1.0"", ""markupsafe==3.0.2"", ""pylint==3.3.7"", ""stevedore==5.4.1"", ""readme-renderer==44.0"", ""pycparser==2.22"", ""requests-toolbelt==1.0.0"", ""openedx-atlas==0.7.0"", ""python-slugify==8.0.4"", ""tomlkit==0.13.2"", ""isort==6.0.1"", ""id==1.5.0"", ""asgiref==3.8.1"", ""pluggy==1.6.0"", ""lxml-html-clean==0.4.2"", ""beautifulsoup4==4.13.4"", ""pytest-cov==6.1.1"", ""snowballstemmer==3.0.1"", ""cryptography==45.0.3"", ""accessible-pygments==0.0.5"", ""keyring==25.6.0"", ""urllib3==2.2.3"", ""babel==2.17.0"", ""iniconfig==2.1.0"", ""path==16.16.0"", ""certifi==2025.4.26"", ""sphinxcontrib-qthelp==2.0.0"", ""rich==14.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""dill==0.4.0"", ""restructuredtext-lint==1.4.0"", ""coverage[toml]==7.8.2"", ""pyyaml==6.0.2"", ""pip-tools==7.5.0"", ""sqlparse==0.5.3"", ""roman-numerals-py==3.1.0"", ""secretstorage==3.3.3"", ""pydocstyle==6.3.0"", ""packaging==25.0"", ""virtualenv==20.31.2"", ""click==8.2.1"", ""code-annotations==2.3.0"", ""jinja2==3.1.6"", ""jaraco-context==6.0.1"", ""pydata-sphinx-theme==0.15.4"", ""rfc3986==2.0.0"", ""pyproject-api==1.9.1"", ""charset-normalizer==3.4.2"", ""mccabe==0.7.0"", ""sphinx-book-theme==1.1.4"", ""build==1.3.0"", ""edx-lint==5.6.0"", ""markdown-it-py==3.0.0"", ""setuptools==80.9.0"", ""cffi==1.17.1"", ""text-unidecode==1.3"", ""pylint-plugin-utils==0.8.2"", ""wheel==0.45.1"", ""pylint-django==2.6.1"", ""sphinxcontrib-devhelp==2.0.0"", ""tox==4.26.0"", ""polib==1.2.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""nh3==0.2.21"", ""alabaster==1.0.0"", ""backports-tarfile==1.2.0"", ""idna==3.10"", ""zipp==3.23.0"", ""docutils==0.21.2"", ""distlib==0.3.9"", ""django==4.2.21"", ""pyproject-hooks==1.2.0"", ""six==1.17.0"", ""pbr==6.1.1"", ""chardet==5.2.0"", ""imagesize==1.4.1"", ""requests==2.32.3"", ""colorama==0.4.6"", ""doc8==1.1.2"", ""pylint-celery==0.3"", ""mdurl==0.1.2"", ""importlib-metadata==8.7.0""]",4,"[""code-annotations"", ""edx-i18n-tools"", ""pytest-django"", ""pylint-django""]",4,"[""code-annotations"", ""edx-i18n-tools"", ""pytest-django"", ""pylint-django""]",2,"[""code-annotations"", ""edx-i18n-tools""]",True,,True,True,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""0 minutes 36 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2025-05-23 16:04:03,main,"Specifications for user group methods, data models, and APIs used in the management of user groups within the Open edX ecosystem.",2918,2,True,False,False,False,False,False,False,2026-05-30 15:31:56,GNU AGPLv3,8,True,0,0,873,0,5137,10665,0,False,True,False,False,True,False,False,,openedx,0,['https://docs.openedx.org/projects/openedx-user-groups: 404'],True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4901404678/User+Groups', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-user-groups/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-user-groups', 'https://img.shields.io/pypi/v/openedx-user-groups.svg', 'https://pypi.python.org/pypi/openedx-user-groups/', 'https://github.com/openedx/openedx-user-groups/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-user-groups/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-user-groups/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-user-groups?branch=main', 'https://readthedocs.org/projects/openedx-user-groups/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-user-groups.svg', 'https://img.shields.io/github/license/edunext/openedx-user-groups.svg', 'https://github.com/openedx/openedx-user-groups/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-user-groups,"['3', '3.12']",https://github.com/openedx/openedx-user-groups,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/xblock-google-drive,,,,True,2026-06-08,True,True,False,False,95,0,[],0,,0,0,,,81,"[""stevedore==5.8.0"", ""python-slugify==8.0.4"", ""fs-s3fs==1.1.1"", ""pyproject-hooks==1.2.0"", ""django==5.2.14"", ""asgiref==3.11.1"", ""markupsafe==3.0.3"", ""web-fragments==4.0.0"", ""platformdirs==4.10.0"", ""code-annotations==3.0.0"", ""click-log==0.4.0"", ""chardet==7.4.3"", ""xblock[django]==6.1.0"", ""mako==1.3.12"", ""simplejson==4.1.1"", ""edx-lint==6.1.0"", ""iniconfig==2.3.0"", ""pylint-django==2.7.0"", ""diff-cover==10.3.0"", ""botocore==1.43.18"", ""charset-normalizer==3.4.7"", ""lxml[html-clean]==6.1.1"", ""packaging==26.2"", ""pip-tools==7.5.3"", ""caniusepython3==7.3.0"", ""click==8.4.1"", ""wheel==0.47.0"", ""edx-i18n-tools==2.0.0"", ""ddt==1.7.2"", ""pylint-celery==0.3"", ""backports-functools-lru-cache==2.0.0"", ""arrow==1.4.0"", ""lazy==1.6"", ""polib==1.2.0"", ""pytz==2026.2"", ""certifi==2026.5.20"", ""python-dateutil==2.9.0.post0"", ""jinja2==3.1.6"", ""dill==0.4.1"", ""pypng==0.20220715.0"", ""tomlkit==0.15.0"", ""pytest-cov==7.1.0"", ""openedx-django-pyfs==4.0.0"", ""isort==8.0.1"", ""requests==2.34.2"", ""boto3==1.43.18"", ""binaryornot==0.6.0"", ""cookiecutter==2.7.1"", ""urllib3==2.7.0"", ""pluggy==1.6.0"", ""rich==15.0.0"", ""pylint-plugin-utils==0.9.0"", ""mdurl==0.1.2"", ""pytest==9.0.3"", ""mccabe==0.7.0"", ""jmespath==1.1.0"", ""distlib==0.4.0"", ""sqlparse==0.5.5"", ""xblock-sdk==0.14.0"", ""appdirs==1.4.4"", ""pytest-django==4.12.0"", ""markdown-it-py==4.2.0"", ""idna==3.17"", ""mock==5.2.0"", ""webob==1.8.9"", ""pycodestyle==2.14.0"", ""pygments==2.20.0"", ""pyyaml==6.0.3"", ""tzdata==2026.2"", ""lxml-html-clean==0.4.5"", ""coverage[toml]==7.14.1"", ""snowballstemmer==3.1.0"", ""astroid==4.0.4"", ""pydocstyle==6.3.0"", ""text-unidecode==1.3"", ""pylint==4.0.5"", ""build==1.5.0"", ""s3transfer==0.18.0"", ""six==1.17.0"", ""path==16.16.0"", ""fs==2.4.16""]",95,"[""stevedore==5.8.0"", ""python-slugify==8.0.4"", ""fs-s3fs==1.1.1"", ""pyproject-hooks==1.2.0"", ""django==5.2.14"", ""asgiref==3.11.1"", ""markupsafe==3.0.3"", ""web-fragments==4.0.0"", ""platformdirs==4.10.0"", ""code-annotations==3.0.0"", ""click-log==0.4.0"", ""pyproject-api==1.10.1"", ""chardet==7.4.3"", ""xblock[django]==6.1.0"", ""mako==1.3.12"", ""simplejson==4.1.1"", ""edx-lint==6.1.0"", ""cachetools==7.1.4"", ""iniconfig==2.3.0"", ""shellingham==1.5.4"", ""pylint-django==2.7.0"", ""diff-cover==10.3.0"", ""colorama==0.4.6"", ""pip==26.1.2"", ""botocore==1.43.18"", ""charset-normalizer==3.4.7"", ""lxml[html-clean]==6.1.1"", ""packaging==26.2"", ""pip-tools==7.5.3"", ""caniusepython3==7.3.0"", ""click==8.4.1"", ""wheel==0.47.0"", ""edx-i18n-tools==2.0.0"", ""ddt==1.7.2"", ""pylint-celery==0.3"", ""backports-functools-lru-cache==2.0.0"", ""arrow==1.4.0"", ""setuptools==82.0.1"", ""lazy==1.6"", ""typer==0.26.4"", ""coveralls==4.1.0"", ""polib==1.2.0"", ""pytz==2026.2"", ""certifi==2026.5.20"", ""python-discovery==1.4.0"", ""python-dateutil==2.9.0.post0"", ""jinja2==3.1.6"", ""dill==0.4.1"", ""pypng==0.20220715.0"", ""filelock==3.29.0"", ""tomlkit==0.15.0"", ""pytest-cov==7.1.0"", ""openedx-django-pyfs==4.0.0"", ""isort==8.0.1"", ""tox==4.55.0"", ""requests==2.34.2"", ""boto3==1.43.18"", ""virtualenv==21.4.2"", ""annotated-doc==0.0.4"", ""binaryornot==0.6.0"", ""cookiecutter==2.7.1"", ""urllib3==2.7.0"", ""pluggy==1.6.0"", ""rich==15.0.0"", ""pylint-plugin-utils==0.9.0"", ""mdurl==0.1.2"", ""pytest==9.0.3"", ""mccabe==0.7.0"", ""jmespath==1.1.0"", ""distlib==0.4.0"", ""sqlparse==0.5.5"", ""xblock-sdk==0.14.0"", ""appdirs==1.4.4"", ""pytest-django==4.12.0"", ""markdown-it-py==4.2.0"", ""idna==3.17"", ""mock==5.2.0"", ""webob==1.8.9"", ""pycodestyle==2.14.0"", ""pygments==2.20.0"", ""pyyaml==6.0.3"", ""tzdata==2026.2"", ""lxml-html-clean==0.4.5"", ""coverage[toml]==7.14.1"", ""snowballstemmer==3.1.0"", ""astroid==4.0.4"", ""pydocstyle==6.3.0"", ""text-unidecode==1.3"", ""pylint==4.0.5"", ""build==1.5.0"", ""s3transfer==0.18.0"", ""six==1.17.0"", ""path==16.16.0"", ""fs==2.4.16"", ""tomli-w==1.2.0""]",6,"[""code-annotations"", ""pytest-django"", ""xblock-sdk"", ""web-fragments"", ""edx-i18n-tools"", ""pylint-django""]",6,"[""code-annotations"", ""pytest-django"", ""xblock-sdk"", ""web-fragments"", ""edx-i18n-tools"", ""pylint-django""]",4,"[""xblock-sdk"", ""code-annotations"", ""web-fragments"", ""edx-i18n-tools""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,True,True,True,False,True,True,True,4,"{""total_duration"": ""9949 minutes 52 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package)"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2014-11-10 13:34:07,master,,287,41,True,False,False,False,False,False,False,2026-06-08 05:14:17,GNU AGPLv3,2,True,2558,0,7206,10803,4542,30107,0,True,True,False,False,True,False,False,,openedx,0,['https://openedx.atlassian.net/wiki/display/OpenOPS/Running+Fullstack: 404'],False,"['https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html', 'https://xblock-tutorial.readthedocs.io/en/latest/', 'https://travis-ci.org/edx-solutions/xblock-google-drive.svg?branch=master', 'https://travis-ci.org/edx-solutions/xblock-google-drive']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-google-drive,['3.12'],https://github.com/openedx/xblock-google-drive,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-component-header,,,,False,2026-06-08,False,False,False,False,29,0,,0,{},10,19,"{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/browserslist-config"": ""^1.1.1"", ""@edx/frontend-platform"": ""^8.3.1"", ""@openedx/frontend-build"": ""^14.3.2"", ""@openedx/paragon"": ""^23.0.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""^16.2.0"", ""jest"": ""30.2.0"", ""jest-environment-jsdom"": ""^30.0.0"", ""prop-types"": ""15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-redux"": ""^8.1.1"", ""react-router-dom"": ""6.30.2"", ""react-test-renderer"": ""^18.3.1"", ""redux"": ""4.2.1"", ""redux-saga"": ""1.4.2"", ""ts-jest"": ""^29.4.4""}","{""@edx/frontend-plugin-notifications"": ""^2.0.11"", ""@fortawesome/fontawesome-svg-core"": ""6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""6.7.2"", ""@fortawesome/free-regular-svg-icons"": ""6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""6.7.2"", ""@fortawesome/react-fontawesome"": ""^0.2.0"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""classnames"": ""^2.5.1"", ""react-responsive"": ""8.2.0"", ""react-transition-group"": ""4.4.5""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,34,"{""total_duration"": ""2 minutes 28 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""2 minutes 27 seconds""}, {""name"": ""tests"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-09-11 15:55:45,master,,12997,186,True,False,False,False,False,False,False,2026-06-04 15:39:31,GNU AGPLv3,19,True,0,0,252,71110,1298,0,0,False,False,False,False,False,False,False,@edx/frontend-component-header,openedx,0,"['https://github.com/openedx/frontend-template-application/blob/master/src/index.jsx: 404', 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://api.travis-ci.com/edx/frontend-component-header.svg?branch=master: 404', 'https://travis-ci.com/edx/frontend-component-header: 415']",False,"['https://github.com/openedx/devstack', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-component-header.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx', 'https://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-component-header/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/codecov/c/github/edx/frontend-component-header', 'https://img.shields.io/npm/v/@edx/frontend-component-header.svg', 'https://img.shields.io/npm/dt/@edx/frontend-component-header.svg', 'https://img.shields.io/npm/l/@edx/frontend-component-header.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2026-04-06,2022-07-11,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-django-utils,,,,True,2026-06-08,True,True,False,False,122,0,[],0,,0,0,,,11,"[""click==8.3.0"", ""asgiref==3.10.0"", ""django-waffle==5.0.0"", ""psutil==7.1.0"", ""sqlparse==0.5.3"", ""stevedore==5.5.0"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""pynacl==1.6.0"", ""django==4.2.25"", ""pycparser==2.23""]",122,"[""sphinxcontrib-devhelp==2.0.0"", ""build==1.3.0"", ""wrapt==1.17.3"", ""twine==6.2.0"", ""snowballstemmer==3.0.1"", ""django-crum==0.7.9"", ""lxml[html-clean]==6.0.2"", ""edx-lint==5.6.0"", ""pip-tools==7.5.1"", ""protobuf==6.32.1"", ""chardet==5.2.0"", ""idna==3.10"", ""more-itertools==10.8.0"", ""restructuredtext-lint==1.4.0"", ""jinja2==3.1.6"", ""accessible-pygments==0.0.5"", ""alabaster==1.0.0"", ""backports-tarfile==1.2.0"", ""faker==37.8.0"", ""python-dateutil==2.9.0.post0"", ""jaraco-context==6.0.1"", ""imagesize==1.4.1"", ""asgiref==3.10.0"", ""cachetools==6.2.0"", ""distlib==0.4.0"", ""pycodestyle==2.14.0"", ""rfc3986==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""secretstorage==3.4.0"", ""babel==2.17.0"", ""click==8.3.0"", ""sqlparse==0.5.3"", ""psutil==7.1.0"", ""sphinx-book-theme==1.1.4"", ""ddt==1.7.2"", ""typing-extensions==4.15.0"", ""diff-cover==6.2.1"", ""code-annotations==2.3.0"", ""filelock==3.19.1"", ""isort==6.1.0"", ""setuptools==80.9.0"", ""soupsieve==2.8"", ""django==4.2.25"", ""urllib3==2.5.0"", ""nh3==0.3.0"", ""bytecode==0.17.0"", ""zipp==3.23.0"", ""roman-numerals-py==3.1.0"", ""envier==0.6.1"", ""pygments==2.19.2"", ""tzdata==2025.2"", ""beautifulsoup4==4.14.2"", ""opentelemetry-api==1.37.0"", ""django-waffle==5.0.0"", ""wheel==0.45.1"", ""virtualenv==20.34.0"", ""mccabe==0.7.0"", ""path==16.16.0"", ""id==1.5.0"", ""pyyaml==6.0.3"", ""lxml-html-clean==0.4.3"", ""packaging==25.0"", ""tomlkit==0.13.3"", ""inflect==7.5.0"", ""cffi==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""markupsafe==3.0.3"", ""pytest==8.4.2"", ""dill==0.4.0"", ""edx-i18n-tools==1.9.0"", ""platformdirs==4.4.0"", ""pydocstyle==6.3.0"", ""mock==5.2.0"", ""sphinx==8.2.3"", ""pluggy==1.6.0"", ""coverage[toml]==7.10.7"", ""jeepney==0.9.0"", ""iniconfig==2.1.0"", ""pyproject-hooks==1.2.0"", ""colorama==0.4.6"", ""pip==25.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""jaraco-classes==3.4.0"", ""readme-renderer==44.0"", ""rich==14.1.0"", ""click-log==0.4.0"", ""pylint-plugin-utils==0.9.0"", ""pylint-django==2.6.1"", ""jinja2-pluralize==0.3.0"", ""mdurl==0.1.2"", ""tox==4.30.3"", ""text-unidecode==1.3"", ""requests-toolbelt==1.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""newrelic==11.0.0"", ""stevedore==5.5.0"", ""pydata-sphinx-theme==0.15.4"", ""docutils==0.21.2"", ""typeguard==4.4.4"", ""jaraco-functools==4.3.0"", ""polib==1.2.0"", ""requests==2.32.5"", ""charset-normalizer==3.4.3"", ""certifi==2025.10.5"", ""factory-boy==3.3.3"", ""pytest-cov==7.0.0"", ""cryptography==46.0.2"", ""doc8==0.11.2"", ""astroid==3.3.11"", ""python-slugify==8.0.4"", ""pylint-celery==0.3"", ""sphinxcontrib-applehelp==2.0.0"", ""ddtrace==3.15.0"", ""markdown-it-py==4.0.0"", ""pytest-django==4.11.1"", ""importlib-metadata==8.7.0"", ""keyring==25.6.0"", ""pynacl==1.6.0"", ""pyproject-api==1.9.1"", ""pylint==3.3.9"", ""pycparser==2.23"", ""six==1.17.0""]",6,"[""pytest-django"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations"", ""factory-boy"", ""pylint-django""]",8,"[""newrelic"", ""pytest-django"", ""django-crum"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations"", ""factory-boy"", ""pylint-django""]",3,"[""django-waffle"", ""code-annotations"", ""edx-i18n-tools""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,15,"{""total_duration"": ""333 minutes 20 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2018-07-20 15:12:04,master,edX utilities for Django Application development.,811,28,True,False,False,False,False,False,False,2026-06-08 05:42:36,Apache License 2.0,8,True,0,0,0,0,3359,309143,0,True,True,False,False,True,False,False,,openedx,3,[],True,"['https://edx-django-utils.readthedocs.org', 'https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://discuss.openedx.org', 'https://github.com/openedx/django-config-models/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-django-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-django-utils/blob/master/.github/ISSUE_TEMPLATE.md', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/edx-django-utils', 'https://img.shields.io/pypi/v/edx-django-utils.svg', 'https://pypi.python.org/pypi/edx-django-utils/', 'https://github.com/openedx/edx-django-utils/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-django-utils/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-django-utils/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-django-utils?branch=master', 'https://readthedocs.org/projects/edx-django-utils/badge/?version=latest', 'http://edx-django-utils.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-django-utils.svg', 'https://img.shields.io/github/license/edx/edx-django-utils.svg', 'https://github.com/openedx/edx-django-utils/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-django-utils,"['3', '3.12']",https://github.com/openedx/edx-django-utils,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-authz,,,,True,2026-06-08,True,True,False,False,134,0,[],0,,0,0,,,49,"[""click==8.4.1"", ""drf-jwt==1.19.2"", ""inflection==0.5.1"", ""charset-normalizer==3.4.7"", ""openedx-events==11.2.0"", ""dnspython==2.8.0"", ""pyjwt[crypto]==2.13.0"", ""semantic-version==2.10.0"", ""idna==3.17"", ""pycasbin==2.8.0"", ""edx-api-doc-tools==3.0.0"", ""edx-django-utils==8.0.1"", ""casbin-django-orm-adapter==1.7.0"", ""bracex==2.6"", ""openedx-atlas==0.7.0"", ""drf-yasg==1.21.15"", ""django==5.2.14"", ""asgiref==3.11.1"", ""certifi==2026.5.20"", ""djangorestframework==3.17.1"", ""django-waffle==5.0.0"", ""django-model-utils==5.0.0"", ""fastavro==1.12.2"", ""django-crum==0.7.9"", ""uritemplate==4.2.0"", ""edx-ccx-keys==2.0.2"", ""pyyaml==6.0.3"", ""urllib3==2.7.0"", ""wcmatch==10.1"", ""pynacl==1.6.2"", ""edx-organizations==8.0.0"", ""typing-extensions==4.15.0"", ""attrs==26.1.0"", ""psutil==7.2.2"", ""stevedore==5.8.0"", ""pytz==2026.2"", ""sqlparse==0.5.5"", ""pycparser==3.0"", ""requests==2.34.2"", ""edx-opaque-keys[django]==4.0.0"", ""six==1.17.0"", ""pymongo==4.17.0"", ""pillow==12.2.0"", ""django-simple-history==3.11.0"", ""simpleeval==1.0.7"", ""cffi==2.0.0"", ""edx-drf-extensions==10.6.0"", ""cryptography==48.0.0"", ""packaging==26.2""]",134,"[""dnspython==2.8.0"", ""pylint==4.0.5"", ""pycasbin==2.8.0"", ""edx-api-doc-tools==3.0.0"", ""bracex==2.6"", ""ddt==1.7.2"", ""django==5.2.14"", ""ruff==0.15.15"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pyyaml==6.0.3"", ""urllib3==2.7.0"", ""cachetools==7.1.4"", ""pylint-plugin-utils==0.9.0"", ""alabaster==1.0.0"", ""virtualenv==21.4.2"", ""twine==6.2.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pytest-cov==7.1.0"", ""pylint-django==2.7.0"", ""attrs==26.1.0"", ""psutil==7.2.2"", ""sqlparse==0.5.5"", ""six==1.17.0"", ""rich==15.0.0"", ""astroid==4.0.4"", ""jaraco-context==6.1.2"", ""accessible-pygments==0.0.5"", ""platformdirs==4.10.0"", ""more-itertools==11.1.0"", ""python-discovery==1.4.0"", ""tomlkit==0.15.0"", ""secretstorage==3.5.0"", ""lxml[html-clean]==6.1.1"", ""restructuredtext-lint==2.0.2"", ""edx-lint==6.1.0"", ""path==16.16.0"", ""edx-django-utils==8.0.1"", ""chardet==7.4.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""casbin-django-orm-adapter==1.7.0"", ""sphinx==9.1.0"", ""jeepney==0.9.0"", ""pydocstyle==6.3.0"", ""distlib==0.4.0"", ""certifi==2026.5.20"", ""djangorestframework==3.17.1"", ""django-waffle==5.0.0"", ""pytest==9.0.3"", ""id==1.6.1"", ""keyring==25.7.0"", ""filelock==3.29.0"", ""sphinxcontrib-devhelp==2.0.0"", ""rfc3986==2.0.0"", ""edx-organizations==8.0.0"", ""docutils==0.21.2"", ""pylint-celery==0.3"", ""pip-tools==7.5.3"", ""isort==8.0.1"", ""code-annotations==3.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""colorama==0.4.6"", ""pytest-django==4.12.0"", ""pyproject-hooks==1.2.0"", ""django-simple-history==3.11.0"", ""imagesize==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""edx-drf-extensions==10.6.0"", ""cryptography==48.0.0"", ""packaging==26.2"", ""click==8.4.1"", ""drf-jwt==1.19.2"", ""semantic-version==2.10.0"", ""charset-normalizer==3.4.7"", ""pyjwt[crypto]==2.13.0"", ""idna==3.17"", ""polib==1.2.0"", ""beautifulsoup4==4.14.3"", ""wheel==0.47.0"", ""soupsieve==2.8.4"", ""openedx-atlas==0.7.0"", ""drf-yasg==1.21.15"", ""click-log==0.4.0"", ""asgiref==3.11.1"", ""markupsafe==3.0.3"", ""fastavro==1.12.2"", ""setuptools==82.0.1"", ""iniconfig==2.3.0"", ""requests-toolbelt==1.0.0"", ""snowballstemmer==3.1.0"", ""django-crum==0.7.9"", ""python-slugify==8.0.4"", ""uritemplate==4.2.0"", ""edx-ccx-keys==2.0.2"", ""markdown-it-py==4.2.0"", ""roman-numerals==4.1.0"", ""stevedore==5.8.0"", ""nh3==0.3.5"", ""pytz==2026.2"", ""readme-renderer==44.0"", ""jaraco-functools==4.5.0"", ""edx-i18n-tools==2.0.0"", ""pillow==12.2.0"", ""tomli-w==1.2.0"", ""simpleeval==1.0.7"", ""diff-cover==10.3.0"", ""cffi==2.0.0"", ""build==1.5.0"", ""lxml-html-clean==0.4.5"", ""jinja2==3.1.6"", ""babel==2.18.0"", ""inflection==0.5.1"", ""openedx-events==11.2.0"", ""dill==0.4.1"", ""sphinx-book-theme==1.2.0"", ""coverage[toml]==7.14.1"", ""mdurl==0.1.2"", ""text-unidecode==1.3"", ""django-model-utils==5.0.0"", ""pluggy==1.6.0"", ""pyproject-api==1.10.1"", ""jaraco-classes==3.4.0"", ""wcmatch==10.1"", ""tox==4.55.0"", ""mccabe==0.7.0"", ""pynacl==1.6.2"", ""sphinxcontrib-jsmath==1.0.1"", ""typing-extensions==4.15.0"", ""pygments==2.20.0"", ""pip==26.1.2"", ""pycparser==3.0"", ""requests==2.34.2"", ""doc8==2.0.0"", ""pymongo==4.17.0"", ""pydata-sphinx-theme==0.16.1""]",10,"[""code-annotations"", ""django-waffle"", ""pylint-django"", ""edx-django-utils"", ""pytest-django"", ""edx-organizations"", ""edx-drf-extensions"", ""djangorestframework"", ""edx-i18n-tools"", ""edx-api-doc-tools""]",15,"[""code-annotations"", ""django-waffle"", ""django-model-utils"", ""drf-jwt"", ""pylint-django"", ""edx-django-utils"", ""pytest-django"", ""edx-organizations"", ""edx-drf-extensions"", ""djangorestframework"", ""django-crum"", ""django-simple-history"", ""edx-i18n-tools"", ""edx-api-doc-tools"", ""drf-yasg""]",7,"[""code-annotations"", ""django-waffle"", ""edx-django-utils"", ""edx-organizations"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""edx-api-doc-tools""]",True,,True,True,True,True,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,15,"{""total_duration"": ""3149 minutes 10 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 56 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2025-05-20 17:33:52,main,"Specifications for the authorization model, policy data structures, and enforcement APIs that define how access control is evaluated and managed across the Open edX ecosystem.",900,9,True,False,False,False,False,False,False,2026-06-08 00:35:26,GNU AGPLv3,4,True,0,0,873,0,5393,1059767,0,False,True,False,False,True,False,False,,openedx,0,['https://github.com/openedx/openedx-authz/blob/main/LICENSE.txt: 404'],True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx-authz.readthedocs.io/en/latest/', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-authz/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-authz', 'https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4724490259/PRD+Roles+Permissions', 'https://openedx-authz.readthedocs.io/en/latest/concepts/core_roles_and_permissions/content_library_roles.html', 'https://img.shields.io/pypi/v/openedx-authz.svg', 'https://pypi.python.org/pypi/openedx-authz/', 'https://github.com/openedx/openedx-authz/actions/workflows/ci.yml/badge.svg?branch=main', 'https://github.com/openedx/openedx-authz/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/openedx-authz/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-authz?branch=main', 'https://readthedocs.org/projects/openedx-authz/badge/?version=latest', 'https://docs.openedx.org/projects/openedx-authz', 'https://img.shields.io/pypi/pyversions/openedx-authz.svg', 'https://img.shields.io/github/license/openedx/openedx-authz.svg', 'https://img.shields.io/badge/Status-Experimental-yellow']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,openedx-authz,"['3', '3.12']",https://github.com/openedx/openedx-authz,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-authoring,,,,False,2026-06-08,True,True,False,False,88,0,,0,{},71,17,"{""@edx/stylelint-config-edx"": ""2.3.3"", ""@edx/typescript-config"": ""^1.0.1"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/lodash"": ""^4.17.17"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""axios-mock-adapter"": ""2.1.0"", ""dprint"": ""^0.54.0"", ""fetch-mock-jest"": ""^1.5.1"", ""jest-canvas-mock"": ""^2.5.2"", ""jest-expect-message"": ""^1.1.3"", ""oxlint"": ""^1.42.0"", ""oxlint-tsgolint"": ""^0.17.0"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""^1.5.4""}","{""@codemirror/lang-html"": ""^6.0.0"", ""@codemirror/lang-markdown"": ""^6.0.0"", ""@codemirror/lang-xml"": ""^6.0.0"", ""@codemirror/lint"": ""^6.2.1"", ""@codemirror/state"": ""^6.0.0"", ""@codemirror/view"": ""^6.0.0"", ""@dnd-kit/core"": ""^6.1.0"", ""@dnd-kit/modifiers"": ""^7.0.0"", ""@dnd-kit/sortable"": ""^8.0.0"", ""@dnd-kit/utilities"": ""^3.2.2"", ""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/browserslist-config"": ""1.5.1"", ""@edx/frontend-component-footer"": ""^14.9.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-enterprise-hotjar"": ""^7.2.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@openedx-plugins/course-app-calculator"": ""file:plugins/course-apps/calculator"", ""@openedx-plugins/course-app-dates"": ""file:plugins/course-apps/dates"", ""@openedx-plugins/course-app-edxnotes"": ""file:plugins/course-apps/edxnotes"", ""@openedx-plugins/course-app-learning_assistant"": ""file:plugins/course-apps/learning_assistant"", ""@openedx-plugins/course-app-live"": ""file:plugins/course-apps/live"", ""@openedx-plugins/course-app-ora_settings"": ""file:plugins/course-apps/ora_settings"", ""@openedx-plugins/course-app-proctoring"": ""file:plugins/course-apps/proctoring"", ""@openedx-plugins/course-app-progress"": ""file:plugins/course-apps/progress"", ""@openedx-plugins/course-app-teams"": ""file:plugins/course-apps/teams"", ""@openedx-plugins/course-app-wiki"": ""file:plugins/course-apps/wiki"", ""@openedx-plugins/course-app-xpert_unit_summary"": ""file:plugins/course-apps/xpert_unit_summary"", ""@openedx/frontend-build"": ""^14.6.6"", ""@openedx/frontend-plugin-framework"": ""^1.8.0"", ""@openedx/paragon"": ""^23.5.0"", ""@redux-devtools/extension"": ""^3.3.0"", ""@reduxjs/toolkit"": ""2.11.2"", ""@tanstack/react-query"": ""5.95.2"", ""@tanstack/react-table"": ""^8.21.3"", ""@tinymce/tinymce-react"": ""^6.0.0"", ""classnames"": ""2.5.1"", ""codemirror"": ""^6.0.0"", ""email-validator"": ""2.0.4"", ""fast-xml-parser"": ""^5.0.0"", ""file-saver"": ""^2.0.5"", ""formik"": ""2.4.9"", ""frontend-components-tinymce-advanced-plugins"": ""^1.0.3"", ""jszip"": ""^3.10.1"", ""lodash"": ""4.18.1"", ""meilisearch"": ""^0.41.0"", ""moment"": ""2.30.1"", ""moment-shortformat"": ""^2.1.0"", ""prop-types"": ""^15.8.1"", ""react"": ""^18.3.1"", ""react-datepicker"": ""^8.10.0"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.0.13"", ""react-helmet"": ""^6.1.0"", ""react-onclickoutside"": ""^6.13.0"", ""react-redux"": ""7.2.9"", ""react-responsive"": ""10.0.1"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""react-select"": ""5.10.2"", ""react-textarea-autosize"": ""^8.5.3"", ""react-transition-group"": ""4.4.5"", ""redux"": ""4.2.1"", ""redux-logger"": ""^3.0.6"", ""redux-thunk"": ""^2.4.1"", ""reselect"": ""^4.1.5"", ""tinymce"": ""^5.10.4"", ""universal-cookie"": ""^8.0.0"", ""uuid"": ""^11.1.0"", ""xmlchecker"": ""^0.1.0"", ""yup"": ""0.32.11""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,False,True,True,35,"{""total_duration"": ""1438 minutes 42 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""10 minutes 56 seconds""}, {""name"": ""coverage"", ""duration"": ""0 minutes 10 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2020-05-06 18:34:51,master,"Front-end for the Open edX Studio experience, implemented in React and Paragon.",52436,197,True,False,False,False,False,False,False,2026-06-08 00:40:06,GNU AGPLv3,34,False,0,0,388,3211448,1967,0,0,False,False,False,False,False,False,False,@edx/frontend-app-authoring,openedx,0,"['https://github.com/overhangio/tutor: 504', 'https://github.com/nvm-sh/nvm: 504', 'http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://github.com/openedx/frontend-app-discussions/: 504', 'https://github.com/edx/edx-exams: 504', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file: 504', 'https://travis-ci.com/edx/frontend-app-course-authoring: 415', 'https://github.com/openedx/frontend-app-course-authoring/issues: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-course-authoring: 404']",False,"['https://github.com/openedx/edx-platform/tree/master/cms', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-authoring.git', 'https://discuss.openedx.org/t/repo-rename-frontend-app-course-authoring-frontend-app-authoring/13930/2', 'https://github.com/openedx/frontend-app-learning', 'https://github.com/open-craft/tutor-contrib-meilisearch', 'https://docs.tutor.edly.io/', 'https://github.com/Automattic/node-canvas/issues/1733', 'https://api.travis-ci.com/edx/frontend-app-course-authoring.svg?branch=master', 'https://codecov.io/gh/edx/frontend-app-course-authoring/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/frontend-app-course-authoring', 'https://img.shields.io/npm/l/@edx/frontend-app-authoring.svg', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-course-authoring.svg', 'https://github.com/openedx/frontend-app-course-authoring/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://codecov.io/github/openedx/frontend-app-course-authoring/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-course-authoring?branch=master']",True,True,False,False,,,True,2026-04-16,2025-04-07,2,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xblock-in-video-quiz,,,,True,2026-06-08,True,True,False,False,71,0,[],0,,0,0,,,16,"[""python-dateutil==2.9.0.post0"", ""web-fragments==4.0.0"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5"", ""asgiref==3.11.1"", ""django==5.2.14"", ""pytz==2026.2"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""xblock==6.1.0"", ""simplejson==4.1.1"", ""webob==1.8.9"", ""lxml==6.1.1"", ""appdirs==1.4.4"", ""mako==1.3.12"", ""fs==2.4.16""]",71,"[""python-slugify==8.0.4"", ""certifi==2026.5.20"", ""coverage[toml]==7.14.1"", ""distlib==0.4.0"", ""rich==15.0.0"", ""sqlparse==0.5.5"", ""tomli-w==1.2.0"", ""python-discovery==1.4.0"", ""pytz==2026.2"", ""pylint-celery==0.3"", ""packaging==26.2"", ""idna==3.17"", ""charset-normalizer==3.4.7"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""lxml==6.1.1"", ""pygments==2.20.0"", ""pip-tools==7.5.3"", ""pycodestyle==2.14.0"", ""stevedore==5.8.0"", ""iniconfig==2.3.0"", ""mccabe==0.7.0"", ""fs==2.4.16"", ""python-dateutil==2.9.0.post0"", ""webob==1.8.9"", ""isort==8.0.1"", ""shellingham==1.5.4"", ""urllib3==2.7.0"", ""asgiref==3.11.1"", ""pylint-django==2.7.0"", ""dill==0.4.1"", ""pylint==4.0.5"", ""wheel==0.47.0"", ""jinja2==3.1.6"", ""coveralls==4.1.0"", ""click==8.4.1"", ""text-unidecode==1.3"", ""pytest-django==4.12.0"", ""virtualenv==21.4.1"", ""pylint-plugin-utils==0.9.0"", ""tomlkit==0.15.0"", ""filelock==3.29.0"", ""platformdirs==4.10.0"", ""coverage==7.14.1"", ""build==1.5.0"", ""typer==0.26.4"", ""django==5.2.14"", ""tox==4.55.0"", ""edx-lint==6.1.0"", ""xblock==6.1.0"", ""setuptools==82.0.1"", ""mako==1.3.12"", ""mdurl==0.1.2"", ""appdirs==1.4.4"", ""annotated-doc==0.0.4"", ""mock==5.2.0"", ""web-fragments==4.0.0"", ""requests==2.34.2"", ""markdown-it-py==4.2.0"", ""pluggy==1.6.0"", ""pyproject-api==1.10.1"", ""pyproject-hooks==1.2.0"", ""pytest==9.0.3"", ""markupsafe==3.0.3"", ""astroid==4.0.4"", ""code-annotations==3.0.0"", ""cachetools==7.1.4"", ""simplejson==4.1.1"", ""colorama==0.4.6"", ""pip==26.1.1"", ""click-log==0.4.0""]",5,"[""pytest-django"", ""pylint-django"", ""code-annotations"", ""web-fragments"", ""xblock""]",5,"[""pytest-django"", ""pylint-django"", ""code-annotations"", ""web-fragments"", ""xblock""]",3,"[""xblock"", ""code-annotations"", ""web-fragments""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,False,False,12,"{""total_duration"": ""8147 minutes 7 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2020-01-27 18:10:28,master,,469,24,True,False,False,False,False,False,False,2026-06-07 01:06:27,GNU AGPLv3,2,False,1625,0,90,6580,1446,13037,0,False,False,False,False,False,False,False,,openedx,2,['https://github.com/openedx/xblock-in-video-quiz@LATEST_RELEASE: 504'],False,"['https://github.com/Stanford-Online/xblock-in-video-quiz', 'https://github.com/openedx/xblock-in-video-quiz/releases/tag/final-bsd-3c-contribution']",True,True,False,False,,,False,,,,False,True,False,True,,False,invideoquiz-xblock,"['3', '3.12']",,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/enmerkar-underscore,,,,True,2026-06-08,True,True,False,False,50,0,[],0,,0,0,,,5,"[""django==4.2.25"", ""babel==2.17.0"", ""sqlparse==0.5.3"", ""asgiref==3.10.0"", ""enmerkar==0.7.1""]",50,"[""idna==3.11"", ""markupsafe==3.0.3"", ""pytest==8.4.2"", ""mccabe==0.7.0"", ""six==1.17.0"", ""flake8==7.3.0"", ""pycodestyle==2.14.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pygments==2.19.2"", ""pip-tools==7.5.1"", ""execnet==2.1.1"", ""packaging==25.0"", ""enmerkar==0.7.1"", ""pip==25.2"", ""pluggy==1.6.0"", ""setuptools==80.9.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""django==4.2.25"", ""build==1.3.0"", ""babel==2.17.0"", ""sphinxcontrib-applehelp==2.0.0"", ""click==8.3.0"", ""asgiref==3.10.0"", ""pyflakes==3.4.0"", ""pyyaml==6.0.3"", ""requests==2.32.5"", ""iniconfig==2.3.0"", ""sphinxcontrib-qthelp==2.0.0"", ""urllib3==2.5.0"", ""coverage[toml]==7.11.0"", ""python-coveralls==2.9.3"", ""pytest-cov==7.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""charset-normalizer==3.4.4"", ""wheel==0.45.1"", ""pep8==1.7.1"", ""sqlparse==0.5.3"", ""docutils==0.21.2"", ""sphinx==8.2.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pytest-flakes==4.0.5"", ""pyproject-hooks==1.2.0"", ""jinja2==3.1.6"", ""roman-numerals-py==3.1.0"", ""pytest-pep8==1.0.6"", ""snowballstemmer==3.0.1"", ""certifi==2025.10.5"", ""imagesize==1.4.1"", ""alabaster==1.0.0"", ""pytest-cache==1.0""]",0,[],1,"[""enmerkar""]",0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""76028 minutes 5 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, django52)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 20 seconds""}]}",Other,2020-02-13 15:38:04,master,Django Babel Underscore Extractor,199,7,True,False,False,False,True,False,False,2026-05-18 07:50:46,Modified BSD License,2,True,0,0,0,0,2121,12889,0,True,False,False,False,True,False,False,,openedx,1,"['https://github.com/openedx/enmerkar-underscore/actions?query=workflow%3A%22Python+CI%22: 504', ""https://pypip.in/d/django-babel-underscore/badge.png: HTTPSConnectionPool(host='pypip.in', port=443): Max retries exceeded with url: /d/django-babel-underscore/badge.png (Caused by ConnectTimeoutError(, 'Connection to pypip.in timed out. (connect timeout=None)'))"", 'http://django-babel-underscore.readthedocs.org: 429']",False,"['https://badge.fury.io/py/django-babel-underscore.png', 'http://badge.fury.io/py/django-babel-underscore', 'https://github.com/openedx/enmerkar-underscore/workflows/Python%20CI/badge.svg?branch=master', 'https://pypi.python.org/pypi/django-babel-underscore']",True,True,False,False,,,False,,,,False,True,False,True,,False,enmerkar-underscore,"['3', '3.11', '3.12']",https://github.com/openedx/enmerkar-underscore,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/wg-security,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""70559 minutes 10 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2023-01-13 16:25:20,main,A repo to keep public issues related to Security Working Group Work,17,2,True,False,False,False,False,False,False,2025-10-30 15:17:42,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/FeedbackXBlock,,,,True,2026-06-08,True,True,False,False,129,0,[],0,,0,0,,,31,"[""python-dateutil==2.9.0.post0"", ""typing-extensions==4.15.0"", ""django-crum==0.7.9"", ""asgiref==3.11.1"", ""pyyaml==6.0.3"", ""urllib3==2.6.3"", ""webob==1.8.9"", ""fs-s3fs==1.1.1"", ""appdirs==1.4.4"", ""jmespath==1.1.0"", ""botocore==1.42.88"", ""openedx-filters==3.1.0"", ""pytz==2026.1.post1"", ""s3transfer==0.16.0"", ""stevedore==5.7.0"", ""pymongo==4.16.0"", ""sqlparse==0.5.5"", ""lxml==6.0.4"", ""edx-opaque-keys[django]==4.0.0"", ""django==5.2.13"", ""markupsafe==3.0.3"", ""six==1.17.0"", ""xblock[django]==6.0.0"", ""openedx-django-pyfs==4.0.0"", ""lazy==1.6"", ""dnspython==2.8.0"", ""simplejson==3.20.2"", ""boto3==1.42.88"", ""fs==2.4.16"", ""mako==1.3.10"", ""web-fragments==4.0.0""]",129,"[""setuptools==82.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""roman-numerals==4.1.0"", ""jaraco-classes==3.4.0"", ""jinja2==3.1.6"", ""appdirs==1.4.4"", ""edx-lint==6.0.0"", ""cryptography==46.0.7"", ""sphinxcontrib-applehelp==2.0.0"", ""stevedore==5.7.0"", ""cookiecutter==2.7.1"", ""sqlparse==0.5.5"", ""lxml==6.0.4"", ""tomli-w==1.2.0"", ""pypng==0.20220715.0"", ""shellingham==1.5.4"", ""accessible-pygments==0.0.5"", ""markupsafe==3.0.3"", ""requests==2.33.1"", ""arrow==1.4.0"", ""rfc3986==2.0.0"", ""rich==15.0.0"", ""ddt==1.7.2"", ""lazy==1.6"", ""pyproject-hooks==1.2.0"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""twine==6.2.0"", ""beautifulsoup4==4.14.3"", ""annotated-doc==0.0.4"", ""pylint-celery==0.3"", ""wheel==0.46.3"", ""id==1.6.1"", ""python-dateutil==2.9.0.post0"", ""typing-extensions==4.15.0"", ""django-crum==0.7.9"", ""pyyaml==6.0.3"", ""urllib3==2.6.3"", ""packaging==26.0"", ""pycparser==3.0"", ""jmespath==1.1.0"", ""botocore==1.42.88"", ""cachetools==7.0.5"", ""idna==3.11"", ""s3transfer==0.16.0"", ""babel==2.18.0"", ""imagesize==2.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""readme-renderer==44.0"", ""secretstorage==3.5.0"", ""soupsieve==2.8.3"", ""xblock[django]==6.0.0"", ""pytest-django==4.12.0"", ""sphinx-book-theme==1.2.0"", ""pluggy==1.6.0"", ""jeepney==0.9.0"", ""lxml-html-clean==0.4.4"", ""dnspython==2.8.0"", ""coverage[toml]==7.13.5"", ""tzdata==2026.1"", ""simplejson==3.20.2"", ""coveralls==4.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""python-slugify==8.0.4"", ""click==8.3.2"", ""requests-toolbelt==1.0.0"", ""mccabe==0.7.0"", ""asgiref==3.11.1"", ""xblock-sdk==0.14.0"", ""webob==1.8.9"", ""more-itertools==11.0.2"", ""polib==1.2.0"", ""pytz==2026.1.post1"", ""path==16.16.0"", ""pymongo==4.16.0"", ""certifi==2026.2.25"", ""alabaster==1.0.0"", ""distlib==0.4.0"", ""docutils==0.22.4"", ""django==5.2.13"", ""six==1.17.0"", ""isort==8.0.1"", ""pydata-sphinx-theme==0.16.1"", ""charset-normalizer==3.4.7"", ""keyring==25.7.0"", ""pip-tools==7.5.3"", ""astroid==4.0.4"", ""fs==2.4.16"", ""mdurl==0.1.2"", ""web-fragments==4.0.0"", ""dill==0.4.1"", ""binaryornot==0.6.0"", ""pylint==4.0.5"", ""tox==4.52.1"", ""platformdirs==4.9.6"", ""code-annotations==3.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""markdown-it-py==4.0.0"", ""pytest==9.0.3"", ""fs-s3fs==1.1.1"", ""jaraco-context==6.1.2"", ""openedx-filters==3.1.0"", ""filelock==3.25.2"", ""build==1.4.3"", ""pyproject-api==1.10.0"", ""typer==0.24.1"", ""lxml[html-clean]==6.0.4"", ""tomlkit==0.14.0"", ""nh3==0.3.4"", ""click-log==0.4.0"", ""pip==26.0.1"", ""python-discovery==1.2.2"", ""openedx-django-pyfs==4.0.0"", ""iniconfig==2.3.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""colorama==0.4.6"", ""cffi==2.0.0"", ""jaraco-functools==4.4.0"", ""pylint-django==2.7.0"", ""boto3==1.42.88"", ""mako==1.3.10"", ""virtualenv==21.2.1"", ""edx-i18n-tools==2.0.0"", ""sphinx==9.1.0"", ""pygments==2.20.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""mock==5.2.0"", ""snowballstemmer==3.0.1""]",6,"[""pytest-django"", ""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""xblock-sdk"", ""web-fragments""]",7,"[""django-crum"", ""pytest-django"", ""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""xblock-sdk"", ""web-fragments""]",4,"[""code-annotations"", ""edx-i18n-tools"", ""xblock-sdk"", ""web-fragments""]",False,,True,False,True,False,False,False,True,True,True,True,False,False,True,True,False,True,True,False,True,True,True,4,"{""total_duration"": ""5 minutes 23 seconds"", ""checks"": [{""name"": ""Tests (3.12, django52)"", ""duration"": ""1 minutes 18 seconds""}, {""name"": ""Analyze (javascript)"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""Tests (3.12, django42)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""Tests (3.12, quality)"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2022-11-22 21:30:41,master,An XBlock to allow students to provide feedback on course materials,699,15,True,False,True,False,False,False,False,2026-04-14 15:08:30,GNU AGPLv3,0,True,2578,0,11634,3703,3711,43450,0,True,True,False,False,True,False,False,,openedx,0,"['https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/FeedbackXBlock: 404']",True,"['https://img.shields.io/badge/status-deprecated-red', 'https://github.com/openedx/xblocks-extra', 'https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/ci.yml', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/pypi-release.yml/badge.svg', 'https://github.com/openedx/FeedbackXBlock/actions/workflows/pypi-release.yml', 'https://img.shields.io/badge/status-maintained-31c653', 'https://openedx.org/r/xblock', 'https://docs.tutor.edly.io/tutorials/plugin.html', 'https://docs.tutor.edly.io/configuration.html', 'https://discuss.openedx.org', 'https://github.com/openedx/FeedbackXBlock/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,False,,,,False,True,False,True,,False,feedback-xblock,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-milestones,,,,True,2026-06-08,True,True,False,False,55,0,[],0,,0,0,,,11,"[""stevedore==5.7.0"", ""six==1.17.0"", ""django-model-utils==5.0.0"", ""asgiref==3.11.1"", ""typing-extensions==4.15.0"", ""setuptools==82.0.0"", ""dnspython==2.8.0"", ""sqlparse==0.5.5"", ""edx-opaque-keys==3.1.0"", ""pymongo==4.16.0"", ""django==5.2.12""]",55,"[""pylint-django==2.7.0"", ""dill==0.4.1"", ""click-log==0.4.0"", ""dnspython==2.8.0"", ""astroid==4.0.4"", ""pip-tools==7.5.3"", ""sqlparse==0.5.5"", ""cachetools==7.0.3"", ""markupsafe==3.0.3"", ""tox==4.49.0"", ""virtualenv==21.1.0"", ""stevedore==5.7.0"", ""pylint-plugin-utils==0.9.0"", ""build==1.4.0"", ""colorama==0.4.6"", ""packaging==26.0"", ""pyyaml==6.0.3"", ""pytest-cov==7.0.0"", ""snowballstemmer==3.0.1"", ""mccabe==0.7.0"", ""django==5.2.12"", ""coverage[toml]==7.13.4"", ""platformdirs==4.9.4"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""pylint-celery==0.3"", ""six==1.17.0"", ""iniconfig==2.3.0"", ""edx-lint==5.6.0"", ""pluggy==1.6.0"", ""distlib==0.4.0"", ""click==8.3.1"", ""wheel==0.46.3"", ""jinja2==3.1.6"", ""typing-extensions==4.15.0"", ""setuptools==82.0.0"", ""pydocstyle==6.3.0"", ""pygments==2.19.2"", ""tomlkit==0.14.0"", ""pip==26.0.1"", ""edx-opaque-keys==3.1.0"", ""pytest-django==4.12.0"", ""python-slugify==8.0.4"", ""pyproject-api==1.10.0"", ""django-model-utils==5.0.0"", ""code-annotations==2.3.2"", ""asgiref==3.11.1"", ""isort==8.0.1"", ""tomli-w==1.2.0"", ""filelock==3.25.0"", ""pylint==4.0.5"", ""python-discovery==1.1.0"", ""pymongo==4.16.0"", ""pytest==9.0.2"", ""pyproject-hooks==1.2.0""]",4,"[""pytest-django"", ""edx-opaque-keys"", ""pylint-django"", ""code-annotations""]",5,"[""pytest-django"", ""pylint-django"", ""django-model-utils"", ""code-annotations"", ""edx-opaque-keys""]",2,"[""edx-opaque-keys"", ""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,4,"{""total_duration"": ""5905 minutes 17 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2014-11-24 16:56:50,master,,340,14,True,False,False,False,False,False,False,2026-06-03 17:38:07,GNU AGPLv3,4,True,0,0,0,0,2187,121038,0,True,True,False,False,True,False,False,,openedx,0,"['https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403']",True,"['https://github.com/openedx/edx-milestones/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-milestones/actions?query=workflow%3A%22Python+CI%22', 'https://img.shields.io/coveralls/edx/edx-milestones.svg', 'https://coveralls.io/r/edx/edx-milestones?branch=master', 'https://github.com/openedx/edx-platform/blob/master/requirements/edx/base.in', 'https://github.com/openedx/edx-platform/', 'https://docs.openedx.org/en/latest/site_ops/install_configure_run_guide/configuration/enable_prerequisites.html', 'https://docs.openedx.org/en/latest/educators/references/controlling_content_visibility.html', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'http://openedx.slack.com/']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-milestones,"['3', '3.12']",https://github.com/openedx/edx-milestones,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/platform-roadmap,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""15434 minutes 23 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""notifications"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""notifications"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2021-10-26 14:50:21,main,"Tracking the maintenance, enhancement, and advancement of the Open edX project.",34,5,True,False,False,False,False,False,False,2025-10-30 15:11:06,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/orgs/openedx/projects/4/views/1: 504'],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-base,,,,False,2026-06-08,False,False,False,False,97,0,,0,{},81,16,"{""@edx/browserslist-config"": ""^1.5.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@tsconfig/node24"": ""^24.0.4"", ""@types/compression"": ""^1.7.5"", ""@types/jest"": ""^29.5.14"", ""@types/lodash"": ""^4.17.24"", ""@types/node"": ""^24.12.0"", ""@types/react"": ""^18.3.20"", ""@types/react-dom"": ""^18.3.6"", ""axios-mock-adapter"": ""^1.22.0"", ""jest-chain"": ""^1.1.6"", ""jsdoc"": ""^4.0.3"", ""nodemon"": ""^3.1.4""}","{""@babel/core"": ""^7.24.9"", ""@babel/preset-env"": ""^7.24.8"", ""@babel/preset-react"": ""^7.26.3"", ""@babel/preset-typescript"": ""^7.24.7"", ""@edx/new-relic-source-map-webpack-plugin"": ""2.1.0"", ""@eslint/compat"": ""^1.2.1"", ""@eslint/js"": ""^9.13.0"", ""@formatjs/cli"": ""^6.0.3"", ""@formatjs/ts-transformer"": ""^3.13.14"", ""@pmmmwh/react-refresh-webpack-plugin"": ""^0.6.0"", ""@stylistic/eslint-plugin"": ""^2.9.0"", ""@tanstack/react-query-devtools"": ""^5.99.0"", ""@types/eslint__js"": ""^8.42.3"", ""@types/gradient-string"": ""^1.1.6"", ""autoprefixer"": ""^10.4.20"", ""axios"": ""^1.7.9"", ""axios-cache-interceptor"": ""^1.6.0"", ""babel-jest"": ""^29.7.0"", ""babel-plugin-formatjs"": ""^10.5.16"", ""chalk"": ""^4.1.2"", ""classnames"": ""^2.5.1"", ""clean-webpack-plugin"": ""^4.0.0"", ""compression"": ""^1.7.4"", ""css-loader"": ""^7.1.2"", ""cssnano"": ""^6.1.2"", ""eslint"": ""^9.13.0"", ""eslint-plugin-formatjs"": ""^5.1.3"", ""eslint-plugin-jest"": ""^28.8.3"", ""eslint-plugin-jsx-a11y"": ""^6.10.1"", ""eslint-plugin-react"": ""^7.37.2"", ""eslint-plugin-react-hooks"": ""^5.0.0"", ""express"": ""^4.18.2"", ""file-loader"": ""6.2.0"", ""fork-ts-checker-webpack-plugin"": ""^9.0.2"", ""form-urlencoded"": ""^6.1.5"", ""glob"": ""^7.2.3"", ""globals"": ""^15.11.0"", ""gradient-string"": ""^2.0.2"", ""html-webpack-plugin"": ""5.6.7"", ""identity-obj-proxy"": ""3.0.0"", ""image-minimizer-webpack-plugin"": ""3.8.3"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-localstorage-mock"": ""^2.4.26"", ""jwt-decode"": ""^3.1.2"", ""localforage"": ""^1.10.0"", ""localforage-memoryStorageDriver"": ""^0.9.2"", ""lodash"": ""^4.18.1"", ""mini-css-extract-plugin"": ""1.6.2"", ""parse5"": ""7.3.0"", ""postcss"": ""^8.4.47"", ""postcss-custom-media"": ""10.0.8"", ""postcss-loader"": ""7.3.4"", ""postcss-rtlcss"": ""^5.5.0"", ""prop-types"": ""^15.8.1"", ""react-dev-utils"": ""12.0.1"", ""react-focus-on"": ""^3.10.2"", ""react-intl"": ""^6.6.6"", ""react-refresh"": ""0.18.0"", ""react-refresh-typescript"": ""^2.0.9"", ""react-responsive"": ""^10.0.0"", ""react-transition-group"": ""^4.4.5"", ""resolve-url-loader"": ""^5.0.0"", ""sass-embedded"": ""^1.87.0"", ""sass-loader"": ""^16.0.2"", ""sharp"": ""^0.34.0"", ""source-map-loader"": ""4.0.2"", ""style-loader"": ""^4.0.0"", ""ts-loader"": ""^9.5.7"", ""tsconfig-paths-webpack-plugin"": ""^4.2.0"", ""typescript"": ""^5.6.3"", ""typescript-eslint"": ""^8.11.0"", ""universal-cookie"": ""^8.0.1"", ""url-loader"": ""^4.1.1"", ""uuid"": ""^11.0.2"", ""webpack"": ""^5.97.1"", ""webpack-bundle-analyzer"": ""^4.10.1"", ""webpack-cli"": ""^5.1.4"", ""webpack-dev-server"": ""^5.1.0"", ""webpack-merge"": ""^5.10.0"", ""webpack-remove-empty-scripts"": ""1.1.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": ""2 minutes 20 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 20 seconds""}, {""name"": ""Release"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""version-check / mismatch-check"", ""duration"": ""0 minutes 10 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2024-06-26 19:45:23,main,[pre-alpha] Future Open edX frontend framework implemented for OEP-65,51179,10,True,False,False,False,False,False,False,2026-05-16 20:38:36,GNU AGPLv3,3,True,0,0,493,214579,1232,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/frontend-build: 504', 'https://github.com/openedx/frontend-platform: 504', 'https://github.com/openedx/frontend-plugin-framework: 504', 'https://github.com/openedx/frontend-component-header: 504', 'https://github.com/openedx/frontend-component-footer: 504', 'http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://github.com/openedx/frontend-dev-utils/blob/main/tools/autoinstall/README.md: 504']",False,"['https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0065-arch-frontend-composability.html', 'https://github.com/openedx/open-edx-proposals/pull/598', 'https://discuss.openedx.org/t/oep-65-adjacent-a-frontend-architecture-vision/13223', 'https://github.com/orgs/openedx/projects/65/views/1', 'https://openedx.slack.com/archives/C04BM6YC7A6']",True,True,False,False,,,True,2020-01-07,2025-04-25,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-search,,,,True,2026-06-08,False,False,False,False,97,0,[],0,,0,0,,,61,"[""camel-converter[pydantic]==5.1.0"", ""python-slugify==8.0.4"", ""meilisearch==0.40.0"", ""click-repl==0.3.0"", ""django-crum==0.7.9"", ""prompt-toolkit==3.0.52"", ""billiard==4.2.4"", ""six==1.17.0"", ""pyyaml==6.0.3"", ""wcwidth==0.6.0"", ""pycparser==3.0"", ""celery==5.6.3"", ""markupsafe==3.0.3"", ""tzdata==2026.1"", ""idna==3.11"", ""amqp==5.3.1"", ""psutil==7.2.2"", ""dnspython==2.8.0"", ""h11==0.16.0"", ""typesense==2.0.0"", ""charset-normalizer==3.4.7"", ""edx-opaque-keys[django]==4.0.0"", ""edx-ccx-keys==2.0.2"", ""urllib3==1.26.20"", ""attrs==26.1.0"", ""httpx==0.28.1"", ""click-plugins==1.1.1.2"", ""python-dateutil==2.9.0.post0"", ""tzlocal==5.3.1"", ""edx-toggles==6.0.0"", ""httpcore==1.0.9"", ""elasticsearch==7.13.4"", ""vine==5.1.0"", ""django-waffle==5.0.0"", ""asgiref==3.11.1"", ""django==5.2.13"", ""pynacl==1.6.2"", ""typing-inspection==0.4.2"", ""pytz==2026.1.post1"", ""sqlparse==0.5.5"", ""stevedore==5.7.0"", ""event-tracking==4.0.0"", ""click==8.3.2"", ""edx-django-utils==8.0.1"", ""fastavro==1.12.1"", ""typing-extensions==4.15.0"", ""certifi==2026.2.25"", ""jinja2==3.1.6"", ""click-didyoumean==0.3.1"", ""kombu==5.6.2"", ""openedx-events==11.1.0"", ""pydantic-core==2.41.5"", ""pymongo==4.16.0"", ""code-annotations==3.0.0"", ""anyio==4.13.0"", ""packaging==26.0"", ""pydantic==2.12.5"", ""cffi==2.0.0"", ""requests==2.33.1"", ""text-unidecode==1.3"", ""annotated-types==0.7.0""]",97,"[""meilisearch==0.40.0"", ""click-repl==0.3.0"", ""tox==4.52.0"", ""celery==5.6.3"", ""dill==0.4.1"", ""iniconfig==2.3.0"", ""tzdata==2026.1"", ""pyproject-api==1.10.0"", ""amqp==5.3.1"", ""pluggy==1.6.0"", ""platformdirs==4.9.4"", ""charset-normalizer==3.4.7"", ""edx-opaque-keys[django]==4.0.0"", ""python-dateutil==2.9.0.post0"", ""edx-toggles==6.0.0"", ""typing-inspection==0.4.2"", ""django==5.2.13"", ""pynacl==1.6.2"", ""astroid==4.0.4"", ""coverage[toml]==7.13.5"", ""sqlparse==0.5.5"", ""event-tracking==4.0.0"", ""click-log==0.4.0"", ""fastavro==1.12.1"", ""typing-extensions==4.15.0"", ""certifi==2026.2.25"", ""colorama==0.4.6"", ""edx-lint==6.0.0"", ""openedx-events==11.1.0"", ""packaging==26.0"", ""build==1.4.2"", ""text-unidecode==1.3"", ""django-crum==0.7.9"", ""virtualenv==21.2.0"", ""h11==0.16.0"", ""edx-ccx-keys==2.0.2"", ""urllib3==1.26.20"", ""tzlocal==5.3.1"", ""httpcore==1.0.9"", ""ddt==1.3.1"", ""cachetools==7.0.5"", ""distlib==0.4.0"", ""tomlkit==0.14.0"", ""pylint-celery==0.3"", ""cffi==2.0.0"", ""pytest==9.0.3"", ""pyproject-hooks==1.2.0"", ""pygments==2.20.0"", ""annotated-types==0.7.0"", ""camel-converter[pydantic]==5.1.0"", ""python-slugify==8.0.4"", ""pylint==4.0.5"", ""billiard==4.2.4"", ""pyyaml==6.0.3"", ""wcwidth==0.6.0"", ""pycparser==3.0"", ""markupsafe==3.0.3"", ""tomli-w==1.2.0"", ""mock==5.2.0"", ""filelock==3.25.2"", ""python-discovery==1.2.2"", ""httpx==0.28.1"", ""click-plugins==1.1.1.2"", ""elasticsearch==7.13.4"", ""django-waffle==5.0.0"", ""edx-django-utils==8.0.1"", ""jinja2==3.1.6"", ""pylint-plugin-utils==0.9.0"", ""kombu==5.6.2"", ""code-annotations==3.0.0"", ""pytest-cov==7.1.0"", ""pydantic==2.12.5"", ""prompt-toolkit==3.0.52"", ""six==1.17.0"", ""pip==26.0.1"", ""idna==3.11"", ""psutil==7.2.2"", ""pycodestyle==2.14.0"", ""dnspython==2.8.0"", ""typesense==2.0.0"", ""pylint-django==2.7.0"", ""attrs==26.1.0"", ""pip-tools==7.5.3"", ""vine==5.1.0"", ""asgiref==3.11.1"", ""pytz==2026.1.post1"", ""stevedore==5.7.0"", ""setuptools==82.0.1"", ""click==8.3.2"", ""mccabe==0.7.0"", ""click-didyoumean==0.3.1"", ""isort==8.0.1"", ""pydantic-core==2.41.5"", ""pymongo==4.16.0"", ""wheel==0.46.3"", ""anyio==4.13.0"", ""requests==2.33.1""]",6,"[""event-tracking"", ""edx-toggles"", ""django-waffle"", ""code-annotations"", ""pylint-django"", ""edx-django-utils""]",7,"[""event-tracking"", ""edx-toggles"", ""django-waffle"", ""code-annotations"", ""pylint-django"", ""edx-django-utils"", ""django-crum""]",5,"[""event-tracking"", ""edx-toggles"", ""django-waffle"", ""code-annotations"", ""edx-django-utils""]",False,,True,False,True,False,False,False,True,True,True,False,True,False,True,True,False,True,True,False,True,True,True,48,"{""total_duration"": ""2028 minutes 36 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""2 minutes 0 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2015-01-14 19:35:31,master,,486,57,True,False,False,False,False,False,False,2026-06-08 01:04:55,GNU AGPLv3,5,True,0,0,0,0,3723,328817,1642,False,True,False,True,True,False,False,,openedx,2,[],False,"['https://github.com/openedx/edx-search/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-search/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/edx/edx-search/badge.svg?branch=master&service=github', 'https://coveralls.io/github/edx/edx-search?branch=master', 'https://docs.openedx.org/en/latest/site_ops/how-tos/use_typesense_search_backend.html', 'https://github.com/typesense/typesense-python']",True,True,False,False,,,False,,,,False,False,False,True,,False,edx-search,"['3', '3.12']",https://github.com/openedx/edx-search,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-foundation-android,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": """", ""checks"": []}",Other,2024-10-07 11:31:37,main,,157,3,True,False,False,False,False,False,False,2026-05-25 08:05:19,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://jitpack.io'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/brand-openedx,,,,False,2026-06-08,True,True,False,False,2,0,,0,{},0,2,"{""@openedx/paragon"": ""^23.0.0"", ""nodemon"": ""^3.1.10""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,6,"{""total_duration"": ""12018 minutes 34 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 21 seconds""}]}",Other,2020-09-08 20:23:21,master,,175,208,True,False,False,False,False,False,False,2026-06-02 15:34:53,GNU AGPLv3,1,False,0,0,0,0,449,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/edx/brand', 'https://docs.openedx.org/projects/openedx-proposals/en/latest/architectural-decisions/oep-0048-brand-customization.html', 'https://styledictionary.com/']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/XBlock,,,,True,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],True,,True,False,True,False,False,True,True,True,True,True,True,False,True,False,False,False,True,False,True,True,True,16,"{""total_duration"": ""2327 minutes 41 seconds"", ""checks"": [{""name"": ""release"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""run_tests / tests (3.12, django42)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""run_tests / tests (3.12, django52)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""run_tests / tests (3.12, quality)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""update-uv-graph"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""run_tests / tests (3.12, docs)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""publish_to_pypi"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2013-03-11 18:35:36,master,Framework for building custom learning components that run in the Open edX LMS!,3953,226,True,False,False,False,False,False,False,2026-06-07 00:41:14,Apache License 2.0,5,True,0,0,6518,10004,1183,483407,0,False,True,False,False,True,False,False,,openedx,0,"['http://scorm.com/scorm-explained/: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://github.com/openedx/XBlock/blob/master/LICENSE.txt: 404', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['http://www.lon-capa.org/', 'http://www.imsglobal.org/toolsinteroperability2.cfm', 'https://github.com/openedx/XBlock/blob/master/CHANGELOG.rst', 'https://github.com/openedx/XBlock/blob/master/xblock/__init__.py', 'https://github.com/openedx/xblock-sdk', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/index.html', 'https://discuss.openedx.org', 'https://github.com/openedx/XBlock/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/xblock', 'https://img.shields.io/pypi/v/XBlock.svg', 'https://pypi.python.org/pypi/XBlock/', 'https://github.com/openedx/XBlock/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/XBlock/actions', 'https://codecov.io/github/openedx/XBlock/coverage.svg?branch=master', 'https://codecov.io/github/openedx/XBlock?branch=master', 'https://readthedocs.org/projects/XBlock/badge/?version=latest', 'https://docs.openedx.org/projects/xblock/en/latest/', 'https://img.shields.io/pypi/pyversions/XBlock.svg', 'https://img.shields.io/github/license/openedx/XBlock.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/xqueue-watcher,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,False,False,False,False,False,False,False,True,True,True,9,"{""total_duration"": ""36323 minutes 23 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.14)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.13)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.12)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.14)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Build and push grader base image (Python 3.13)"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""update-dependencies"", ""duration"": ""0 minutes 13 seconds""}, {""name"": ""update-dependencies"", ""duration"": ""0 minutes 8 seconds""}, {""name"": ""update-dependencies"", ""duration"": ""0 minutes 8 seconds""}]}",Other,2014-04-22 20:08:42,master,,354,43,True,False,False,False,False,False,False,2026-05-29 16:29:08,GNU AGPLv3,6,True,0,1559,0,0,788,175853,0,False,False,False,False,True,False,False,,openedx,0,"['http://xqueue-svc: HTTPConnectionPool(host=\'xqueue-svc\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'xqueue-svc\', port=80): Failed to resolve \'xqueue-svc\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://github.com/openedx/xqueue', 'https://github.com/openedx/codejail']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],['git-core'],[] +openedx/edx-celeryutils,,,,True,2026-06-08,True,True,False,False,129,0,[],0,,0,0,,,21,"[""kombu==5.6.2"", ""click-didyoumean==0.3.1"", ""django==5.2.13"", ""python-dateutil==2.9.0.post0"", ""tzlocal==5.3.1"", ""amqp==5.3.1"", ""prompt-toolkit==3.0.52"", ""wcwidth==0.6.0"", ""asgiref==3.11.1"", ""click-repl==0.3.0"", ""sqlparse==0.5.5"", ""packaging==26.0"", ""django-model-utils==5.0.0"", ""click==8.3.2"", ""tzdata==2026.1"", ""vine==5.1.0"", ""billiard==4.2.4"", ""six==1.17.0"", ""celery==5.6.3"", ""click-plugins==1.1.1.2"", ""jsonfield==3.2.0""]",129,"[""jaraco-classes==3.4.0"", ""path==16.16.0"", ""dill==0.4.1"", ""amqp==5.1.1"", ""mdurl==0.1.2"", ""sphinxcontrib-devhelp==2.0.0"", ""text-unidecode==1.3"", ""pytest==9.0.2"", ""amqp==5.3.1"", ""diff-cover==10.2.0"", ""accessible-pygments==0.0.5"", ""cryptography==46.0.6"", ""rich==14.3.3"", ""sphinx==9.1.0"", ""pip-tools==7.5.3"", ""snowballstemmer==3.0.1"", ""pylint-celery==0.3"", ""django-model-utils==5.0.0"", ""keyring==25.7.0"", ""alabaster==1.0.0"", ""secretstorage==3.5.0"", ""coverage[toml]==7.13.5"", ""freezegun==1.5.5"", ""pylint-plugin-utils==0.9.0"", ""mccabe==0.7.0"", ""pyproject-hooks==1.2.0"", ""celery==5.3.1"", ""jaraco-context==6.1.2"", ""celery==5.6.3"", ""docutils==0.21.2"", ""urllib3==2.6.3"", ""colorama==0.4.6"", ""pydocstyle==3.0.0"", ""roman-numerals==4.1.0"", ""ddt==1.7.2"", ""lxml[html-clean]==6.0.2"", ""pylint-django==2.7.0"", ""edx-lint==6.0.0"", ""tox==4.52.0"", ""python-memcached==1.62"", ""pycparser==3.0"", ""prompt-toolkit==3.0.52"", ""sphinxcontrib-applehelp==2.0.0"", ""requests-toolbelt==1.0.0"", ""readme-renderer==44.0"", ""soupsieve==2.8.3"", ""click==8.1.8"", ""pip==26.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""doc8==2.0.0"", ""click-repl==0.3.0"", ""babel==2.18.0"", ""distlib==0.4.0"", ""pycodestyle==2.14.0"", ""billiard==4.1.0"", ""jinja2==3.1.6"", ""vine==5.1.0"", ""edx-i18n-tools==2.0.0"", ""billiard==4.2.4"", ""click-log==0.4.0"", ""pyproject-api==1.10.0"", ""twine==6.2.0"", ""pylint==4.0.5"", ""id==1.6.1"", ""pydata-sphinx-theme==0.16.1"", ""isort==8.0.1"", ""pytest-django==4.12.0"", ""jaraco-functools==4.4.0"", ""click-plugins==1.1.1.2"", ""pockets==0.9.1"", ""lxml-html-clean==0.4.4"", ""python-slugify==8.0.4"", ""typing-extensions==4.15.0"", ""pygments==2.20.0"", ""nh3==0.3.4"", ""pyyaml==6.0.3"", ""wheel==0.46.3"", ""markupsafe==3.0.3"", ""platformdirs==4.9.4"", ""sphinxcontrib-htmlhelp==2.1.0"", ""asgiref==3.11.1"", ""imagesize==2.0.0"", ""packaging==26.0"", ""stevedore==5.7.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""restructuredtext-lint==2.0.2"", ""tzdata==2026.1"", ""cffi==2.0.0"", ""sphinxcontrib-napoleon==0.7"", ""iniconfig==2.3.0"", ""markdown-it-py==4.0.0"", ""prompt-toolkit==3.0.51"", ""jeepney==0.9.0"", ""six==1.17.0"", ""cachetools==7.0.5"", ""chardet==7.4.0.post2"", ""code-annotations==3.0.0"", ""beautifulsoup4==4.14.3"", ""python-discovery==1.2.1"", ""jsonfield==3.2.0"", ""tomlkit==0.14.0"", ""kombu==5.6.2"", ""click-didyoumean==0.3.1"", ""sphinx-book-theme==1.2.0"", ""virtualenv==21.2.0"", ""django==5.2.13"", ""pluggy==1.6.0"", ""python-dateutil==2.9.0.post0"", ""tzlocal==5.3.1"", ""requests==2.33.1"", ""filelock==3.25.2"", ""wcwidth==0.6.0"", ""idna==3.11"", ""setuptools==82.0.1"", ""pytest-cov==7.1.0"", ""rfc3986==2.0.0"", ""astroid==4.0.4"", ""kombu==5.5.3"", ""polib==1.2.0"", ""sqlparse==0.5.5"", ""build==1.4.2"", ""click==8.3.2"", ""more-itertools==11.0.1"", ""mock==5.2.0"", ""certifi==2026.2.25"", ""docutils==0.22.4"", ""charset-normalizer==3.4.7"", ""tomli-w==1.2.0""]",4,"[""pylint-django"", ""code-annotations"", ""pytest-django"", ""edx-i18n-tools""]",6,"[""pytest-django"", ""pylint-django"", ""edx-i18n-tools"", ""code-annotations"", ""jsonfield"", ""django-model-utils""]",2,"[""code-annotations"", ""edx-i18n-tools""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,67,"{""total_duration"": ""6565 minutes 55 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 42 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2017-02-01 23:33:38,master,Tools to support working with celery.,492,12,True,False,False,False,False,False,False,2026-06-04 04:33:17,Apache License 2.0,16,True,0,0,0,0,3693,33759,0,True,True,False,False,True,False,False,,openedx,4,"['http://edx-celeryutils.readthedocs.io/en/latest/?badge=latest: 404', 'http://edx-celeryutils.readthedocs.io/en/latest/: 404', 'https://open.edx.org/getting-help: 403']",True,"['https://img.shields.io/pypi/v/edx-celeryutils.svg', 'https://pypi.python.org/pypi/edx-celeryutils/', 'https://github.com/openedx/edx-celeryutils/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-celeryutils/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-celeryutils/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-celeryutils?branch=master', 'https://img.shields.io/pypi/pyversions/edx-celeryutils.svg', 'https://img.shields.io/github/license/edx/edx-celeryutils.svg', 'https://github.com/openedx/edx-celeryutils/blob/master/LICENSE.txt', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-celeryutils,"['3', '3.12']",https://github.com/openedx/edx-celeryutils,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/staff-graded-xblock,,,,True,2026-06-08,True,True,False,False,100,0,[],0,,0,0,,,57,"[""click-repl==0.3.0"", ""edx-opaque-keys==3.1.0"", ""webob==1.8.9"", ""typing-extensions==4.15.0"", ""web-fragments==3.1.0"", ""pyyaml==6.0.3"", ""celery==5.6.2"", ""lxml==6.0.2"", ""asgiref==3.11.1"", ""markdown==3.10.2"", ""django-waffle==5.0.0"", ""fs==2.4.16"", ""prompt-toolkit==3.0.52"", ""edx-bulk-grades==1.2.0"", ""charset-normalizer==3.4.5"", ""tzdata==2025.3"", ""tzlocal==5.3.1"", ""cffi==2.0.0"", ""kombu==5.6.2"", ""vine==5.1.0"", ""urllib3==2.6.3"", ""path==17.1.1"", ""markupsafe==3.0.3"", ""dnspython==2.8.0"", ""django-crum==0.7.9"", ""psutil==7.2.2"", ""requests==2.32.5"", ""edx-django-utils==8.0.1"", ""django==5.2.12"", ""djangorestframework==3.16.1"", ""pytz==2026.1.post1"", ""stevedore==5.7.0"", ""pymongo==4.16.0"", ""idna==3.11"", ""xblock==5.3.0"", ""super-csv==4.1.0"", ""sqlparse==0.5.5"", ""pycparser==3.0"", ""click-plugins==1.1.1.2"", ""pynacl==1.6.2"", ""wcwidth==0.6.0"", ""packaging==26.0"", ""django-model-utils==5.0.0"", ""simplejson==3.20.2"", ""edx-celeryutils==1.4.0"", ""six==1.17.0"", ""appdirs==1.4.4"", ""billiard==4.2.4"", ""jsonfield==3.2.0"", ""certifi==2026.2.25"", ""mako==1.3.10"", ""path-py==12.5.0"", ""amqp==5.3.1"", ""python-dateutil==2.9.0.post0"", ""slumber==0.7.1"", ""click-didyoumean==0.3.1"", ""click==8.3.1""]",100,"[""wheel==0.46.3"", ""colorama==0.4.6"", ""edx-lint==5.6.0"", ""celery==5.6.2"", ""django-appconf==1.2.0"", ""lxml[html-clean]==6.0.2"", ""pluggy==1.6.0"", ""prompt-toolkit==3.0.52"", ""pygments==2.19.2"", ""tzlocal==5.3.1"", ""urllib3==2.6.3"", ""python-slugify==8.0.4"", ""pytest-cov==7.0.0"", ""iniconfig==2.3.0"", ""pymongo==4.16.0"", ""mccabe==0.7.0"", ""idna==3.11"", ""isort==8.0.1"", ""packaging==26.0"", ""six==1.17.0"", ""billiard==4.2.4"", ""code-annotations==2.3.2"", ""pyproject-hooks==1.2.0"", ""path-py==12.5.0"", ""pylint-django==2.7.0"", ""coverage[toml]==7.13.4"", ""python-discovery==1.1.1"", ""click-didyoumean==0.3.1"", ""click==8.3.1"", ""web-fragments==3.1.0"", ""pytest==9.0.2"", ""pylint-celery==0.3"", ""django-statici18n==2.6.0"", ""virtualenv==21.1.0"", ""lxml-html-clean==0.4.4"", ""click-log==0.4.0"", ""cachetools==7.0.3"", ""edx-bulk-grades==1.2.0"", ""kombu==5.6.2"", ""filelock==3.25.0"", ""path==17.1.1"", ""dnspython==2.8.0"", ""pyproject-api==1.10.0"", ""psutil==7.2.2"", ""django==5.2.12"", ""stevedore==5.7.0"", ""wcwidth==0.6.0"", ""django-model-utils==5.0.0"", ""distlib==0.4.0"", ""pylint==4.0.5"", ""edx-opaque-keys==3.1.0"", ""tox==4.49.0"", ""webob==1.8.9"", ""pyyaml==6.0.3"", ""lxml==6.0.2"", ""astroid==4.0.4"", ""asgiref==3.11.1"", ""django-waffle==5.0.0"", ""charset-normalizer==3.4.5"", ""tzdata==2025.3"", ""cffi==2.0.0"", ""markupsafe==3.0.3"", ""pytz==2026.1.post1"", ""build==1.4.0"", ""xblock==5.3.0"", ""tomlkit==0.14.0"", ""pycparser==3.0"", ""polib==1.2.0"", ""edx-celeryutils==1.4.0"", ""simplejson==3.20.2"", ""appdirs==1.4.4"", ""pip-tools==7.5.3"", ""jsonfield==3.2.0"", ""amqp==5.3.1"", ""edx-i18n-tools==1.6.1"", ""pip==26.0.1"", ""python-dateutil==2.9.0.post0"", ""slumber==0.7.1"", ""click-repl==0.3.0"", ""typing-extensions==4.15.0"", ""markdown==3.10.2"", ""jinja2==3.1.6"", ""fs==2.4.16"", ""dill==0.4.1"", ""vine==5.1.0"", ""platformdirs==4.9.4"", ""django-crum==0.7.9"", ""requests==2.32.5"", ""edx-django-utils==8.0.1"", ""djangorestframework==3.16.1"", ""tomli-w==1.2.0"", ""super-csv==4.1.0"", ""sqlparse==0.5.5"", ""setuptools==82.0.0"", ""click-plugins==1.1.1.2"", ""pynacl==1.6.2"", ""text-unidecode==1.3"", ""mako==1.3.10"", ""certifi==2026.2.25"", ""pylint-plugin-utils==0.9.0""]",13,"[""edx-celeryutils"", ""super-csv"", ""pylint-django"", ""djangorestframework"", ""edx-opaque-keys"", ""edx-bulk-grades"", ""edx-django-utils"", ""edx-i18n-tools"", ""xblock"", ""code-annotations"", ""django-appconf"", ""web-fragments"", ""django-waffle""]",17,"[""django-crum"", ""edx-celeryutils"", ""jsonfield"", ""super-csv"", ""pylint-django"", ""djangorestframework"", ""edx-opaque-keys"", ""edx-bulk-grades"", ""edx-django-utils"", ""django-model-utils"", ""edx-i18n-tools"", ""xblock"", ""code-annotations"", ""django-statici18n"", ""django-appconf"", ""web-fragments"", ""django-waffle""]",11,"[""edx-celeryutils"", ""super-csv"", ""edx-opaque-keys"", ""edx-bulk-grades"", ""edx-django-utils"", ""edx-i18n-tools"", ""xblock"", ""code-annotations"", ""django-appconf"", ""web-fragments"", ""django-waffle""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,16,"{""total_duration"": ""1992 minutes 13 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""2 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 31 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2019-05-15 18:56:20,master,Staff Graded Points XBlock,293,17,True,False,False,False,False,False,False,2026-06-08 03:12:30,GNU AGPLv3,15,True,208,972,3390,244732,4215,28886,0,False,True,False,True,True,True,True,,openedx,3,"['https://django-statici18n.readthedocs.io/en/latest/: 404', 'https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /software/gettext/manual/html_node/PO-Files.html (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))']",False,"['https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html', 'https://github.com/openedx/i18n-tools', 'https://docs.djangoproject.com/en/1.11/topics/i18n/translation/', 'https://docs.transifex.com/integrations/django']",True,True,False,False,,,False,,,,False,True,False,True,,False,staff-graded-xblock,"['3', '3.12']",https://github.com/openedx/staff_graded-xblock,True,True,True,False,False,False,False,False,False,[],[],['gettext'],[] +openedx/course-discovery,,,,True,2026-06-08,False,False,False,False,289,0,[],354,"{""@babel/code-frame"": ""7.16.0"", ""@babel/helper-validator-identifier"": ""7.15.7"", ""@babel/highlight"": ""7.16.0"", ""@discoveryjs/json-ext"": ""0.5.5"", ""@jridgewell/gen-mapping"": ""0.3.5"", ""@jridgewell/resolve-uri"": ""3.1.2"", ""@jridgewell/set-array"": ""1.2.1"", ""@jridgewell/source-map"": ""0.3.6"", ""@jridgewell/sourcemap-codec"": ""1.5.0"", ""@jridgewell/trace-mapping"": ""0.3.25"", ""@sindresorhus/is"": ""4.2.0"", ""@szmarczak/http-timer"": ""4.0.6"", ""@types/cacheable-request"": ""6.0.2"", ""@types/estree"": ""1.0.5"", ""@types/http-cache-semantics"": ""4.0.1"", ""@types/json-schema"": ""7.0.15"", ""@types/keyv"": ""3.1.3"", ""@types/minimist"": ""1.2.2"", ""@types/node"": ""16.9.4"", ""@types/normalize-package-data"": ""2.4.1"", ""@types/responselike"": ""1.0.0"", ""@webassemblyjs/ast"": ""1.12.1"", ""@webassemblyjs/floating-point-hex-parser"": ""1.11.6"", ""@webassemblyjs/helper-api-error"": ""1.11.6"", ""@webassemblyjs/helper-buffer"": ""1.12.1"", ""@webassemblyjs/helper-numbers"": ""1.11.6"", ""@webassemblyjs/helper-wasm-bytecode"": ""1.11.6"", ""@webassemblyjs/helper-wasm-section"": ""1.12.1"", ""@webassemblyjs/ieee754"": ""1.11.6"", ""@webassemblyjs/leb128"": ""1.11.6"", ""@webassemblyjs/utf8"": ""1.11.6"", ""@webassemblyjs/wasm-edit"": ""1.12.1"", ""@webassemblyjs/wasm-gen"": ""1.12.1"", ""@webassemblyjs/wasm-opt"": ""1.12.1"", ""@webassemblyjs/wasm-parser"": ""1.12.1"", ""@webassemblyjs/wast-printer"": ""1.12.1"", ""@webpack-cli/configtest"": ""1.0.4"", ""@webpack-cli/info"": ""1.3.0"", ""@webpack-cli/serve"": ""1.5.2"", ""@xtuc/ieee754"": ""1.2.0"", ""@xtuc/long"": ""4.2.2"", ""abbrev"": ""1.1.1"", ""acorn"": ""8.12.1"", ""acorn-import-attributes"": ""1.9.5"", ""adm-zip"": ""0.5.9"", ""agent-base"": ""6.0.2"", ""ajv"": ""6.12.6"", ""ajv-formats"": ""2.1.1"", ""amdefine"": ""1.0.1"", ""ansi-regex"": ""6.0.1"", ""ansi-styles"": ""2.2.1"", ""anymatch"": ""3.1.2"", ""aproba"": ""1.2.0"", ""are-we-there-yet"": ""1.1.7"", ""arrify"": ""1.0.1"", ""asn1"": ""0.2.6"", ""assert-plus"": ""1.0.0"", ""async-foreach"": ""0.1.3"", ""asynckit"": ""0.4.0"", ""aws-sign2"": ""0.7.0"", ""aws4"": ""1.11.0"", ""balanced-match"": ""1.0.2"", ""bcrypt-pbkdf"": ""1.0.2"", ""big.js"": ""5.2.2"", ""binary-extensions"": ""2.2.0"", ""bluebird"": ""3.7.2"", ""bootstrap-sass"": ""3.4.3"", ""bower"": ""1.8.12"", ""brace-expansion"": ""1.1.11"", ""braces"": ""3.0.2"", ""browserslist"": ""4.23.3"", ""buffer-from"": ""1.1.2"", ""cacheable-lookup"": ""5.0.4"", ""cacheable-request"": ""7.0.2"", ""camelcase"": ""5.3.1"", ""camelcase-keys"": ""6.2.2"", ""caniuse-lite"": ""1.0.30001653"", ""caseless"": ""0.12.0"", ""chalk"": ""1.1.3"", ""chokidar"": ""3.5.3"", ""chownr"": ""2.0.0"", ""chrome-trace-event"": ""1.0.3"", ""cliui"": ""5.0.0"", ""clone-deep"": ""4.0.1"", ""clone-response"": ""1.0.2"", ""code-point-at"": ""1.1.0"", ""color-convert"": ""1.9.3"", ""color-name"": ""1.1.3"", ""colorette"": ""1.4.0"", ""combined-stream"": ""1.0.8"", ""commander"": ""2.20.3"", ""concat-map"": ""0.0.1"", ""console-control-strings"": ""1.1.0"", ""core-util-is"": ""1.0.2"", ""cross-spawn"": ""7.0.3"", ""css-loader"": ""6.11.0"", ""cssesc"": ""3.0.0"", ""dashdash"": ""1.14.1"", ""datatables.net"": ""1.13.11"", ""datatables.net-bs"": ""1.13.11"", ""debug"": ""4.3.3"", ""decamelize"": ""1.2.0"", ""decamelize-keys"": ""1.1.0"", ""decompress-response"": ""6.0.0"", ""defer-to-connect"": ""2.0.1"", ""delayed-stream"": ""1.0.0"", ""delegates"": ""1.0.0"", ""ecc-jsbn"": ""0.1.2"", ""electron-to-chromium"": ""1.5.13"", ""emoji-regex"": ""7.0.3"", ""emojis-list"": ""3.0.0"", ""end-of-stream"": ""1.4.4"", ""enhanced-resolve"": ""5.17.1"", ""env-paths"": ""2.2.1"", ""envinfo"": ""7.8.1"", ""error-ex"": ""1.3.2"", ""es-module-lexer"": ""1.5.4"", ""escalade"": ""3.1.2"", ""escape-string-regexp"": ""1.0.5"", ""eslint-scope"": ""5.1.1"", ""esrecurse"": ""4.3.0"", ""estraverse"": ""4.3.0"", ""events"": ""3.3.0"", ""execa"": ""5.1.1"", ""extend"": ""3.0.2"", ""extsprintf"": ""1.3.0"", ""fast-deep-equal"": ""3.1.3"", ""fast-json-stable-stringify"": ""2.1.0"", ""fast-uri"": ""3.0.1"", ""fastest-levenshtein"": ""1.0.12"", ""file-loader"": ""6.2.0"", ""fill-range"": ""7.0.1"", ""find-up"": ""4.1.0"", ""forever-agent"": ""0.6.1"", ""form-data"": ""2.3.3"", ""fs-minipass"": ""2.1.0"", ""fs.realpath"": ""1.0.0"", ""fsevents"": ""2.3.2"", ""function-bind"": ""1.1.1"", ""gauge"": ""2.7.4"", ""gaze"": ""1.1.3"", ""geckodriver"": ""3.2.0"", ""get-caller-file"": ""2.0.5"", ""get-stdin"": ""4.0.1"", ""get-stream"": ""6.0.1"", ""getpass"": ""0.1.7"", ""glob"": ""7.2.0"", ""glob-parent"": ""5.1.2"", ""glob-to-regexp"": ""0.4.1"", ""globule"": ""1.3.3"", ""got"": ""11.8.5"", ""graceful-fs"": ""4.2.11"", ""har-schema"": ""2.0.0"", ""har-validator"": ""5.1.5"", ""hard-rejection"": ""2.1.0"", ""has"": ""1.0.3"", ""has-ansi"": ""2.0.0"", ""has-flag"": ""4.0.0"", ""has-unicode"": ""2.0.1"", ""hosted-git-info"": ""4.0.2"", ""http-cache-semantics"": ""4.1.0"", ""http-signature"": ""1.2.0"", ""http2-wrapper"": ""1.0.3"", ""https-proxy-agent"": ""5.0.1"", ""human-signals"": ""2.1.0"", ""icss-utils"": ""5.1.0"", ""immutable"": ""4.0.0"", ""import-local"": ""3.0.2"", ""imports-loader"": ""0.8.0"", ""indent-string"": ""4.0.0"", ""inflight"": ""1.0.6"", ""inherits"": ""2.0.4"", ""interpret"": ""2.2.0"", ""is-arrayish"": ""0.2.1"", ""is-binary-path"": ""2.1.0"", ""is-core-module"": ""2.5.0"", ""is-extglob"": ""2.1.1"", ""is-fullwidth-code-point"": ""1.0.0"", ""is-glob"": ""4.0.3"", ""is-number"": ""7.0.0"", ""is-plain-obj"": ""1.1.0"", ""is-plain-object"": ""2.0.4"", ""is-typedarray"": ""1.0.0"", ""isarray"": ""1.0.0"", ""isexe"": ""2.0.0"", ""isobject"": ""3.0.1"", ""isstream"": ""0.1.2"", ""jest-worker"": ""27.5.1"", ""jquery"": ""3.7.1"", ""js-base64"": ""2.6.4"", ""js-tokens"": ""4.0.0"", ""jsbn"": ""0.1.1"", ""json-buffer"": ""3.0.1"", ""json-parse-even-better-errors"": ""2.3.1"", ""json-schema"": ""0.4.0"", ""json-schema-traverse"": ""0.4.1"", ""json-stringify-safe"": ""5.0.1"", ""json5"": ""1.0.1"", ""jsprim"": ""1.4.2"", ""keyv"": ""4.0.4"", ""kind-of"": ""6.0.3"", ""klona"": ""2.0.4"", ""lines-and-columns"": ""1.2.4"", ""loader-runner"": ""4.2.0"", ""loader-utils"": ""1.4.0"", ""locate-path"": ""5.0.0"", ""lodash"": ""4.17.21"", ""lodash.assign"": ""4.2.0"", ""lodash.defaults"": ""4.2.0"", ""lodash.foreach"": ""4.5.0"", ""lodash.frompairs"": ""4.0.1"", ""lodash.get"": ""4.4.2"", ""lodash.topairs"": ""4.3.0"", ""lowercase-keys"": ""2.0.0"", ""lru-cache"": ""6.0.0"", ""map-obj"": ""4.3.0"", ""meow"": ""9.0.0"", ""merge-stream"": ""2.0.0"", ""mime-db"": ""1.51.0"", ""mime-types"": ""2.1.34"", ""mimic-fn"": ""2.1.0"", ""mimic-response"": ""1.0.1"", ""min-indent"": ""1.0.1"", ""mini-css-extract-plugin"": ""2.9.2"", ""minimatch"": ""3.0.4"", ""minimist"": ""1.2.6"", ""minimist-options"": ""4.1.0"", ""minipass"": ""3.1.3"", ""minizlib"": ""2.1.2"", ""mkdirp"": ""1.0.4"", ""ms"": ""2.1.2"", ""nan"": ""2.15.0"", ""nanoid"": ""3.3.7"", ""neo-async"": ""2.6.2"", ""node-gyp"": ""7.1.2"", ""node-releases"": ""2.0.18"", ""node-sass"": ""6.0.1"", ""nopt"": ""5.0.0"", ""normalize-package-data"": ""3.0.3"", ""normalize-path"": ""3.0.0"", ""normalize-url"": ""6.1.0"", ""npm-run-path"": ""4.0.1"", ""npmlog"": ""4.1.2"", ""number-is-nan"": ""1.0.1"", ""oauth-sign"": ""0.9.0"", ""object-assign"": ""4.1.1"", ""once"": ""1.4.0"", ""onetime"": ""5.1.2"", ""p-cancelable"": ""2.1.1"", ""p-limit"": ""2.2.2"", ""p-locate"": ""4.1.0"", ""p-try"": ""2.2.0"", ""parse-json"": ""5.2.0"", ""path-exists"": ""4.0.0"", ""path-is-absolute"": ""1.0.1"", ""path-key"": ""3.1.1"", ""path-parse"": ""1.0.7"", ""performance-now"": ""2.1.0"", ""picocolors"": ""1.0.1"", ""picomatch"": ""2.3.1"", ""postcss"": ""8.4.33"", ""postcss-modules-extract-imports"": ""3.1.0"", ""postcss-modules-local-by-default"": ""4.0.5"", ""postcss-modules-scope"": ""3.2.0"", ""postcss-modules-values"": ""4.0.0"", ""postcss-selector-parser"": ""6.0.6"", ""postcss-value-parser"": ""4.2.0"", ""process-nextick-args"": ""2.0.1"", ""psl"": ""1.8.0"", ""pump"": ""3.0.0"", ""punycode"": ""2.1.1"", ""qs"": ""6.5.2"", ""quick-lru"": ""4.0.1"", ""randombytes"": ""2.1.0"", ""read-pkg"": ""5.2.0"", ""read-pkg-up"": ""7.0.1"", ""readable-stream"": ""2.3.7"", ""readdirp"": ""3.6.0"", ""rechoir"": ""0.7.1"", ""redent"": ""3.0.0"", ""request"": ""2.88.2"", ""require-directory"": ""2.1.1"", ""require-from-string"": ""2.0.2"", ""require-main-filename"": ""2.0.0"", ""resolve"": ""1.20.0"", ""resolve-alpn"": ""1.2.1"", ""resolve-cwd"": ""3.0.0"", ""resolve-from"": ""5.0.0"", ""responselike"": ""2.0.0"", ""rimraf"": ""3.0.2"", ""safe-buffer"": ""5.1.2"", ""safer-buffer"": ""2.1.2"", ""sass"": ""1.78.0"", ""sass-graph"": ""2.2.5"", ""sass-loader"": ""12.1.0"", ""schema-utils"": ""3.3.0"", ""scss-tokenizer"": ""0.2.3"", ""semver"": ""7.5.4"", ""serialize-javascript"": ""6.0.2"", ""set-blocking"": ""2.0.0"", ""shallow-clone"": ""3.0.1"", ""shebang-command"": ""2.0.0"", ""shebang-regex"": ""3.0.0"", ""signal-exit"": ""3.0.7"", ""source-map"": ""0.6.1"", ""source-map-js"": ""1.0.2"", ""source-map-support"": ""0.5.21"", ""spdx-correct"": ""3.1.1"", ""spdx-exceptions"": ""2.3.0"", ""spdx-expression-parse"": ""3.0.1"", ""spdx-license-ids"": ""3.0.11"", ""sshpk"": ""1.16.1"", ""stdout-stream"": ""1.4.1"", ""string_decoder"": ""1.1.1"", ""string-width"": ""1.0.2"", ""strip-ansi"": ""6.0.1"", ""strip-final-newline"": ""2.0.0"", ""strip-indent"": ""3.0.0"", ""supports-color"": ""2.0.0"", ""tapable"": ""2.2.1"", ""tar"": ""6.1.11"", ""terser"": ""5.31.6"", ""terser-webpack-plugin"": ""5.3.10"", ""to-regex-range"": ""5.0.1"", ""tough-cookie"": ""2.5.0"", ""trim-newlines"": ""3.0.1"", ""true-case-path"": ""1.0.3"", ""tunnel-agent"": ""0.6.0"", ""tweetnacl"": ""0.14.5"", ""type-fest"": ""0.18.1"", ""update-browserslist-db"": ""1.1.0"", ""uri-js"": ""4.2.2"", ""url-loader"": ""4.1.1"", ""util-deprecate"": ""1.0.2"", ""uuid"": ""3.4.0"", ""v8-compile-cache"": ""2.3.0"", ""validate-npm-package-license"": ""3.0.4"", ""verror"": ""1.10.0"", ""watchpack"": ""2.4.2"", ""webpack"": ""5.94.0"", ""webpack-bundle-tracker"": ""1.8.1"", ""webpack-cli"": ""4.8.0"", ""webpack-merge"": ""5.8.0"", ""webpack-sources"": ""3.2.3"", ""which"": ""2.0.2"", ""which-module"": ""2.0.0"", ""wide-align"": ""1.1.5"", ""wildcard"": ""2.0.0"", ""wrap-ansi"": ""5.1.0"", ""wrappy"": ""1.0.2"", ""y18n"": ""4.0.3"", ""yallist"": ""4.0.0"", ""yargs"": ""13.3.2"", ""yargs-parser"": ""20.2.9""}",16,1,"{""geckodriver"": ""3.2.0""}","{""ansi-regex"": ""6.0.1"", ""bootstrap-sass"": ""3.4.3"", ""bower"": ""1.8.12"", ""css-loader"": ""6.11.0"", ""datatables.net"": ""1.13.11"", ""datatables.net-bs"": ""1.13.11"", ""mini-css-extract-plugin"": ""2.9.2"", ""file-loader"": ""6.2.0"", ""imports-loader"": ""0.8.0"", ""jquery"": ""3.7.1"", ""sass"": ""1.78.0"", ""sass-loader"": ""12.1.0"", ""url-loader"": ""4.1.1"", ""webpack"": ""5.94.0"", ""webpack-bundle-tracker"": ""1.8.1"", ""webpack-cli"": ""4.8.0""}",186,"[""unicodecsv==0.14.1"", ""social-auth-app-django==5.4.3"", ""google-api-core==2.30.2"", ""elasticsearch-dsl==7.4.1"", ""django==5.2.12"", ""django-celery-results==2.6.0"", ""edx-django-sites-extensions==6.0.0"", ""requests==2.33.1"", ""django-solo==2.5.1"", ""jinja2==3.1.6"", ""google-auth-httplib2==0.3.1"", ""google-api-python-client==2.193.0"", ""platformdirs==4.9.4"", ""greenlet==3.3.2"", ""amqp==5.3.1"", ""cairosvg==2.9.0"", ""django-extensions==4.1"", ""django-simple-history==3.11.0"", ""django-crum==0.7.9"", ""django-libsass==0.9"", ""django-localflavor==5.0"", ""vine==5.1.0"", ""text-unidecode==1.3"", ""snowflake-connector-python==4.3.0"", ""prompt-toolkit==3.0.52"", ""getsmarter-api-clients==0.6.3"", ""requests-file==3.0.1"", ""pyjwt[crypto]==2.12.1"", ""django-parler==2.3"", ""inflection==0.5.1"", ""backoff==2.2.1"", ""fastavro==1.12.1"", ""edx-rest-api-client==6.2.0"", ""botocore==1.42.84"", ""pyopenssl==25.3.0"", ""lxml-html-clean==0.4.4"", ""django-compressor==4.6.0"", ""click-didyoumean==0.3.1"", ""googleapis-common-protos==1.74.0"", ""six==1.17.0"", ""google-auth-oauthlib==1.3.1"", ""django-model-utils==5.0.0"", ""zipp==3.23.0"", ""django-dry-rest-permissions==1.2.0"", ""boto3==1.42.84"", ""pyparsing==3.3.2"", ""django-autocomplete-light==3.12.1"", ""beautifulsoup4==4.14.3"", ""pycountry==26.2.16"", ""cssselect2==0.9.0"", ""edx-ccx-keys==2.0.2"", ""lxml[html-clean]==6.0.2"", ""edx-auth-backends==5.0.0"", ""pillow==9.5.0"", ""pyasn1==0.6.3"", ""libsass==0.23.0"", ""pyasn1-modules==0.4.2"", ""edx-analytics-data-api-client==0.18.3"", ""filelock==3.25.2"", ""wcwidth==0.6.0"", ""gevent==25.9.1"", ""jsonschema==4.26.0"", ""django-storages==1.14.6"", ""django-countries==8.2.0"", ""tzdata==2026.1"", ""djangorestframework-csv==3.0.2"", ""referencing==0.37.0"", ""social-auth-core==4.8.5"", ""django-sortedm2m==4.0.0"", ""pycparser==3.0"", ""rjsmin==1.2.5"", ""zope-interface==8.2"", ""click-plugins==1.1.1.2"", ""drf-yasg==1.21.15"", ""django-multiselectfield==1.0.1"", ""asgiref==3.11.1"", ""djangorestframework-xml==2.0.0"", ""openedx-events==11.1.0"", ""drf-extensions==0.8.0"", ""requests-toolbelt==0.10.1"", ""django-admin-sortable2==2.3.1"", ""markupsafe==3.0.3"", ""tzlocal==5.3.1"", ""html2text==2025.4.15"", ""algoliasearch==1.20.0"", ""dnspython==2.8.0"", ""isodate==0.7.2"", ""openedx-atlas==0.7.0"", ""pynacl==1.6.2"", ""django-contrib-comments==2.2.0"", ""sqlparse==0.5.5"", ""gunicorn==25.3.0"", ""django-nine==0.2.7"", ""attrs==26.1.0"", ""click==8.3.2"", ""django-elasticsearch-dsl-drf==0.22.5"", ""asn1crypto==1.5.1"", ""edx-api-doc-tools==3.0.0"", ""edx-drf-extensions==10.6.0"", ""django-multi-email-field==0.8.0"", ""django-waffle==5.0.0"", ""simple-salesforce==1.12.9"", ""idna==3.11"", ""edx-django-utils==8.0.1"", ""sortedcontainers==2.4.0"", ""django-fsm==3.0.1"", ""django-webpack-loader==3.2.3"", ""djangorestframework==3.17.1"", ""webencodings==0.5.1"", ""python-slugify==8.0.4"", ""django-ses==4.7.2"", ""elasticsearch==7.13.4"", ""proto-plus==1.27.2"", ""django-cors-headers==4.9.0"", ""certifi==2026.2.25"", ""tomlkit==0.14.0"", ""django-dynamic-filenames==1.4.1"", ""django-appconf==1.2.0"", ""django-object-actions==5.0.0"", ""rcssmin==1.2.2"", ""gspread==6.2.1"", ""celery==5.6.3"", ""typing-extensions==4.15.0"", ""zope-event==6.1"", ""django-filter==25.2"", ""python3-openid==3.2.0"", ""cairocffi==1.7.1"", ""edx-opaque-keys[django]==4.0.0"", ""urllib3==1.26.20"", ""click-repl==0.3.0"", ""walrus==0.9.8"", ""requests-oauthlib==2.0.0"", ""code-annotations==3.0.0"", ""markdown==3.10.2"", ""python-monkey-business==1.1.0"", ""taxonomy-connector==2.4.0"", ""python-stdnum==2.2"", ""mysqlclient==2.2.8"", ""zeep==4.3.2"", ""cryptography==45.0.7"", ""jsonschema-specifications==2025.9.1"", ""pyyaml==6.0.3"", ""django-config-models==3.0.0"", ""edx-event-bus-redis==1.0.0"", ""billiard==4.2.4"", ""httplib2==0.31.2"", ""uritemplate==4.2.0"", ""xss-utils==1.0.0"", ""edx-django-release-util==1.5.0"", ""pytz==2026.1.post1"", ""semantic-version==2.10.0"", ""packaging==26.0"", ""algoliasearch-django==1.7.3"", ""oauthlib==3.3.1"", ""drf-jwt==1.19.2"", ""google-auth==2.49.1"", ""protobuf==7.34.1"", ""psutil==7.2.2"", ""pymemcache==4.0.0"", ""python-memcached==1.62"", ""rpds-py==0.30.0"", ""drf-flex-fields==1.0.2"", ""jsonfield==3.2.0"", ""cffi==2.0.0"", ""pymongo==4.16.0"", ""s3transfer==0.16.0"", ""edx-toggles==5.4.1"", ""redis==7.4.0"", ""more-itertools==11.0.1"", ""charset-normalizer==3.4.7"", ""contentful==2.5.0"", ""python-dateutil==2.9.0.post0"", ""django-taggit==6.1.0"", ""django-stdimage==5.3.0"", ""importlib-metadata==9.0.0"", ""tinycss2==1.5.1"", ""jmespath==1.1.0"", ""stevedore==5.7.0"", ""django-elasticsearch-dsl==7.4"", ""defusedxml==0.7.1"", ""django-nested-admin==4.1.6"", ""django-taggit-autosuggest==0.4.2"", ""django-guardian==3.0.3"", ""edx-event-bus-kafka==6.1.0"", ""kombu==5.6.2"", ""soupsieve==2.8.3""]",272,"[""unicodecsv==0.14.1"", ""social-auth-app-django==5.4.3"", ""google-api-core==2.30.2"", ""astroid==4.0.4"", ""elasticsearch-dsl==7.4.1"", ""django==5.2.12"", ""django-celery-results==2.6.0"", ""edx-django-sites-extensions==6.0.0"", ""requests==2.33.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""django-solo==2.5.1"", ""jinja2==3.1.6"", ""outcome==1.3.0.post0"", ""mock==5.2.0"", ""google-auth-httplib2==0.3.1"", ""google-api-python-client==2.193.0"", ""click-option-group==0.5.9"", ""click-log==0.4.0"", ""platformdirs==4.9.4"", ""greenlet==3.3.2"", ""coverage[toml]==7.13.5"", ""amqp==5.3.1"", ""pygments==2.20.0"", ""pylint-django==2.7.0"", ""cairosvg==2.9.0"", ""django-extensions==4.1"", ""colorama==0.4.6"", ""django-simple-history==3.11.0"", ""django-crum==0.7.9"", ""django-libsass==0.9"", ""pytest-cov==7.1.0"", ""django-localflavor==5.0"", ""vine==5.1.0"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""snowflake-connector-python==4.3.0"", ""mdurl==0.1.2"", ""prompt-toolkit==3.0.52"", ""pylint==4.0.5"", ""getsmarter-api-clients==0.6.3"", ""requests-file==3.0.1"", ""pyjwt[crypto]==2.12.1"", ""h11==0.16.0"", ""path==16.16.0"", ""build==1.4.2"", ""django-parler==2.3"", ""inflection==0.5.1"", ""backoff==2.2.1"", ""fastavro==1.12.1"", ""pip-tools==7.5.3"", ""trio==0.33.0"", ""edx-rest-api-client==6.2.0"", ""botocore==1.42.84"", ""pyopenssl==25.3.0"", ""pip==26.0.1"", ""lxml-html-clean==0.4.4"", ""boltons==21.0.0"", ""sphinx-book-theme==1.1.3"", ""django-compressor==4.6.0"", ""click-didyoumean==0.3.1"", ""googleapis-common-protos==1.74.0"", ""six==1.17.0"", ""pytest==9.0.2"", ""google-auth-oauthlib==1.3.1"", ""django-model-utils==5.0.0"", ""zipp==3.23.0"", ""django-dry-rest-permissions==1.2.0"", ""boto3==1.42.84"", ""pycodestyle==2.14.0"", ""pyparsing==3.3.2"", ""django-autocomplete-light==3.12.1"", ""beautifulsoup4==4.14.3"", ""pycountry==26.2.16"", ""cssselect2==0.9.0"", ""edx-ccx-keys==2.0.2"", ""lxml[html-clean]==6.0.2"", ""edx-auth-backends==5.0.0"", ""django-debug-toolbar==4.1.0"", ""polib==1.2.0"", ""pillow==9.5.0"", ""pyasn1==0.6.3"", ""libsass==0.23.0"", ""pyasn1-modules==0.4.2"", ""sniffio==1.3.1"", ""edx-analytics-data-api-client==0.18.3"", ""filelock==3.25.2"", ""wcwidth==0.6.0"", ""distlib==0.4.0"", ""faker==40.13.0"", ""selenium==4.12.0"", ""gevent==25.9.1"", ""jsonschema==4.26.0"", ""django-storages==1.14.6"", ""django-countries==8.2.0"", ""tzdata==2026.1"", ""snowballstemmer==3.0.1"", ""pytest-split==0.11.0"", ""djangorestframework-csv==3.0.2"", ""referencing==0.37.0"", ""social-auth-core==4.8.5"", ""django-sortedm2m==4.0.0"", ""factory-boy==3.3.3"", ""pycparser==3.0"", ""rjsmin==1.2.5"", ""cachetools==7.0.5"", ""zope-interface==8.2"", ""urllib3[socks]==1.26.20"", ""click-plugins==1.1.1.2"", ""drf-yasg==1.21.15"", ""django-multiselectfield==1.0.1"", ""asgiref==3.11.1"", ""djangorestframework-xml==2.0.0"", ""openedx-events==11.1.0"", ""drf-extensions==0.8.0"", ""face==26.0.0"", ""requests-toolbelt==0.10.1"", ""isort==8.0.1"", ""responses==0.26.0"", ""django-admin-sortable2==2.3.1"", ""slumber==0.7.1"", ""markupsafe==3.0.3"", ""tzlocal==5.3.1"", ""html2text==2025.4.15"", ""algoliasearch==1.20.0"", ""dnspython==2.8.0"", ""isodate==0.7.2"", ""openedx-atlas==0.7.0"", ""pynacl==1.6.2"", ""wsproto==1.3.2"", ""django-contrib-comments==2.2.0"", ""sqlparse==0.5.5"", ""gunicorn==25.3.0"", ""sphinx==5.3.0"", ""pydata-sphinx-theme==0.15.4"", ""ruamel-yaml==0.17.40"", ""trio-websocket==0.12.2"", ""django-nine==0.2.7"", ""attrs==26.1.0"", ""click==8.3.2"", ""tox==4.52.0"", ""tomli-w==1.2.0"", ""pylint-plugin-utils==0.9.0"", ""django-elasticsearch-dsl-drf==0.22.5"", ""freezegun==1.5.5"", ""glom==22.1.0"", ""asn1crypto==1.5.1"", ""edx-api-doc-tools==3.0.0"", ""docutils==0.19"", ""edx-drf-extensions==10.6.0"", ""python-discovery==1.2.1"", ""django-multi-email-field==0.8.0"", ""testfixtures==11.0.0"", ""tomli==2.0.2"", ""pyproject-hooks==1.2.0"", ""django-waffle==5.0.0"", ""simple-salesforce==1.12.9"", ""pytest-xdist==3.8.0"", ""idna==3.11"", ""edx-django-utils==8.0.1"", ""sortedcontainers==2.4.0"", ""django-fsm==3.0.1"", ""bracex==2.6"", ""pylint-celery==0.3"", ""pysocks==1.7.1"", ""edx-i18n-tools==2.0.0"", ""django-webpack-loader==3.2.3"", ""djangorestframework==3.17.1"", ""webencodings==0.5.1"", ""sphinxcontrib-qthelp==2.0.0"", ""python-slugify==8.0.4"", ""django-ses==4.7.2"", ""elasticsearch==7.13.4"", ""proto-plus==1.27.2"", ""django-cors-headers==4.9.0"", ""accessible-pygments==0.0.5"", ""certifi==2026.2.25"", ""tomlkit==0.14.0"", ""edx-lint==5.3.7"", ""django-dynamic-filenames==1.4.1"", ""django-appconf==1.2.0"", ""django-object-actions==5.0.0"", ""rcssmin==1.2.2"", ""pluggy==1.6.0"", ""wcmatch==8.5.2"", ""gspread==6.2.1"", ""sphinxcontrib-applehelp==2.0.0"", ""celery==5.6.3"", ""typing-extensions==4.15.0"", ""zope-event==6.1"", ""babel==2.18.0"", ""sphinxcontrib-devhelp==2.0.0"", ""django-filter==25.2"", ""python3-openid==3.2.0"", ""cairocffi==1.7.1"", ""edx-opaque-keys[django]==4.0.0"", ""urllib3==1.26.20"", ""pytest-django==4.12.0"", ""imagesize==2.0.0"", ""click-repl==0.3.0"", ""ddt==1.7.2"", ""walrus==0.9.8"", ""requests-oauthlib==2.0.0"", ""code-annotations==3.0.0"", ""markdown==3.10.2"", ""python-monkey-business==1.1.0"", ""taxonomy-connector==2.4.0"", ""python-stdnum==2.2"", ""ruamel-yaml-clib==0.2.15"", ""mysqlclient==2.2.8"", ""zeep==4.3.2"", ""wheel==0.46.3"", ""cryptography==45.0.7"", ""pyproject-api==1.10.0"", ""jsonschema-specifications==2025.9.1"", ""pyyaml==6.0.3"", ""rich==14.3.3"", ""django-config-models==3.0.0"", ""edx-event-bus-redis==1.0.0"", ""billiard==4.2.4"", ""httplib2==0.31.2"", ""execnet==2.1.2"", ""uritemplate==4.2.0"", ""xss-utils==1.0.0"", ""edx-django-release-util==1.5.0"", ""dill==0.4.1"", ""pytz==2026.1.post1"", ""semantic-version==2.10.0"", ""peewee==3.19.0"", ""packaging==26.0"", ""pywatchman==3.0.0"", ""algoliasearch-django==1.7.3"", ""oauthlib==3.3.1"", ""drf-jwt==1.19.2"", ""google-auth==2.49.1"", ""protobuf==7.34.1"", ""psutil==7.2.2"", ""pymemcache==4.0.0"", ""python-memcached==1.62"", ""rpds-py==0.30.0"", ""drf-flex-fields==1.0.2"", ""jsonfield==3.2.0"", ""semgrep==1.52.0"", ""cffi==2.0.0"", ""pymongo==4.16.0"", ""s3transfer==0.16.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""edx-toggles==5.4.1"", ""redis==7.4.0"", ""more-itertools==11.0.1"", ""charset-normalizer==3.4.7"", ""contentful==2.5.0"", ""python-dateutil==2.9.0.post0"", ""markdown-it-py==4.0.0"", ""virtualenv==21.2.0"", ""django-taggit==6.1.0"", ""django-stdimage==5.3.0"", ""importlib-metadata==9.0.0"", ""tinycss2==1.5.1"", ""iniconfig==2.3.0"", ""sphinxcontrib-jsmath==1.0.1"", ""alabaster==0.7.16"", ""jmespath==1.1.0"", ""stevedore==5.7.0"", ""django-elasticsearch-dsl==7.4"", ""defusedxml==0.7.1"", ""django-nested-admin==4.1.6"", ""django-taggit-autosuggest==0.4.2"", ""django-guardian==3.0.3"", ""edx-event-bus-kafka==6.1.0"", ""kombu==5.6.2"", ""soupsieve==2.8.3"", ""pytest-responses==0.5.1""]",37,"[""django-solo"", ""edx-api-doc-tools"", ""django-object-actions"", ""django-webpack-loader"", ""django-cors-headers"", ""edx-i18n-tools"", ""pylint-django"", ""edx-toggles"", ""django-storages"", ""django-sortedm2m"", ""django-multi-email-field"", ""django-celery-results"", ""django-dynamic-filenames"", ""django-taggit"", ""django-extensions"", ""django-contrib-comments"", ""django-compressor"", ""code-annotations"", ""social-auth-app-django"", ""djangorestframework"", ""edx-django-release-util"", ""edx-django-sites-extensions"", ""django-waffle"", ""django-countries"", ""edx-auth-backends"", ""django-filter"", ""pytest-django"", ""django-debug-toolbar"", ""factory-boy"", ""edx-django-utils"", ""django-autocomplete-light"", ""edx-rest-api-client"", ""algoliasearch-django"", ""django-appconf"", ""xss-utils"", ""django-config-models"", ""edx-drf-extensions""]",57,"[""django-dry-rest-permissions"", ""django-simple-history"", ""django-solo"", ""djangorestframework-xml"", ""edx-api-doc-tools"", ""django-object-actions"", ""django-crum"", ""drf-jwt"", ""django-webpack-loader"", ""django-cors-headers"", ""django-model-utils"", ""edx-i18n-tools"", ""pylint-django"", ""drf-extensions"", ""edx-toggles"", ""django-storages"", ""django-sortedm2m"", ""django-multi-email-field"", ""django-celery-results"", ""jsonfield"", ""django-dynamic-filenames"", ""django-taggit"", ""django-extensions"", ""django-contrib-comments"", ""django-compressor"", ""code-annotations"", ""social-auth-app-django"", ""djangorestframework"", ""django-elasticsearch-dsl"", ""edx-django-release-util"", ""edx-django-sites-extensions"", ""django-fsm"", ""django-libsass"", ""django-taggit-autosuggest"", ""django-waffle"", ""django-countries"", ""edx-auth-backends"", ""django-filter"", ""django-guardian"", ""pytest-django"", ""django-debug-toolbar"", ""factory-boy"", ""edx-django-utils"", ""django-ses"", ""django-autocomplete-light"", ""django-elasticsearch-dsl-drf"", ""django-stdimage"", ""edx-rest-api-client"", ""drf-yasg"", ""algoliasearch-django"", ""djangorestframework-csv"", ""django-nine"", ""django-appconf"", ""xss-utils"", ""django-config-models"", ""django-parler"", ""edx-drf-extensions""]",28,"[""django-solo"", ""edx-api-doc-tools"", ""django-webpack-loader"", ""django-cors-headers"", ""edx-i18n-tools"", ""edx-toggles"", ""django-multi-email-field"", ""django-celery-results"", ""django-dynamic-filenames"", ""django-taggit"", ""django-extensions"", ""django-compressor"", ""code-annotations"", ""social-auth-app-django"", ""edx-django-release-util"", ""edx-django-sites-extensions"", ""django-waffle"", ""django-countries"", ""edx-auth-backends"", ""django-filter"", ""django-debug-toolbar"", ""django-autocomplete-light"", ""edx-django-utils"", ""edx-rest-api-client"", ""django-appconf"", ""xss-utils"", ""django-config-models"", ""edx-drf-extensions""]",False,,True,False,True,False,False,False,True,True,True,False,False,True,True,True,False,False,True,True,False,True,True,245,"{""total_duration"": ""12132 minutes 29 seconds"", ""checks"": [{""name"": ""check migrations (ubuntu-22.04, 3.12)"", ""duration"": ""3 minutes 18 seconds""}, {""name"": ""upgrade_requirements (3.12)"", ""duration"": ""2 minutes 7 seconds""}, {""name"": ""upgrade_requirements (3.12)"", ""duration"": ""1 minutes 46 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2015-11-09 20:57:54,master,Service providing access to consolidated course and program metadata,44175,194,True,False,False,False,False,False,False,2026-06-08 01:16:49,GNU AGPLv3,26,True,1810,0,57087,9385,7915,4799823,1415,False,True,False,False,True,False,False,,openedx,20,"['https://github.com/openedx/course-discovery/blob/master/pytest=no-xdist.ini: 404', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://github.com/openedx/course-discovery/workflows/Python%20CI/badge.svg?branch=master: 404']",True,"['https://django-elasticsearch-dsl.readthedocs.io/en/latest/management.html', 'https://github.com/pytest-dev/pytest-xdist', 'https://docs.python.org/3/library/pdb.html', 'https://github.com/openedx/course-discovery/blob/master/pytest.ini', 'https://github.com/pytest-dev/pytest/issues/390', 'https://edx-discovery.readthedocs.io/en/latest/', 'https://github.com/openedx/course-discovery/tree/master/docs', 'https://github.com/openedx/course-discovery/blob/master/LICENSE', 'https://discuss.openedx.org', 'https://github.com/openedx/course-discovery/issues', 'https://openedx.slack.com/', 'https://github.com/openedx/devstack', 'https://github.com/openedx/course-discovery/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/openedx/course-discovery/coverage.svg?branch=master', 'https://codecov.io/github/openedx/course-discovery?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/course-discovery.svg']",True,True,False,False,,,True,2026-04-08,2024-09-09,9,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/license-manager,,,,True,2026-06-08,True,True,False,False,173,0,[],0,,0,0,,,106,"[""django==5.2.14"", ""rpds-py==2026.5.1"", ""jsonschema==4.26.0"", ""edx-toggles==6.0.0"", ""dnspython==2.8.0"", ""six==1.17.0"", ""social-auth-core==4.9.1"", ""click-repl==0.3.0"", ""django-durationwidget==1.0.5"", ""oauthlib==3.3.1"", ""djangorestframework==3.17.1"", ""pynacl==1.6.2"", ""semantic-version==2.10.0"", ""celery==5.6.3"", ""cryptography==48.0.0"", ""edx-braze-client==0.2.5"", ""referencing==0.37.0"", ""gevent==26.5.0"", ""django-celery-results==2.6.0"", ""python-dateutil==2.9.0.post0"", ""requests==2.34.2"", ""ply==3.11"", ""code-annotations==3.0.0"", ""edx-django-utils==8.0.1"", ""django-filter==25.2"", ""drf-jwt==1.19.2"", ""django-waffle==5.0.0"", ""analytics-python==1.4.post1"", ""greenlet==3.5.1"", ""tinycss2==1.4.0"", ""edx-drf-extensions==10.6.0"", ""click-didyoumean==0.3.1"", ""jinja2==3.1.6"", ""tzlocal==5.3.1"", ""billiard==4.2.4"", ""uritemplate==4.2.0"", ""pyjwt[crypto]==2.13.0"", ""certifi==2026.5.20"", ""vine==5.1.0"", ""django-log-request-id==2.1.2"", ""zipp==4.1.0"", ""social-auth-app-django==5.9.0"", ""amqp==5.3.1"", ""python3-openid==3.2.0"", ""pymemcache==4.0.0"", ""cffi==2.0.0"", ""edx-celeryutils==2.0.0"", ""django-autocomplete-light==4.0.1"", ""zope-event==6.2"", ""packaging==26.2"", ""click==8.4.1"", ""pycparser==3.0"", ""pytz==2026.2"", ""sqlparse==0.5.5"", ""backoff==1.10.0"", ""redis==8.0.0"", ""kombu==5.6.2"", ""asgiref==3.11.1"", ""inflection==0.5.1"", ""python-slugify==8.0.4"", ""typing-extensions==4.15.0"", ""botocore==1.43.18"", ""drf-spectacular==0.29.0"", ""charset-normalizer==3.4.7"", ""mysqlclient==2.2.8"", ""bleach[css]==6.3.0"", ""boto3==1.43.18"", ""djangorestframework-csv==3.0.2"", ""rules==3.5"", ""edx-opaque-keys==4.0.0"", ""attrs==26.1.0"", ""idna==3.17"", ""pyyaml==6.0.3"", ""requests-oauthlib==2.0.0"", ""django-extensions==4.1"", ""markupsafe==3.0.3"", ""stevedore==5.8.0"", ""jsonfield==3.2.0"", ""psutil==7.2.2"", ""jmespath==1.1.0"", ""django-simple-history==3.11.0"", ""edx-auth-backends==5.0.0"", ""edx-rbac==3.0.0"", ""text-unidecode==1.3"", ""simplejson==4.1.1"", ""defusedxml==0.7.1"", ""gunicorn==26.0.0"", ""urllib3==2.7.0"", ""django-cors-headers==4.9.0"", ""click-plugins==1.1.1.2"", ""zope-interface==8.5"", ""s3transfer==0.18.0"", ""wcwidth==0.7.0"", ""django-crum==0.7.9"", ""prompt-toolkit==3.0.52"", ""edx-rest-api-client==7.0.0"", ""tzdata==2026.2"", ""webencodings==0.5.1"", ""monotonic==1.6"", ""djangoql==0.19.1"", ""jsonschema-specifications==2025.9.1"", ""django-model-utils==5.0.0"", ""drf-nested-routers==0.95.0"", ""pymongo==4.17.0"", ""python-memcached==1.62"", ""django-ses==4.7.2""]",173,"[""django==5.2.14"", ""rpds-py==2026.5.1"", ""typeguard==4.5.2"", ""pylint-celery==0.3"", ""jsonschema==4.26.0"", ""edx-toggles==6.0.0"", ""dnspython==2.8.0"", ""six==1.17.0"", ""social-auth-core==4.9.1"", ""click-repl==0.3.0"", ""django-durationwidget==1.0.5"", ""pathlib2==2.3.7.post1"", ""imagesize==2.0.0"", ""edx-lint==6.1.0"", ""mccabe==0.7.0"", ""oauthlib==3.3.1"", ""restructuredtext-lint==2.0.2"", ""djangorestframework==3.17.1"", ""pynacl==1.6.2"", ""semantic-version==2.10.0"", ""platformdirs==4.10.0"", ""celery==5.6.3"", ""wheel==0.47.0"", ""cryptography==48.0.0"", ""edx-braze-client==0.2.5"", ""alabaster==1.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""polib==1.2.0"", ""pytest==9.0.3"", ""beautifulsoup4==4.14.3"", ""lxml[html-clean]==6.1.1"", ""edx-i18n-tools==2.0.0"", ""referencing==0.37.0"", ""sphinx==9.1.0"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-applehelp==2.0.0"", ""gevent==26.5.0"", ""roman-numerals==4.1.0"", ""django-celery-results==2.6.0"", ""python-dateutil==2.9.0.post0"", ""requests==2.34.2"", ""ply==3.11"", ""code-annotations==3.0.0"", ""babel==2.18.0"", ""edx-django-utils==8.0.1"", ""pylint-django==2.7.0"", ""django-filter==25.2"", ""drf-jwt==1.19.2"", ""faker==40.19.1"", ""django-waffle==5.0.0"", ""pip-tools==7.5.3"", ""analytics-python==1.4.post1"", ""snowballstemmer==3.1.0"", ""tinycss2==1.4.0"", ""greenlet==3.5.1"", ""edx-drf-extensions==10.6.0"", ""click-didyoumean==0.3.1"", ""jinja2==3.1.6"", ""tzlocal==5.3.1"", ""isort==8.0.1"", ""readme-renderer==44.0"", ""soupsieve==2.8.4"", ""billiard==4.2.4"", ""uritemplate==4.2.0"", ""build==1.5.0"", ""coverage[toml]==7.14.1"", ""pyjwt[crypto]==2.13.0"", ""certifi==2026.5.20"", ""vine==5.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""django-log-request-id==2.1.2"", ""zipp==4.1.0"", ""social-auth-app-django==5.9.0"", ""pywatchman==3.0.0"", ""amqp==5.3.1"", ""python3-openid==3.2.0"", ""pymemcache==4.0.0"", ""cffi==2.0.0"", ""edx-celeryutils==2.0.0"", ""pip==26.1.2"", ""django-autocomplete-light==4.0.1"", ""zope-event==6.2"", ""packaging==26.2"", ""click==8.4.1"", ""accessible-pygments==0.0.5"", ""pycparser==3.0"", ""pytz==2026.2"", ""sqlparse==0.5.5"", ""backoff==1.10.0"", ""redis==8.0.0"", ""kombu==5.6.2"", ""pygments==2.20.0"", ""diff-cover==4.0.0"", ""asgiref==3.11.1"", ""inflection==0.5.1"", ""python-slugify==8.0.4"", ""typing-extensions==4.15.0"", ""botocore==1.43.18"", ""drf-spectacular==0.29.0"", ""nh3==0.3.5"", ""charset-normalizer==3.4.7"", ""mysqlclient==2.2.8"", ""bleach[css]==6.3.0"", ""boto3==1.43.18"", ""djangorestframework-csv==3.0.2"", ""rules==3.5"", ""edx-opaque-keys==4.0.0"", ""pytest-cov==7.1.0"", ""django-debug-toolbar==6.3.0"", ""attrs==26.1.0"", ""more-itertools==11.1.0"", ""factory-boy==3.3.3"", ""tomlkit==0.15.0"", ""docutils==0.21.2"", ""idna==3.17"", ""pyyaml==6.0.3"", ""requests-oauthlib==2.0.0"", ""django-extensions==4.1"", ""markupsafe==3.0.3"", ""stevedore==5.8.0"", ""sphinxcontrib-qthelp==2.0.0"", ""jsonfield==3.2.0"", ""psutil==7.2.2"", ""jmespath==1.1.0"", ""django-simple-history==3.11.0"", ""doc8==2.0.0"", ""edx-auth-backends==5.0.0"", ""pydocstyle==6.3.0"", ""edx-rbac==3.0.0"", ""astroid==4.0.4"", ""text-unidecode==1.3"", ""jinja2-pluralize==0.3.0"", ""click-log==0.4.0"", ""simplejson==4.1.1"", ""defusedxml==0.7.1"", ""pylint==4.0.5"", ""iniconfig==2.3.0"", ""pyproject-hooks==1.2.0"", ""gunicorn==26.0.0"", ""urllib3==2.7.0"", ""pylint-plugin-utils==0.9.0"", ""django-cors-headers==4.9.0"", ""setuptools==82.0.1"", ""click-plugins==1.1.1.2"", ""zope-interface==8.5"", ""s3transfer==0.18.0"", ""wcwidth==0.7.0"", ""dill==0.4.1"", ""django-crum==0.7.9"", ""prompt-toolkit==3.0.52"", ""edx-rest-api-client==7.0.0"", ""pluggy==1.6.0"", ""django-dynamic-fixture==4.0.1"", ""tzdata==2026.2"", ""monotonic==1.6"", ""webencodings==0.5.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""djangoql==0.19.1"", ""pycodestyle==2.14.0"", ""jsonschema-specifications==2025.9.1"", ""django-model-utils==5.0.0"", ""drf-nested-routers==0.95.0"", ""path==16.14.0"", ""ddt==1.7.2"", ""pymongo==4.17.0"", ""freezegun==1.5.5"", ""python-memcached==1.62"", ""lxml-html-clean==0.4.5"", ""sphinx-book-theme==1.2.0"", ""pytest-django==4.12.0"", ""django-ses==4.7.2"", ""inflect==7.5.0""]",22,"[""edx-i18n-tools"", ""djangorestframework"", ""code-annotations"", ""edx-rbac"", ""pylint-django"", ""django-autocomplete-light"", ""edx-drf-extensions"", ""django-debug-toolbar"", ""social-auth-app-django"", ""django-extensions"", ""edx-django-utils"", ""edx-auth-backends"", ""django-celery-results"", ""pytest-django"", ""django-cors-headers"", ""factory-boy"", ""django-waffle"", ""edx-celeryutils"", ""edx-opaque-keys"", ""edx-rest-api-client"", ""django-filter"", ""edx-toggles""]",32,"[""edx-i18n-tools"", ""django-model-utils"", ""djangorestframework"", ""code-annotations"", ""edx-rbac"", ""django-crum"", ""pylint-django"", ""django-simple-history"", ""django-autocomplete-light"", ""jsonfield"", ""django-ses"", ""edx-drf-extensions"", ""django-debug-toolbar"", ""social-auth-app-django"", ""django-extensions"", ""edx-django-utils"", ""edx-auth-backends"", ""django-celery-results"", ""pytest-django"", ""django-cors-headers"", ""factory-boy"", ""django-waffle"", ""edx-celeryutils"", ""djangorestframework-csv"", ""rules"", ""drf-nested-routers"", ""edx-opaque-keys"", ""edx-rest-api-client"", ""drf-jwt"", ""django-filter"", ""edx-toggles"", ""django-dynamic-fixture""]",18,"[""django-celery-results"", ""edx-i18n-tools"", ""django-cors-headers"", ""django-extensions"", ""edx-drf-extensions"", ""edx-toggles"", ""edx-celeryutils"", ""django-debug-toolbar"", ""django-waffle"", ""code-annotations"", ""edx-opaque-keys"", ""edx-rest-api-client"", ""django-filter"", ""social-auth-app-django"", ""edx-django-utils"", ""edx-rbac"", ""edx-auth-backends"", ""django-autocomplete-light""]",True,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,False,False,True,True,True,True,62,"{""total_duration"": ""9783 minutes 24 seconds"", ""checks"": [{""name"": ""tests (3.12, pinned)"", ""duration"": ""2 minutes 27 seconds""}, {""name"": ""tests (3.12, 5.2)"", ""duration"": ""2 minutes 19 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 37 seconds""}, {""name"": ""quality (3.12)"", ""duration"": ""1 minutes 13 seconds""}, {""name"": ""check migration for MySql8 (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2020-04-07 15:41:12,master,Django backend for managing licenses and subscriptions,2735,41,True,False,False,False,False,False,False,2026-06-08 03:15:30,GNU AGPLv3,4,True,0,0,537,525,8721,1190616,2501,True,True,False,False,True,False,False,,openedx,6,"['http://license-manager.readthedocs.io/en/latest/: 404', 'https://license-manager.readthedocs.io/en/latest/: 404', 'https://github.com/openedx/license-manager/tree/master/docs: 504', 'https://github.com/openedx/license-manager/blob/master/LICENSE: 404']",False,"['http://codecov.io/github/edx/license-manager/coverage.svg?branch=master', 'http://codecov.io/github/edx/license-manager?branch=master', 'https://github.com/openedx/devstack', 'https://github.com/openedx/license-manager/blob/master/docs/getting_started.rst', 'https://readthedocs.org/projects/license-manager/badge/?version=latest', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://openedx.slack.com/messages/general/', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/ccx-keys,,,,True,2026-06-08,True,True,False,False,49,0,[],0,,0,0,,,6,"[""dnspython==2.8.0"", ""pymongo==4.15.3"", ""stevedore==5.5.0"", ""edx-opaque-keys==3.0.0"", ""six==1.17.0"", ""typing-extensions==4.15.0""]",49,"[""dill==0.4.0"", ""platformdirs==4.5.0"", ""pylint-django==2.6.1"", ""mock==5.2.0"", ""pycodestyle==2.14.0"", ""dnspython==2.8.0"", ""pylint-plugin-utils==0.9.0"", ""tox==4.31.0"", ""ddt==1.7.2"", ""click-log==0.4.0"", ""distlib==0.4.0"", ""lazy-object-proxy==1.12.0"", ""pluggy==1.6.0"", ""pylint-celery==0.3"", ""pyproject-hooks==1.2.0"", ""mccabe==0.7.0"", ""python-slugify==8.0.4"", ""colorama==0.4.6"", ""iniconfig==2.3.0"", ""click==8.3.0"", ""pylint==3.3.9"", ""code-annotations==2.3.0"", ""six==1.17.0"", ""typing-extensions==4.15.0"", ""chardet==5.2.0"", ""setuptools==80.9.0"", ""text-unidecode==1.3"", ""coverage==7.11.0"", ""tomlkit==0.13.3"", ""jinja2==3.1.6"", ""isort==6.1.0"", ""edx-lint==5.6.0"", ""build==1.3.0"", ""astroid==3.3.11"", ""pymongo==4.15.3"", ""edx-opaque-keys==3.0.0"", ""pytest==8.4.2"", ""pip==25.2"", ""pip-tools==7.5.1"", ""virtualenv==20.35.3"", ""pyyaml==6.0.3"", ""filelock==3.20.0"", ""pygments==2.19.2"", ""wheel==0.45.1"", ""markupsafe==3.0.3"", ""stevedore==5.5.0"", ""packaging==25.0"", ""cachetools==6.2.1"", ""pyproject-api==1.10.0""]",3,"[""edx-opaque-keys"", ""code-annotations"", ""pylint-django""]",3,"[""edx-opaque-keys"", ""code-annotations"", ""pylint-django""]",2,"[""edx-opaque-keys"", ""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,False,True,13,"{""total_duration"": ""1 minutes 13 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 9 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, unittest)"", ""duration"": ""0 minutes 8 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2015-07-17 21:04:14,master,Opaque key implementation for the Custom Courses for EdX feature.,208,8,True,False,False,False,True,False,False,2026-05-30 13:49:33,GNU AGPLv3,8,True,0,0,0,0,1465,28669,0,True,True,False,False,True,False,False,,openedx,2,"['https://github.com/openedx/ccx-keys/actions/workflows/ci.yaml/badge.svg: 404', 'http://opaque-keys.readthedocs.org/en/latest/: 429']",False,"['http://code.edx.org/', 'https://github.com/edx/jenkins-job-dsl/actions/workflows/ci.yml', 'https://coveralls.io/repos/edx/ccx-keys/badge.svg', 'https://coveralls.io/r/edx/ccx-keys', 'https://github.com/openedx/opaque-keys', 'https://github.com/openedx/edx-platform/wiki/Opaque-Keys']",True,True,False,False,,,False,,,,False,False,False,True,,False,edx-ccx-keys,"['3', '3.12']",https://github.com/openedx/ccx-keys,False,True,True,False,False,False,False,False,False,[],[],,[] +openedx/xss-utils,,,,True,2026-06-08,True,True,False,False,84,0,[],0,,0,0,,,3,"[""sqlparse==0.5.5"", ""asgiref==3.11.1"", ""django==5.2.12""]",84,"[""readme-renderer==44.0"", ""platformdirs==4.9.4"", ""pluggy==1.6.0"", ""jinja2==3.1.6"", ""stevedore==5.7.0"", ""babel==2.18.0"", ""nh3==0.3.3"", ""snowballstemmer==3.0.1"", ""urllib3==2.6.3"", ""soupsieve==2.8.3"", ""isort==8.0.1"", ""python-discovery==1.1.1"", ""sqlparse==0.5.5"", ""accessible-pygments==0.0.5"", ""sphinx==9.1.0"", ""coverage[toml]==7.13.4"", ""iniconfig==2.3.0"", ""roman-numerals==4.1.0"", ""pygments==2.19.2"", ""sphinxcontrib-qthelp==2.0.0"", ""pylint-celery==0.3"", ""charset-normalizer==3.4.5"", ""pylint-django==2.7.0"", ""pydata-sphinx-theme==0.15.4"", ""six==1.17.0"", ""virtualenv==21.1.0"", ""requests==2.32.5"", ""dill==0.4.1"", ""wheel==0.46.3"", ""markupsafe==3.0.3"", ""sphinxcontrib-jsmath==1.0.1"", ""packaging==26.0"", ""restructuredtext-lint==2.0.2"", ""cachetools==7.0.3"", ""pyyaml==6.0.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pip-tools==7.5.3"", ""edx-lint==5.6.0"", ""lxml[html-clean]==6.0.2"", ""pydocstyle==6.3.0"", ""python-slugify==8.0.4"", ""beautifulsoup4==4.14.3"", ""edx-i18n-tools==1.9.0"", ""doc8==2.0.0"", ""pip==26.0.1"", ""certifi==2026.2.25"", ""path==16.16.0"", ""asgiref==3.11.1"", ""mccabe==0.7.0"", ""pytest==9.0.2"", ""django==5.2.12"", ""pyproject-api==1.10.0"", ""idna==3.11"", ""tox==4.49.0"", ""docutils==0.21.2"", ""typing-extensions==4.15.0"", ""pycodestyle==2.14.0"", ""click-log==0.4.0"", ""polib==1.2.0"", ""diff-cover==10.2.0"", ""build==1.4.0"", ""pylint==4.0.5"", ""pyproject-hooks==1.2.0"", ""tomli-w==1.2.0"", ""code-annotations==2.3.2"", ""chardet==7.0.1"", ""sphinx-book-theme==1.1.4"", ""setuptools==82.0.0"", ""pytest-django==4.12.0"", ""text-unidecode==1.3"", ""imagesize==2.0.0"", ""pytest-cov==7.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""alabaster==1.0.0"", ""pylint-plugin-utils==0.9.0"", ""colorama==0.4.6"", ""tomlkit==0.14.0"", ""distlib==0.4.0"", ""lxml-html-clean==0.4.4"", ""astroid==4.0.4"", ""click==8.3.1"", ""filelock==3.25.0""]",4,"[""edx-i18n-tools"", ""code-annotations"", ""pylint-django"", ""pytest-django""]",4,"[""edx-i18n-tools"", ""code-annotations"", ""pylint-django"", ""pytest-django""]",2,"[""edx-i18n-tools"", ""code-annotations""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,27,"{""total_duration"": ""37512 minutes 55 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 22 seconds""}]}",Other,2018-08-13 14:00:47,master, This repo contains utility functions for Django and Mako templates to remove potential XSS attacks in templates.,338,10,True,False,False,False,False,False,False,2026-03-30 20:41:16,GNU AGPLv3,3,True,0,0,0,0,3219,11775,0,True,True,False,False,True,False,False,,openedx,1,"['https://xss-utils.readthedocs.org: 404', 'http://xss-utils.readthedocs.io/en/latest/: 404', 'https://github.com/openedx/xss-utils/blob/master/LICENSE.txt: 404']",True,"['https://docs.openedx.org/en/latest/developers/references/developer_guide/preventing_xss/index.html', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/xss-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/xss-utils/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/xss-utils.svg', 'https://pypi.python.org/pypi/xss-utils/', 'https://github.com/openedx/xss-utils/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/xss-utils/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/xss-utils/coverage.svg?branch=master', 'http://codecov.io/github/edx/xss-utils?branch=master', 'https://readthedocs.org/projects/xss-utils/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/xss-utils.svg', 'https://img.shields.io/github/license/edx/xss-utils.svg']",True,True,False,False,,,False,,,,False,True,False,True,,False,xss-utils,"['3', '3.12']",https://github.com/openedx/xss-utils,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-aspects,,,,False,2026-06-08,True,True,False,False,14,0,,0,{},3,11,"{""@edx/browserslist-config"": ""^1.5.0"", ""@testing-library/jest-dom"": ""^6.9.1"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/jest"": ""^29.5.14"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""jest"": ""^29"", ""nodemon"": ""^3.1.14"", ""tsc-alias"": ""^1.8.16"", ""turbo"": ""^2.9.2""}","{""@edx/openedx-atlas"": ""^0.7.0"", ""@superset-ui/embedded-sdk"": ""^0.3.0"", ""react-helmet"": ""^6.1.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": ""6117 minutes 19 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2026-05-28 13:40:16,main,,397,1,True,False,False,False,False,False,False,2026-06-03 18:35:55,GNU AGPLv3,3,True,0,0,243,1300,1830,0,0,False,False,False,False,False,False,False,,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-aspects: 404'],True,"['https://github.com/openedx/frontend-app-aspects.git', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-aspects/issues', 'https://github.com/openedx/frontend-base', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-base/blob/main/docs/how_tos/i18n.rst', 'https://openedx.org/slack', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-aspects.svg', 'https://github.com/openedx/frontend-app-aspects/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-aspects/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-aspects/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-aspects/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-aspects?branch=main']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/acid-block,,,,True,2026-06-08,True,True,False,False,45,0,[],0,,0,0,,,14,"[""lazy==1.6"", ""mako==1.3.10"", ""appdirs==1.4.4"", ""lxml==6.0.2"", ""python-dateutil==2.9.0.post0"", ""pyyaml==6.0.3"", ""simplejson==3.20.2"", ""fs==2.4.16"", ""webob==1.8.9"", ""web-fragments==3.1.0"", ""xblock==5.3.0"", ""pytz==2025.2"", ""markupsafe==3.0.3"", ""six==1.17.0""]",45,"[""isort==7.0.0"", ""pylint==4.0.4"", ""setuptools==80.9.0"", ""pylint-plugin-utils==0.9.0"", ""webob==1.8.9"", ""click==8.3.1"", ""jinja2==3.1.6"", ""pylint-django==2.7.0"", ""text-unidecode==1.3"", ""code-annotations==2.3.0"", ""markupsafe==3.0.3"", ""pytz==2025.2"", ""pip-tools==7.5.2"", ""pyyaml==6.0.3"", ""python-dateutil==2.9.0.post0"", ""platformdirs==4.5.1"", ""pytest-cov==7.0.0"", ""build==1.4.0"", ""pygments==2.19.2"", ""click-log==0.4.0"", ""iniconfig==2.3.0"", ""mccabe==0.7.0"", ""pylint-celery==0.3"", ""python-slugify==8.0.4"", ""tomlkit==0.14.0"", ""lazy==1.6"", ""pip==25.3"", ""simplejson==3.20.2"", ""coverage[toml]==7.13.1"", ""dill==0.4.0"", ""xblock==5.3.0"", ""wheel==0.45.1"", ""web-fragments==3.1.0"", ""six==1.17.0"", ""mako==1.3.10"", ""appdirs==1.4.4"", ""astroid==4.0.3"", ""lxml==6.0.2"", ""stevedore==5.6.0"", ""fs==2.4.16"", ""pytest==9.0.2"", ""pyproject-hooks==1.2.0"", ""pluggy==1.6.0"", ""edx-lint==5.6.0"", ""packaging==25.0""]",4,"[""pylint-django"", ""xblock"", ""web-fragments"", ""code-annotations""]",4,"[""pylint-django"", ""xblock"", ""web-fragments"", ""code-annotations""]",3,"[""xblock"", ""web-fragments"", ""code-annotations""]",False,,False,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,False,False,True,True,True,9,"{""total_duration"": ""1 minutes 7 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2014-02-13 15:54:08,master,An XBlock for testing XBlock Runtimes,176,23,True,False,False,False,False,False,False,2026-06-02 03:44:36,GNU AGPLv3,8,False,671,0,679,8037,1846,19477,0,False,True,False,True,True,False,True,,openedx,2,[],False,[],True,True,False,False,,,False,,,,False,False,False,True,,False,acid-xblock,"['3', '3.11', '3.12']",https://github.com/openedx/acid-block,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/DoneXBlock,,,,True,2026-06-08,True,True,False,False,121,0,[],0,,0,0,,,16,"[""mako==1.3.12"", ""simplejson==4.1.1"", ""xblock==6.1.0"", ""asgiref==3.11.1"", ""lxml==6.1.1"", ""appdirs==1.4.4"", ""pytz==2026.2"", ""web-fragments==4.0.0"", ""python-dateutil==2.9.0.post0"", ""six==1.17.0"", ""fs==2.4.16"", ""django==5.2.14"", ""markupsafe==3.0.3"", ""sqlparse==0.5.5"", ""webob==1.8.9"", ""pyyaml==6.0.3""]",121,"[""cffi==2.0.0"", ""appdirs==1.4.4"", ""wheel==0.47.0"", ""mdurl==0.1.2"", ""alabaster==1.0.0"", ""nh3==0.3.5"", ""botocore==1.43.18"", ""keyring==25.7.0"", ""simplejson==4.1.1"", ""coveralls==4.1.0"", ""text-unidecode==1.3"", ""charset-normalizer==3.4.7"", ""code-annotations==3.0.0"", ""pip-tools==7.5.3"", ""polib==1.2.0"", ""urllib3==2.7.0"", ""mako==1.3.12"", ""jaraco-functools==4.5.0"", ""setuptools==82.0.1"", ""binaryornot==0.6.0"", ""docutils==0.23"", ""babel==2.18.0"", ""arrow==1.4.0"", ""rfc3986==2.0.0"", ""sphinx==9.1.0"", ""cachetools==7.1.4"", ""build==1.5.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""astroid==4.0.4"", ""id==1.6.1"", ""readme-renderer==44.0"", ""pypng==0.20220715.0"", ""pylint-django==2.7.0"", ""pylint-plugin-utils==0.9.0"", ""mccabe==0.7.0"", ""s3transfer==0.18.0"", ""annotated-doc==0.0.4"", ""accessible-pygments==0.0.5"", ""edx-i18n-tools==2.0.0"", ""dill==0.4.1"", ""python-dateutil==2.9.0.post0"", ""lxml[html-clean]==6.1.1"", ""iniconfig==2.3.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pyproject-hooks==1.2.0"", ""boto3==1.43.18"", ""docutils==0.22.4"", ""isort==8.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tzdata==2026.2"", ""platformdirs==4.10.0"", ""sphinxcontrib-qthelp==2.0.0"", ""pylint==4.0.5"", ""imagesize==2.0.0"", ""markdown-it-py==4.2.0"", ""pygments==2.20.0"", ""fs==2.4.16"", ""pyyaml==6.0.3"", ""lxml==6.1.1"", ""roman-numerals==4.1.0"", ""fs-s3fs==1.1.1"", ""pycodestyle==2.14.0"", ""tomlkit==0.15.0"", ""lxml-html-clean==0.4.5"", ""xblock==6.1.0"", ""asgiref==3.11.1"", ""cookiecutter==2.7.1"", ""xblock-sdk==0.14.0"", ""path==16.16.0"", ""requests-toolbelt==1.0.0"", ""sqlparse==0.5.5"", ""typing-extensions==4.15.0"", ""rich==15.0.0"", ""ddt==1.7.2"", ""pytz==2026.2"", ""click==8.4.1"", ""jinja2==3.1.6"", ""shellingham==1.5.4"", ""pydata-sphinx-theme==0.16.1"", ""webob==1.8.9"", ""python-discovery==1.4.0"", ""pip==26.1.2"", ""typer==0.26.4"", ""python-slugify==8.0.4"", ""twine==6.2.0"", ""certifi==2026.5.20"", ""django==5.2.14"", ""more-itertools==11.1.0"", ""tox==4.55.0"", ""pylint-celery==0.3"", ""snowballstemmer==3.1.0"", ""cryptography==48.0.0"", ""web-fragments==4.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""tomli-w==1.2.0"", ""colorama==0.4.6"", ""jaraco-classes==3.4.0"", ""pytest==9.0.3"", ""six==1.17.0"", ""secretstorage==3.5.0"", ""filelock==3.29.0"", ""jaraco-context==6.1.2"", ""distlib==0.4.0"", ""requests==2.34.2"", ""pluggy==1.6.0"", ""beautifulsoup4==4.14.3"", ""virtualenv==21.4.2"", ""sphinx-book-theme==1.2.0"", ""idna==3.17"", ""soupsieve==2.8.4"", ""pycparser==3.0"", ""jmespath==1.1.0"", ""click-log==0.4.0"", ""coverage[toml]==7.14.1"", ""packaging==26.2"", ""jeepney==0.9.0"", ""pyproject-api==1.10.1"", ""edx-lint==6.1.0"", ""stevedore==5.8.0""]",6,"[""web-fragments"", ""xblock"", ""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""xblock-sdk""]",6,"[""web-fragments"", ""xblock"", ""pylint-django"", ""code-annotations"", ""edx-i18n-tools"", ""xblock-sdk""]",5,"[""web-fragments"", ""xblock"", ""code-annotations"", ""edx-i18n-tools"", ""xblock-sdk""]",False,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,False,True,True,False,True,False,True,40,"{""total_duration"": ""3351 minutes 32 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""Analyze (javascript)"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""Tests (3.12, quality)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""Tests (3.12, django42)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (3.12, django52)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2017-07-07 16:01:04,master,An XBlock for students to mark they've finished something. ,655,25,True,False,False,False,False,False,False,2026-06-08 00:54:05,GNU AGPLv3,4,True,2185,290,1526,1496,3794,11612,367,True,True,False,False,True,False,False,,openedx,0,"['https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/DoneXBlock: 404']",True,"['https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/DoneXBlock/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/DoneXBlock/actions/workflows/ci.yml', 'https://github.com/openedx/DoneXBlock/actions/workflows/pypi-release.yml/badge.svg', 'https://github.com/openedx/DoneXBlock/actions/workflows/pypi-release.yml', 'https://img.shields.io/badge/status-maintained-31c653', 'https://openedx.org/r/xblock', 'https://docs.tutor.edly.io/configuration.html', 'https://discuss.openedx.org', 'https://github.com/openedx/DoneXBlock/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,done-xblock,"['3', '3.12']",https://github.com/openedx/DoneXBlock,True,True,True,False,False,False,False,False,False,[],[],['gettext'],[] +openedx/edx-val,,,,True,2026-06-08,False,False,False,False,125,0,[],0,,0,0,,,120,"[""coveralls==4.1.0"", ""chardet==7.1.0"", ""propcache==0.4.1"", ""click-log==0.4.0"", ""boto3==1.42.66"", ""cffi==1.17.1"", ""pylint-django==2.7.0"", ""code-annotations==2.3.2"", ""requests-toolbelt==1.0.0"", ""pytest==9.0.2"", ""docutils==0.22.4"", ""typing-extensions==4.15.0"", ""annotated-doc==0.0.4"", ""pillow==12.1.1"", ""tomlkit==0.14.0"", ""coverage[toml]==7.13.4"", ""filelock==3.25.2"", ""pydocstyle==6.3.0"", ""readme-renderer==44.0"", ""jmespath==1.1.0"", ""distlib==0.4.0"", ""diff-cover==10.2.0"", ""keyring==25.7.0"", ""pluggy==1.6.0"", ""annotated-types==0.7.0"", ""pyproject-api==1.10.0"", ""multidict==6.7.1"", ""certifi==2026.2.25"", ""pyyaml==6.0.3"", ""ddt==1.7.2"", ""platformdirs==4.9.4"", ""colorama==0.4.6"", ""edx-opaque-keys==3.1.0"", ""pydantic-core==2.41.5"", ""semantic-version==2.10.0"", ""edx-lint==5.6.0"", ""setuptools==81.0.0"", ""pact-python==2.3.3"", ""python-discovery==1.1.3"", ""pycparser==3.0"", ""packaging==26.0"", ""jaraco-context==6.1.1"", ""yarl==1.23.0"", ""pyjwt[crypto]==2.11.0"", ""typer==0.24.1"", ""rich==14.3.3"", ""drf-jwt==1.19.2"", ""pygments==2.19.2"", ""psutil==7.2.2"", ""edx-django-utils==8.0.1"", ""pylint==4.0.5"", ""pymongo==4.16.0"", ""urllib3==2.6.3"", ""iniconfig==2.3.0"", ""pylint-celery==0.3"", ""astroid==4.0.4"", ""sqlparse==0.5.5"", ""mock==5.2.0"", ""fastapi==0.135.1"", ""jaraco-classes==3.4.0"", ""pylint-plugin-utils==0.9.0"", ""charset-normalizer==3.4.5"", ""markdown-it-py==4.0.0"", ""edx-drf-extensions==10.6.0"", ""markupsafe==3.0.3"", ""djangorestframework==3.16.1"", ""nh3==0.3.3"", ""id==1.6.1"", ""rfc3986==2.0.0"", ""python-slugify==8.0.4"", ""dill==0.4.1"", ""django==5.2.12"", ""h11==0.16.0"", ""appdirs==1.4.4"", ""six==1.17.0"", ""botocore==1.42.66"", ""mccabe==0.7.0"", ""typing-inspection==0.4.2"", ""django-model-utils==5.0.0"", ""virtualenv==21.2.0"", ""jeepney==0.9.0"", ""jinja2==3.1.6"", ""edx-django-release-util==1.5.0"", ""asgiref==3.11.1"", ""python-dateutil==2.9.0.post0"", ""twine==6.2.0"", ""more-itertools==10.8.0"", ""lxml==6.0.2"", ""requests==2.32.5"", ""pydantic==2.12.5"", ""isort==8.0.1"", ""cryptography==46.0.0"", ""stevedore==5.7.0"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""starlette==0.52.1"", ""cachetools==7.0.5"", ""anyio==4.12.1"", ""jaraco-functools==4.4.0"", ""dnspython==2.8.0"", ""fs==2.4.16"", ""edx-toggles==5.4.1"", ""shellingham==1.5.4"", ""mdurl==0.1.2"", ""snowballstemmer==3.0.1"", ""tox==4.49.1"", ""responses==0.26.0"", ""uvicorn==0.41.0"", ""pytest-cov==7.0.0"", ""tomli-w==1.2.0"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""s3transfer==0.16.0"", ""click==8.3.1"", ""django-storages==1.14.6"", ""pysrt==1.1.2"", ""pytest-django==4.12.0"", ""secretstorage==3.5.0"", ""idna==3.11"", ""pynacl==1.6.0""]",125,"[""coveralls==4.1.0"", ""chardet==7.1.0"", ""propcache==0.4.1"", ""click-log==0.4.0"", ""boto3==1.42.66"", ""cffi==1.17.1"", ""pylint-django==2.7.0"", ""code-annotations==2.3.2"", ""requests-toolbelt==1.0.0"", ""pytest==9.0.2"", ""docutils==0.22.4"", ""typing-extensions==4.15.0"", ""annotated-doc==0.0.4"", ""pillow==12.1.1"", ""wheel==0.46.3"", ""pyproject-hooks==1.2.0"", ""tomlkit==0.14.0"", ""coverage[toml]==7.13.4"", ""filelock==3.25.2"", ""pydocstyle==6.3.0"", ""readme-renderer==44.0"", ""jmespath==1.1.0"", ""distlib==0.4.0"", ""diff-cover==10.2.0"", ""keyring==25.7.0"", ""pluggy==1.6.0"", ""pip==26.0.1"", ""annotated-types==0.7.0"", ""pyproject-api==1.10.0"", ""multidict==6.7.1"", ""certifi==2026.2.25"", ""pyyaml==6.0.3"", ""ddt==1.7.2"", ""platformdirs==4.9.4"", ""colorama==0.4.6"", ""edx-opaque-keys==3.1.0"", ""pydantic-core==2.41.5"", ""semantic-version==2.10.0"", ""edx-lint==5.6.0"", ""setuptools==81.0.0"", ""build==1.4.0"", ""pact-python==2.3.3"", ""python-discovery==1.1.3"", ""pycparser==3.0"", ""packaging==26.0"", ""pip-tools==7.5.3"", ""jaraco-context==6.1.1"", ""yarl==1.23.0"", ""pyjwt[crypto]==2.11.0"", ""typer==0.24.1"", ""rich==14.3.3"", ""drf-jwt==1.19.2"", ""pygments==2.19.2"", ""psutil==7.2.2"", ""edx-django-utils==8.0.1"", ""pylint==4.0.5"", ""pymongo==4.16.0"", ""urllib3==2.6.3"", ""iniconfig==2.3.0"", ""pylint-celery==0.3"", ""astroid==4.0.4"", ""sqlparse==0.5.5"", ""mock==5.2.0"", ""fastapi==0.135.1"", ""jaraco-classes==3.4.0"", ""pylint-plugin-utils==0.9.0"", ""charset-normalizer==3.4.5"", ""markdown-it-py==4.0.0"", ""edx-drf-extensions==10.6.0"", ""markupsafe==3.0.3"", ""djangorestframework==3.16.1"", ""nh3==0.3.3"", ""id==1.6.1"", ""rfc3986==2.0.0"", ""python-slugify==8.0.4"", ""dill==0.4.1"", ""django==5.2.12"", ""h11==0.16.0"", ""appdirs==1.4.4"", ""six==1.17.0"", ""botocore==1.42.66"", ""mccabe==0.7.0"", ""typing-inspection==0.4.2"", ""django-model-utils==5.0.0"", ""virtualenv==21.2.0"", ""jeepney==0.9.0"", ""jinja2==3.1.6"", ""edx-django-release-util==1.5.0"", ""asgiref==3.11.1"", ""python-dateutil==2.9.0.post0"", ""twine==6.2.0"", ""more-itertools==10.8.0"", ""lxml==6.0.2"", ""requests==2.32.5"", ""pydantic==2.12.5"", ""isort==8.0.1"", ""cryptography==46.0.0"", ""stevedore==5.7.0"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""starlette==0.52.1"", ""cachetools==7.0.5"", ""anyio==4.12.1"", ""jaraco-functools==4.4.0"", ""dnspython==2.8.0"", ""fs==2.4.16"", ""edx-toggles==5.4.1"", ""shellingham==1.5.4"", ""mdurl==0.1.2"", ""snowballstemmer==3.0.1"", ""tox==4.49.1"", ""responses==0.26.0"", ""uvicorn==0.41.0"", ""pytest-cov==7.0.0"", ""tomli-w==1.2.0"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""s3transfer==0.16.0"", ""click==8.3.1"", ""django-storages==1.14.6"", ""pysrt==1.1.2"", ""pytest-django==4.12.0"", ""secretstorage==3.5.0"", ""idna==3.11"", ""pynacl==1.6.0""]",11,"[""edx-toggles"", ""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils"", ""djangorestframework"", ""pytest-django"", ""django-storages"", ""pylint-django"", ""edx-django-release-util"", ""django-waffle"", ""code-annotations""]",14,"[""edx-toggles"", ""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils"", ""djangorestframework"", ""pytest-django"", ""django-model-utils"", ""django-crum"", ""django-storages"", ""drf-jwt"", ""pylint-django"", ""edx-django-release-util"", ""django-waffle"", ""code-annotations""]",7,"[""edx-toggles"", ""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils"", ""edx-django-release-util"", ""django-waffle"", ""code-annotations""]",False,,True,False,True,False,False,False,True,True,True,False,True,False,True,True,True,True,True,False,True,True,True,52,"{""total_duration"": ""2106 minutes 46 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 55 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 20 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Pact Provider Verification"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2014-07-08 20:11:27,master,,1670,37,True,False,False,False,False,False,False,2026-06-05 03:28:00,GNU AGPLv3,5,True,0,0,0,0,3841,374378,0,True,True,False,False,True,False,False,,openedx,4,"['http://www.example.com/example_mobile_video.mp4: 404', 'http://www.example.com/example_desktop_video.mp4: 404']",False,[],True,True,False,False,,,False,,,,False,True,False,True,,False,edxval,"['3', '3.12']",http://github.com/openedx/edx-val,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-lint,,,,True,2026-06-08,True,True,False,False,49,0,[],0,,0,0,,,20,"[""pylint-django==2.7.0"", ""jinja2==3.1.6"", ""isort==8.0.1"", ""astroid==4.0.4"", ""pylint-celery==0.3"", ""tomlkit==0.14.0"", ""six==1.17.0"", ""pylint-plugin-utils==0.9.0"", ""platformdirs==4.9.6"", ""markupsafe==3.0.3"", ""pyyaml==6.0.3"", ""click-log==0.4.0"", ""dill==0.4.1"", ""stevedore==5.7.0"", ""code-annotations==3.0.0"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""pylint==4.0.5"", ""click==8.3.3"", ""python-slugify==8.0.4""]",49,"[""filelock==3.29.0"", ""build==1.4.4"", ""python-discovery==1.2.2"", ""pluggy==1.6.0"", ""pyproject-api==1.10.0"", ""pylint-django==2.7.0"", ""jinja2==3.1.6"", ""pip==26.0.1"", ""tomli-w==1.2.0"", ""tox==4.53.0"", ""coverage==7.13.5"", ""pyproject-hooks==1.2.0"", ""isort==8.0.1"", ""astroid==4.0.4"", ""pylint-celery==0.3"", ""tomlkit==0.14.0"", ""cachetools==7.0.6"", ""asgiref==3.11.1"", ""six==1.17.0"", ""pip-tools==7.5.3"", ""wheel==0.47.0"", ""wheel==0.45.1"", ""pylint-plugin-utils==0.9.0"", ""platformdirs==4.9.6"", ""markupsafe==3.0.3"", ""pyyaml==6.0.3"", ""distlib==0.4.0"", ""virtualenv==21.2.4"", ""sqlparse==0.5.5"", ""click-log==0.4.0"", ""setuptools==82.0.1"", ""dill==0.4.1"", ""pygments==2.20.0"", ""stevedore==5.7.0"", ""colorama==0.4.6"", ""code-annotations==3.0.0"", ""tox==3.28.0"", ""setuptools==79.0.0"", ""packaging==26.1"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""pylint==4.0.5"", ""click==8.3.3"", ""tox-battery==0.6.2"", ""python-slugify==8.0.4"", ""py==1.11.0"", ""pytest==9.0.3"", ""pip==24.2"", ""iniconfig==2.3.0""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,30,"{""total_duration"": ""12319 minutes 17 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, pylint)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2015-01-29 05:14:33,master,Custom tooling for pylint and other repo management tools,2353,30,True,False,False,False,False,False,False,2026-06-08 04:33:52,Apache License 2.0,14,True,0,0,0,1281,1902,145338,0,False,False,False,False,True,False,False,,openedx,1,['https://open.edx.org/getting-help: 403'],True,"['https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/edx-lint/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-lint/actions?query=workflow%3A%22Python+CI%22']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-lint,[],https://github.com/openedx/edx-lint,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-platform,,,,True,2026-06-08,True,True,False,False,624,0,[],0,{},64,24,"{""@edx/stylelint-config-edx"": ""^2"", ""babel-jest"": ""^29"", ""jasmine-core"": ""2.99.1"", ""jasmine-jquery"": ""git+https://git@github.com/velesin/jasmine-jquery.git#ebad463d592d3fea00c69f26ea18a930e09c7b58"", ""jest"": ""^29"", ""karma"": ""^6.0.0"", ""karma-chrome-launcher"": ""^3"", ""karma-coverage"": ""^2"", ""karma-firefox-launcher"": ""^2"", ""karma-jasmine"": ""^1"", ""karma-jasmine-html-reporter"": ""^0.2"", ""karma-junit-reporter"": ""^2"", ""karma-requirejs"": ""^1"", ""karma-sourcemap-loader"": ""^0.4"", ""karma-spec-reporter"": ""^0.0"", ""karma-webpack"": ""^5"", ""plato"": ""^1"", ""react-test-renderer"": ""^16"", ""selenium-webdriver"": ""^4"", ""sinon"": ""^19"", ""squirejs"": ""^0.1"", ""string-replace-loader"": ""^3"", ""stylelint-formatter-pretty"": ""^4"", ""webpack-cli"": ""^5""}","{""@babel/core"": ""^7"", ""@babel/plugin-proposal-object-rest-spread"": ""^7"", ""@babel/plugin-transform-object-assign"": ""^7"", ""@babel/preset-env"": ""^7"", ""@babel/preset-react"": ""^7"", ""@edx/brand"": ""npm:@openedx/brand-openedx@^1"", ""@edx/edx-bootstrap"": ""^1"", ""@edx/edx-proctoring"": ""^4"", ""@edx/frontend-component-cookie-policy-banner"": ""2.2.0"", ""@edx/paragon"": ""^2"", ""@testing-library/jest-dom"": ""^6"", ""@testing-library/react"": ""^12"", ""@testing-library/user-event"": ""^12"", ""babel-loader"": ""^10.0.0"", ""babel-plugin-transform-class-properties"": ""^6"", ""babel-polyfill"": ""^6"", ""backbone"": ""^1"", ""backbone-associations"": ""^0.6"", ""backbone.paginator"": ""^2"", ""bootstrap"": ""4.0.0"", ""camelize"": ""^1"", ""classnames"": ""^2"", ""css-loader"": ""^7"", ""datatables"": ""^1"", ""datatables.net-fixedcolumns"": ""^5"", ""edx-ui-toolkit"": ""^1"", ""exports-loader"": ""^0.7.0"", ""file-loader"": ""^6"", ""font-awesome"": ""^4"", ""hls.js"": ""^1"", ""imports-loader"": ""^0.8"", ""jest-environment-jsdom"": ""^29"", ""jquery"": ""^2"", ""jquery-migrate"": ""^1"", ""jquery.scrollto"": ""^2"", ""js-cookie"": ""^3"", ""moment"": ""^2"", ""moment-timezone"": ""^0.6.0"", ""node-gyp"": ""^12.0.0"", ""popper.js"": ""^1"", ""prop-types"": ""^15"", ""raw-loader"": ""^0.5"", ""react"": ""^16"", ""react-dom"": ""^16"", ""react-focus-lock"": ""^2.0.0"", ""react-redux"": ""^5"", ""react-router-dom"": ""^5"", ""react-slick"": ""^0.31.0"", ""redux"": ""3.7.2"", ""redux-thunk"": ""2.2.0"", ""requirejs"": ""^2"", ""rtlcss"": ""^4"", ""sass"": ""^1"", ""sass-loader"": ""^16"", ""scriptjs"": ""^2"", ""style-loader"": ""^4"", ""svg-inline-loader"": ""^0.8"", ""uglify-js"": ""^3"", ""underscore"": ""^1"", ""underscore.string"": ""^3"", ""webpack"": ""^5"", ""webpack-bundle-tracker"": ""^3"", ""webpack-merge"": ""^6"", ""which-country"": ""^1""}",309,"[""django-ipware==7.0.1"", ""markupsafe==3.0.3"", ""tzlocal==5.3.1"", ""frozenlist==1.8.0"", ""fastavro==1.12.2"", ""edx-i18n-tools==2.0.0"", ""olxcleaner==0.3.0"", ""fonttools==4.63.0"", ""edx-celeryutils==2.0.0"", ""semantic-version==2.10.0"", ""python-slugify==8.0.4"", ""defusedxml==0.7.1"", ""edx-completion==5.0.0"", ""chardet==7.4.3"", ""pymongo==4.4.0"", ""gunicorn==26.0.0"", ""edx-drf-extensions==10.6.0"", ""packaging==26.2"", ""encutils==1.0.0"", ""tqdm==4.67.3"", ""asgiref==3.11.1"", ""edx-django-utils==8.0.1"", ""platformdirs==4.10.0"", ""xblock-google-drive==0.8.2"", ""idna==3.18"", ""aiosignal==1.4.0"", ""path==16.11.0"", ""lxml[html-clean]==5.3.2"", ""google-cloud-storage==3.11.0"", ""cachetools==7.1.4"", ""help-tokens==4.0.0"", ""celery==5.6.3"", ""edx-django-release-util==1.5.0"", ""protobuf==7.35.0"", ""redis==8.0.0"", ""acid-xblock==0.4.1"", ""aniso8601==10.0.1"", ""sortedcontainers==2.4.0"", ""anyio==4.13.0"", ""edxval==4.0.1"", ""pyrsistent==0.20.0"", ""attrs==26.1.0"", ""httpcore==1.0.9"", ""code-annotations==3.0.0"", ""openedx-django-pyfs==4.0.0"", ""oauthlib==3.3.1"", ""mongoengine==0.29.3"", ""tomlkit==0.15.0"", ""staff-graded-xblock==4.0.0"", ""python-swiftclient==4.10.0"", ""django-webpack-loader==3.2.4"", ""google-resumable-media==2.10.0"", ""django-model-utils==5.0.0"", ""amqp==5.3.1"", ""pyyaml==6.0.3"", ""tinycss2==1.4.0"", ""ora2==7.0.0"", ""path-py==12.5.0"", ""boto3==1.43.21"", ""edx-search==5.0.1"", ""nltk==3.9.4"", ""django-multi-email-field==0.8.0"", ""recommender-xblock==5.0.0"", ""pyuca==1.2"", ""sorl-thumbnail==13.0.0"", ""drf-yasg==1.21.15"", ""cryptography==48.0.0"", ""wcmatch==10.1"", ""django-method-override==1.0.4"", ""drf-spectacular==0.29.0"", ""tzdata==2026.2"", ""edx-when==4.0.0"", ""xblock-poll==1.15.1"", ""social-auth-app-django==5.4.1"", ""edx-event-bus-redis==1.0.0"", ""google-cloud-firestore==2.27.0"", ""jinja2==3.1.6"", ""edx-event-bus-kafka==6.1.0"", ""cachecontrol==0.14.4"", ""openedx-authz==1.16.0"", ""python3-saml==1.16.0"", ""msgpack==1.1.2"", ""enmerkar==0.7.1"", ""fs-s3fs==1.1.1"", ""babel==2.18.0"", ""mailsnake==1.6.4"", ""django-crum==0.7.9"", ""wrapt==2.2.1"", ""unicodecsv==0.14.1"", ""xss-utils==1.0.0"", ""pycasbin==2.8.0"", ""bleach[css]==6.3.0"", ""casbin-django-orm-adapter==1.7.0"", ""enterprise-integrated-channels==0.1.59"", ""grpcio-status==1.81.0"", ""s3transfer==0.18.0"", ""rules==3.5"", ""ipaddress==1.0.23"", ""openedx-calc==5.0.0"", ""pyparsing==3.3.2"", ""zipp==4.1.0"", ""icalendar==7.1.2"", ""elasticsearch==7.9.1"", ""django-config-models==3.0.0"", ""edx-api-doc-tools==3.0.0"", ""django-mysql==4.19.0"", ""soupsieve==2.8.4"", ""laboratory==1.0.2"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""nh3==0.3.5"", ""referencing==0.37.0"", ""six==1.17.0"", ""lazy==1.6"", ""pycparser==3.0"", ""requests==2.34.2"", ""xblock[django]==6.1.0"", ""python-ipware==3.0.0"", ""django-storages==1.14.6"", ""appdirs==1.4.4"", ""pydantic==2.13.4"", ""xblock-utils==4.0.0"", ""django-simple-history==3.11.0"", ""mysqlclient==2.2.8"", ""click==8.4.1"", ""uritemplate==4.2.0"", ""text-unidecode==1.3"", ""edx-organizations==8.0.0"", ""kiwisolver==1.5.0"", ""bcrypt==5.0.0"", ""codejail-includes==2.0.0"", ""django-user-tasks==4.0.0"", ""mpmath==1.3.0"", ""firebase-admin==7.4.0"", ""djangorestframework==3.17.1"", ""jmespath==1.1.0"", ""polib==1.2.0"", ""typesense==2.0.0"", ""scipy==1.17.1"", ""django-oauth-toolkit==1.7.1"", ""piexif==1.1.3"", ""importlib-metadata==9.0.0"", ""geoip2==5.2.0"", ""django-cache-memoize==0.2.1"", ""jsondiff==2.2.1"", ""wcwidth==0.7.0"", ""regex==2026.5.9"", ""social-auth-core==4.9.1"", ""sympy==1.14.0"", ""django-autocomplete-light==4.0.1"", ""asn1crypto==1.5.1"", ""sqlparse==0.5.5"", ""hpack==4.1.0"", ""markdown==3.10.2"", ""edx-ccx-keys==2.0.2"", ""propcache==0.5.2"", ""django-ses==4.7.2"", ""openedx-django-require==3.0.0"", ""event-tracking==4.0.2"", ""django==5.2.15"", ""django-pipeline==4.1.0"", ""edx-sga==0.28.0"", ""pynacl==1.6.2"", ""pydantic-core==2.46.4"", ""walrus==0.9.8"", ""h2==4.3.0"", ""django-countries==8.2.0"", ""stevedore==5.8.0"", ""edx-rbac==3.0.0"", ""typing-inspection==0.4.2"", ""pgpy==0.6.0"", ""meilisearch==0.41.0"", ""bridgekeeper==0.9"", ""edx-submissions==4.0.0"", ""jsonschema-specifications==2025.9.1"", ""django-cors-headers==4.9.0"", ""click-plugins==1.1.1.2"", ""requests-oauthlib==2.0.0"", ""openedx-django-wiki==3.1.1"", ""pyasn1==0.6.3"", ""botocore==1.43.21"", ""django-appconf==1.2.0"", ""simplejson==4.1.1"", ""googleapis-common-protos==1.75.0"", ""grpcio==1.81.0"", ""jsonfield==3.2.0"", ""typing-extensions==4.15.0"", ""edx-bulk-grades==2.0.0"", ""aiohappyeyeballs==2.6.2"", ""matplotlib==3.10.9"", ""done-xblock==3.0.0"", ""pyopenssl==26.2.0"", ""bracex==2.6"", ""tincan==1.0.0"", ""mako==1.3.12"", ""pynliner==0.8.0"", ""beautifulsoup4==4.14.3"", ""h11==0.16.0"", ""edx-milestones==2.0.0"", ""django-waffle==5.0.0"", ""html5lib==1.1"", ""inflection==0.5.1"", ""isodate==0.7.2"", ""sailthru-client==2.2.3"", ""web-fragments==4.0.0"", ""crowdsourcehinter-xblock==1.0.0"", ""annotated-types==0.7.0"", ""voluptuous==0.16.0"", ""xmlsec==1.3.14"", ""cssutils==2.15.0"", ""unicodeit==0.7.5"", ""more-itertools==11.1.0"", ""vine==5.1.0"", ""lti-consumer-xblock==11.3.1"", ""pyasn1-modules==0.4.2"", ""glob2==0.7"", ""aiohttp==3.14.0"", ""python-dateutil==2.9.0.post0"", ""joblib==1.5.3"", ""charset-normalizer==3.4.7"", ""analytics-python==1.4.post1"", ""shapely==2.1.2"", ""camel-converter[pydantic]==5.1.0"", ""jsonschema==4.26.0"", ""click-didyoumean==0.3.1"", ""django-fernet-fields-v2==0.9"", ""openedx-forum==0.4.3"", ""edx-proctoring==5.2.0"", ""snowflake-connector-python==4.6.0"", ""slumber==0.7.1"", ""django-sekizai==4.1.0"", ""google-crc32c==1.8.0"", ""edx-auth-backends==5.0.0"", ""fs==2.4.16"", ""super-csv==5.0.0"", ""django-celery-results==2.6.0"", ""prompt-toolkit==3.0.52"", ""edx-opaque-keys[django]==4.0.0"", ""cffi==2.0.0"", ""simpleeval==1.0.7"", ""nodeenv==1.10.0"", ""google-api-core[grpc]==2.31.0"", ""xblock-drag-and-drop-v2==5.0.6"", ""networkx==3.6.1"", ""yarl==1.24.2"", ""edx-ace==1.15.0"", ""hyperframe==6.1.0"", ""pylatexenc==2.10"", ""multidict==6.7.1"", ""drf-jwt==1.19.2"", ""edx-enterprise==8.0.16"", ""paramiko==5.0.0"", ""urllib3==2.7.0"", ""enmerkar-underscore==2.4.0"", ""testfixtures==12.0.0"", ""django-ratelimit==4.1.0"", ""pyjwt[crypto]==2.13.0"", ""contourpy==1.3.3"", ""google-cloud-core==2.6.0"", ""maxminddb==3.1.1"", ""wheel==0.47.0"", ""django-statici18n==2.7.1"", ""django-push-notifications==3.3.0"", ""openedx-filters==3.4.1"", ""pylti1p3==2.0.0"", ""optimizely-sdk==5.5.0"", ""rpds-py==2026.5.1"", ""psutil==7.2.2"", ""pytz==2026.2"", ""monotonic==1.6"", ""jwcrypto==1.5.7"", ""google-auth==2.53.0"", ""httpx[http2]==0.28.1"", ""cycler==0.12.1"", ""filelock==3.29.1"", ""edx-toggles==6.0.0"", ""pysrt==1.1.2"", ""billiard==4.2.4"", ""pillow==12.2.0"", ""django-object-actions==5.1.2"", ""edx-tincan-py35==2.0.0"", ""edx-rest-api-client==7.0.0"", ""lxml-html-clean==0.4.4"", ""numpy==1.26.4"", ""dnspython==2.8.0"", ""django-filter==25.2"", ""django-mptt==0.18.0"", ""random2==1.0.2"", ""webob==1.8.10"", ""openedx-events==11.2.0"", ""psycopg2-binary==2.9.12"", ""backoff==1.10.0"", ""click-repl==0.3.0"", ""webencodings==0.5.1"", ""openedx-core==1.1.0"", ""pycountry==26.2.16"", ""pymemcache==4.0.0"", ""djangorestframework-xml==2.0.0"", ""invoke==3.0.3"", ""edx-codejail==4.1.0"", ""xblocks-contrib==0.16.1"", ""chem==2.0.0"", ""kombu==5.6.2"", ""pycryptodomex==3.23.0"", ""certifi==2026.5.20"", ""proto-plus==1.28.0"", ""openedx-atlas==0.7.0"", ""edx-django-sites-extensions==6.0.0"", ""django-js-asset==3.1.2"", ""django-classy-tags==4.1.0""]",536,"[""django-ipware==7.0.1"", ""isort==8.0.1"", ""markupsafe==3.0.3"", ""tzlocal==5.3.1"", ""frozenlist==1.8.0"", ""fastavro==1.12.2"", ""pillow==11.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""edx-i18n-tools==2.0.0"", ""olxcleaner==0.3.0"", ""regex==2025.10.23"", ""setuptools==81.0.0"", ""roman-numerals==4.1.0"", ""fonttools==4.63.0"", ""mypy-extensions==1.1.0"", ""edx-celeryutils==2.0.0"", ""semantic-version==2.10.0"", ""openedx-calc==3.1.2"", ""scipy==1.15.2"", ""pytest-reportlog==1.0.0"", ""networkx==3.1"", ""python-slugify==8.0.4"", ""defusedxml==0.7.1"", ""edx-completion==5.0.0"", ""chardet==7.4.3"", ""pymongo==4.4.0"", ""gunicorn==26.0.0"", ""unidiff==0.7.5"", ""edx-drf-extensions==10.6.0"", ""mdurl==0.1.2"", ""packaging==26.2"", ""encutils==1.0.0"", ""py==1.11.0"", ""sphinx-mdinclude==0.6.2"", ""tqdm==4.67.3"", ""asgiref==3.11.1"", ""edx-django-utils==8.0.1"", ""sphinx-design==0.7.0"", ""pytest==8.2.0"", ""freezegun==1.5.5"", ""deepmerge==2.0"", ""platformdirs==4.10.0"", ""xblock-google-drive==0.8.2"", ""networkx==3.5"", ""idna==3.18"", ""importlib-resources==6.1.1"", ""six==1.16.0"", ""pyproject-api==1.10.1"", ""aiosignal==1.4.0"", ""path==16.11.0"", ""lxml[html-clean]==5.3.2"", ""google-cloud-storage==3.11.0"", ""cachetools==7.1.4"", ""coverage==7.14.1"", ""help-tokens==4.0.0"", ""celery==5.6.3"", ""edx-django-release-util==1.5.0"", ""protobuf==7.35.0"", ""redis==8.0.0"", ""regex==2024.9.11"", ""wrapt==1.17.3"", ""acid-xblock==0.4.1"", ""alabaster==1.0.0"", ""pydantic-settings==2.14.1"", ""aniso8601==10.0.1"", ""pycparser==2.22"", ""importlib-resources==6.4.0"", ""sortedcontainers==2.4.0"", ""anyio==4.13.0"", ""edxval==4.0.1"", ""pyrsistent==0.20.0"", ""attrs==26.1.0"", ""protobuf==6.33.6"", ""opentelemetry-instrumentation-threading==0.58b0"", ""regex==2023.12.25"", ""httpcore==1.0.9"", ""code-annotations==3.0.0"", ""openedx-django-pyfs==4.0.0"", ""oauthlib==3.3.1"", ""mongoengine==0.29.3"", ""pyparsing==3.2.0"", ""tomlkit==0.15.0"", ""staff-graded-xblock==4.0.0"", ""uvicorn==0.48.0"", ""numpy==1.22.4"", ""smmap==5.0.3"", ""httpx-sse==0.4.3"", ""python-swiftclient==4.10.0"", ""django-webpack-loader==3.2.4"", ""pytest-xdist[psutil]==3.8.0"", ""google-resumable-media==2.10.0"", ""networkx==3.4.2"", ""django-model-utils==5.0.0"", ""mccabe==0.7.0"", ""amqp==5.3.1"", ""pyyaml==6.0.3"", ""tinycss2==1.4.0"", ""pyparsing==3.1.1"", ""pact-python==3.4.0"", ""lxml[html-clean,html_clean]==5.3.2"", ""ora2==7.0.0"", ""types-pyyaml==6.0.12.20260518"", ""pillow==10.3.0"", ""path-py==12.5.0"", ""boto3==1.43.21"", ""edx-search==5.0.1"", ""nltk==3.9.4"", ""sphinxcontrib-qthelp==2.0.0"", ""django-multi-email-field==0.8.0"", ""recommender-xblock==5.0.0"", ""packaging==24.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pyuca==1.2"", ""sorl-thumbnail==13.0.0"", ""drf-yasg==1.21.15"", ""cryptography==48.0.0"", ""wcmatch==10.1"", ""contourpy==1.1.1"", ""pylint-celery==0.3"", ""pact-python-ffi==0.5.4.0"", ""django-method-override==1.0.4"", ""drf-spectacular==0.29.0"", ""fonttools==4.49.0"", ""tqdm==4.66.5"", ""tzdata==2026.2"", ""edx-when==4.0.0"", ""rich==15.0.0"", ""libsass==0.10.0"", ""xblock-poll==1.15.1"", ""social-auth-app-django==5.4.1"", ""edx-event-bus-redis==1.0.0"", ""google-cloud-firestore==2.27.0"", ""dill==0.4.1"", ""semgrep==1.164.0"", ""jinja2==3.1.6"", ""pyparsing==3.2.3"", ""pyquery==2.0.1"", ""mcp==1.23.3"", ""click-log==0.4.0"", ""pytest-django==4.12.0"", ""edx-event-bus-kafka==6.1.0"", ""pylint-plugin-utils==0.9.0"", ""cachecontrol==0.14.4"", ""openedx-authz==1.16.0"", ""python3-saml==1.16.0"", ""msgpack==1.1.2"", ""enmerkar==0.7.1"", ""watchdog==6.0.0"", ""faker==40.21.0"", ""fs-s3fs==1.1.1"", ""opentelemetry-exporter-otlp-proto-common==1.37.0"", ""babel==2.18.0"", ""mailsnake==1.6.4"", ""django-crum==0.7.9"", ""ruamel-yaml==0.19.1"", ""regex==2024.11.6"", ""numpy==1.24.4"", ""cffi==1.17.1"", ""scipy==1.7.3"", ""wrapt==2.2.1"", ""iniconfig==2.3.0"", ""unicodecsv==0.14.1"", ""tqdm==4.66.2"", ""pytest-metadata==3.1.1"", ""lxml-html-clean==0.4.2"", ""xss-utils==1.0.0"", ""pycasbin==2.8.0"", ""bleach[css]==6.3.0"", ""casbin-django-orm-adapter==1.7.0"", ""enterprise-integrated-channels==0.1.59"", ""pytest-json-report==1.5.0"", ""lxml==4.9.4"", ""grpcio-status==1.81.0"", ""s3transfer==0.18.0"", ""coverage[toml]==7.14.1"", ""rules==3.5"", ""ipaddress==1.0.23"", ""openedx-calc==5.0.0"", ""picobox==4.0.0"", ""pyparsing==3.3.2"", ""zipp==4.1.0"", ""icalendar==7.1.2"", ""elasticsearch==7.9.1"", ""packaging==25.0"", ""django-config-models==3.0.0"", ""edx-api-doc-tools==3.0.0"", ""django-mysql==4.19.0"", ""matplotlib==3.10.7"", ""soupsieve==2.8.4"", ""laboratory==1.0.2"", ""python3-openid==3.2.0 ; python_version >= \""3\"""", ""cryptography==47.0.0"", ""nh3==0.3.5"", ""referencing==0.37.0"", ""six==1.17.0"", ""click==8.1.6"", ""lazy==1.6"", ""sympy==1.13.3"", ""pip==26.1.2"", ""pycparser==3.0"", ""matplotlib==3.7.5"", ""requests==2.34.2"", ""xblock[django]==6.1.0"", ""python-ipware==3.0.0"", ""django-storages==1.14.6"", ""appdirs==1.4.4"", ""pydantic==2.13.4"", ""python-dotenv==1.2.2"", ""factory-boy==3.3.3"", ""xblock-utils==4.0.0"", ""pycparser==2.21"", ""cryptography==43.0.3"", ""accessible-pygments==0.0.5"", ""django-simple-history==3.11.0"", ""mysqlclient==2.2.8"", ""nltk==3.9.2"", ""cffi==1.16.0"", ""click==8.4.1"", ""joblib==1.5.2"", ""uritemplate==4.2.0"", ""text-unidecode==1.3"", ""edx-organizations==8.0.0"", ""kiwisolver==1.5.0"", ""bcrypt==5.0.0"", ""regex==2024.4.28"", ""codejail-includes==2.0.0"", ""django-user-tasks==4.0.0"", ""mpmath==1.3.0"", ""firebase-admin==7.4.0"", ""singledispatch==4.1.2"", ""fonttools==4.51.0"", ""djangorestframework==3.17.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""jmespath==1.1.0"", ""polib==1.2.0"", ""pytest-randomly==4.1.0"", ""typesense==2.0.0"", ""pluggy==1.6.0"", ""scipy==1.17.1"", ""django-oauth-toolkit==1.7.1"", ""pyparsing==3.1.2"", ""piexif==1.1.3"", ""importlib-metadata==8.7.1"", ""importlib-metadata==9.0.0"", ""kiwisolver==1.4.7"", ""geoip2==5.2.0"", ""django-cache-memoize==0.2.1"", ""pylint==4.0.5"", ""jsondiff==2.2.1"", ""wcwidth==0.7.0"", ""pip-tools==7.5.3"", ""regex==2026.5.9"", ""social-auth-core==4.9.1"", ""sympy==1.14.0"", ""django-autocomplete-light==4.0.1"", ""asn1crypto==1.5.1"", ""sqlparse==0.5.5"", ""hpack==4.1.0"", ""pathspec==1.1.1"", ""markdown==3.10.2"", ""face==26.0.0"", ""contourpy==1.3.2"", ""django-stubs-ext==6.0.5"", ""wcmatch==8.5.2"", ""edx-ccx-keys==2.0.2"", ""propcache==0.5.2"", ""cryptography==38.0.4"", ""python-dateutil==2.8.2"", ""django-ses==4.7.2"", ""openedx-django-require==3.0.0"", ""opentelemetry-instrumentation==0.58b0"", ""exceptiongroup==1.2.2"", ""event-tracking==4.0.2"", ""pillow==10.2.0"", ""kiwisolver==1.4.5"", ""django==5.2.15"", ""sphinxcontrib-jsmath==1.0.1"", ""django-pipeline==4.1.0"", ""edx-sga==0.28.0"", ""build==1.5.0"", ""pydantic-core==2.46.4"", ""pynacl==1.6.2"", ""codejail-includes==1.0.0"", ""packaging==24.0"", ""walrus==0.9.8"", ""h2==4.3.0"", ""zipp==3.17.0"", ""django-countries==8.2.0"", ""scipy==1.10.1"", ""stevedore==5.8.0"", ""edx-rbac==3.0.0"", ""typing-inspection==0.4.2"", ""grimp==3.14"", ""pgpy==0.6.0"", ""meilisearch==0.41.0"", ""matplotlib==3.9.2"", ""bridgekeeper==0.9"", ""edx-submissions==4.0.0"", ""jsonschema-specifications==2025.9.1"", ""django-cors-headers==4.9.0"", ""click-plugins==1.1.1.2"", ""requests-oauthlib==2.0.0"", ""fonttools==4.62.1"", ""openedx-django-wiki==3.1.1"", ""pyasn1==0.6.3"", ""botocore==1.43.21"", ""click-option-group==0.5.9"", ""django-appconf==1.2.0"", ""simplejson==4.1.1"", ""googleapis-common-protos==1.75.0"", ""grpcio==1.81.0"", ""jsonfield==3.2.0"", ""typing-extensions==4.15.0"", ""sphinx-reredirects==1.1.0"", ""fonttools==4.60.1"", ""pytest-cov==7.1.0"", ""edx-bulk-grades==2.0.0"", ""aiohappyeyeballs==2.6.2"", ""ruff==0.15.15"", ""matplotlib==3.10.9"", ""done-xblock==3.0.0"", ""pyopenssl==26.2.0"", ""bracex==2.6"", ""tincan==1.0.0"", ""contourpy==1.3.0"", ""mako==1.3.12"", ""pynliner==0.8.0"", ""click==8.3.0"", ""djangorestframework-stubs==3.16.9"", ""django-debug-toolbar==5.2.0"", ""beautifulsoup4==4.14.3"", ""h11==0.16.0"", ""tomli==2.4.1"", ""opentelemetry-api==1.37.0"", ""edx-milestones==2.0.0"", ""opentelemetry-exporter-otlp-proto-http==1.37.0"", ""tqdm==4.66.4"", ""pylint-pytest==1.1.8"", ""django-waffle==5.0.0"", ""html5lib==1.1"", ""inflection==0.5.1"", ""isodate==0.7.2"", ""sailthru-client==2.2.3"", ""pylint-django==2.7.0"", ""vulture==2.16"", ""web-fragments==4.0.0"", ""sse-starlette==3.4.4"", ""execnet==2.1.2"", ""virtualenv==21.4.2"", ""colorama==0.4.6"", ""boltons==21.0.0"", ""gitpython==3.1.50"", ""crowdsourcehinter-xblock==1.0.0"", ""annotated-types==0.7.0"", ""python-discovery==1.4.0"", ""voluptuous==0.16.0"", ""kiwisolver==1.4.8"", ""pywatchman==3.0.0"", ""xmlsec==1.3.14"", ""cssutils==2.15.0"", ""unicodeit==0.7.5"", ""more-itertools==11.1.0"", ""opentelemetry-proto==1.37.0"", ""tox==4.55.0"", ""vine==5.1.0"", ""lti-consumer-xblock==11.3.1"", ""pyasn1-modules==0.4.2"", ""gitdb==4.0.12"", ""pycparser==2.23"", ""glob2==0.7"", ""tomli-w==1.2.0"", ""pillow==12.0.0"", ""joblib==1.4.2"", ""aiohttp==3.14.0"", ""python-dateutil==2.9.0.post0"", ""joblib==1.5.3"", ""types-requests==2.33.0.20260518"", ""opentelemetry-util-http==0.58b0"", ""charset-normalizer==3.4.7"", ""analytics-python==1.4.post1"", ""shapely==2.1.2"", ""camel-converter[pydantic]==5.1.0"", ""pytest-attrib==0.1.3"", ""nltk==3.8.1"", ""jsonschema==4.26.0"", ""click-didyoumean==0.3.1"", ""sphinxcontrib-openapi==0.9.0"", ""mypy==1.19.1"", ""django-fernet-fields-v2==0.9"", ""openedx-forum==0.4.3"", ""edx-proctoring==5.2.0"", ""snowflake-connector-python==4.6.0"", ""import-linter==2.11"", ""fonttools==4.54.1"", ""slumber==0.7.1"", ""markupsafe==2.1.5"", ""fonttools==4.57.0"", ""django-sekizai==4.1.0"", ""glom==25.12.0"", ""google-crc32c==1.8.0"", ""pyproject-hooks==1.2.0"", ""edx-auth-backends==5.0.0"", ""fs==2.4.16"", ""super-csv==5.0.0"", ""django-celery-results==2.6.0"", ""prompt-toolkit==3.0.52"", ""edx-opaque-keys[django]==4.0.0"", ""cffi==2.0.0"", ""simpleeval==1.0.7"", ""nodeenv==1.10.0"", ""cryptography==44.0.2"", ""google-api-core[grpc]==2.31.0"", ""scipy==1.14.1"", ""xblock-drag-and-drop-v2==5.0.6"", ""sphinxcontrib-httpdomain==2.0.0"", ""python-multipart==0.0.30"", ""networkx==3.6.1"", ""yarl==1.24.2"", ""edx-ace==1.15.0"", ""hyperframe==6.1.0"", ""mock==5.2.0"", ""pygments==2.20.0"", ""pylatexenc==2.10"", ""sphinx-book-theme==1.2.0"", ""multidict==6.7.1"", ""sphinx==9.1.0"", ""drf-jwt==1.19.2"", ""starlette==1.2.1"", ""docutils==0.22.4"", ""edx-enterprise==8.0.16"", ""edx-lint==6.1.0"", ""paramiko==5.0.0"", ""matplotlib==3.10.1"", ""urllib3==2.7.0"", ""regex==2026.4.4"", ""enmerkar-underscore==2.4.0"", ""testfixtures==12.0.0"", ""django-ratelimit==4.1.0"", ""pyjwt[crypto]==2.13.0"", ""httpx==0.28.1"", ""snowballstemmer==3.1.1"", ""contourpy==1.3.3"", ""lxml-html-clean==0.4.3"", ""django-storage-swift==1.2.19"", ""google-cloud-core==2.6.0"", ""maxminddb==3.1.1"", ""jsonschema==4.25.1"", ""cryptography==45.0.7"", ""wheel==0.47.0"", ""opentelemetry-instrumentation-requests==0.58b0"", ""diff-cover==10.3.0"", ""django-statici18n==2.7.1"", ""django-push-notifications==3.3.0"", ""httpretty==1.1.4"", ""packaging==23.2"", ""zipp==3.18.1"", ""openedx-filters==3.4.1"", ""opentelemetry-sdk==1.37.0"", ""pylti1p3==2.0.0"", ""click==8.3.3"", ""optimizely-sdk==5.5.0"", ""cryptography==42.0.7"", ""rpds-py==2026.5.1"", ""psutil==7.2.2"", ""click==8.1.8"", ""chem==1.3.0"", ""markdown-it-py==4.2.0"", ""pytz==2026.2"", ""django-stubs[compatible-mypy]==5.2.9"", ""openedx-calc==4.0.2"", ""monotonic==1.6"", ""jwcrypto==1.5.7"", ""google-auth==2.53.0"", ""httpx[http2]==0.28.1"", ""cycler==0.12.1"", ""filelock==3.29.1"", ""edx-toggles==6.0.0"", ""pysrt==1.1.2"", ""sphinx-autoapi==3.6.0"", ""opentelemetry-semantic-conventions==0.58b0"", ""scipy==1.16.3"", ""sphinxext-rediraffe==0.3.0"", ""pillow==11.2.1"", ""billiard==4.2.4"", ""ddt==1.7.2"", ""pillow==12.2.0"", ""django-object-actions==5.1.2"", ""edx-tincan-py35==2.0.0"", ""edx-rest-api-client==7.0.0"", ""mistune==3.2.1"", ""sphinxcontrib-applehelp==2.0.0"", ""lxml-html-clean==0.4.4"", ""joblib==1.3.2"", ""pyjwt[crypto]==2.12.1"", ""imagesize==2.0.0"", ""numpy==1.26.4"", ""dnspython==2.8.0"", ""nltk==3.9.1"", ""django-filter==25.2"", ""django-mptt==0.18.0"", ""random2==1.0.2"", ""webob==1.8.10"", ""pydata-sphinx-theme==0.16.1"", ""openedx-events==11.2.0"", ""distlib==0.4.1"", ""sympy==1.12"", ""psycopg2-binary==2.9.12"", ""backoff==1.10.0"", ""tqdm==4.67.1"", ""click-repl==0.3.0"", ""webencodings==0.5.1"", ""openedx-core==1.1.0"", ""pycountry==26.2.16"", ""markupsafe==3.0.2"", ""librt==0.11.0"", ""pyparsing==3.2.5"", ""pymemcache==4.0.0"", ""chem==1.2.0"", ""djangorestframework-xml==2.0.0"", ""invoke==3.0.3"", ""kiwisolver==1.4.9"", ""edx-codejail==4.1.0"", ""astroid==4.0.4"", ""xblocks-contrib==0.16.1"", ""chem==2.0.0"", ""ruamel-yaml-clib==0.2.15"", ""kombu==5.6.2"", ""cssselect==1.4.0"", ""pycryptodomex==3.23.0"", ""certifi==2026.5.20"", ""proto-plus==1.28.0"", ""peewee==3.19.0"", ""openedx-atlas==0.7.0"", ""edx-django-sites-extensions==6.0.0"", ""django-js-asset==3.1.2"", ""django-classy-tags==4.1.0""]",62,"[""django-classy-tags"", ""django-config-models"", ""edx-search"", ""edx-django-release-util"", ""xblock-google-drive"", ""django-storages"", ""edx-organizations"", ""enmerkar-underscore"", ""django-countries"", ""edx-ace"", ""django-object-actions"", ""factory-boy"", ""edx-enterprise"", ""django-mysql"", ""edx-submissions"", ""edx-milestones"", ""djangorestframework"", ""xblock-utils"", ""django-sekizai"", ""django-waffle"", ""edx-when"", ""django-ratelimit"", ""pytest-django"", ""edx-celeryutils"", ""edx-bulk-grades"", ""event-tracking"", ""code-annotations"", ""django-webpack-loader"", ""super-csv"", ""edx-drf-extensions"", ""social-auth-app-django"", ""django-js-asset"", ""edx-proctoring"", ""edx-django-sites-extensions"", ""pylint-django"", ""help-tokens"", ""django-multi-email-field"", ""edx-rbac"", ""django-autocomplete-light"", ""django-user-tasks"", ""xss-utils"", ""django-cache-memoize"", ""edx-auth-backends"", ""edx-api-doc-tools"", ""edxval"", ""django-appconf"", ""lti-consumer-xblock"", ""edx-i18n-tools"", ""edx-django-utils"", ""edx-toggles"", ""edx-rest-api-client"", ""xblock-drag-and-drop-v2"", ""done-xblock"", ""django-debug-toolbar"", ""web-fragments"", ""django-oauth-toolkit"", ""django-filter"", ""django-celery-results"", ""django-cors-headers"", ""edx-completion"", ""django-pipeline"", ""staff-graded-xblock""]",81,"[""django-classy-tags"", ""django-model-utils"", ""edx-django-release-util"", ""xblock-google-drive"", ""enmerkar-underscore"", ""factory-boy"", ""edx-ace"", ""edx-milestones"", ""django-sekizai"", ""django-waffle"", ""django-storage-swift"", ""code-annotations"", ""django-statici18n"", ""django-ipware"", ""edx-rbac"", ""django-autocomplete-light"", ""django-user-tasks"", ""xss-utils"", ""django-appconf"", ""edx-toggles"", ""xblock-drag-and-drop-v2"", ""django-debug-toolbar"", ""django-oauth-toolkit"", ""drf-yasg"", ""staff-graded-xblock"", ""django-storages"", ""edx-organizations"", ""django-countries"", ""drf-jwt"", ""xblock-poll"", ""djangorestframework"", ""django-ses"", ""djangorestframework-xml"", ""edx-celeryutils"", ""super-csv"", ""django-simple-history"", ""social-auth-app-django"", ""django-js-asset"", ""enmerkar"", ""pylint-django"", ""rules"", ""edx-api-doc-tools"", ""edx-django-utils"", ""sorl-thumbnail"", ""django-filter"", ""django-method-override"", ""django-pipeline"", ""edx-sga"", ""django-mysql"", ""xblock-utils"", ""edx-bulk-grades"", ""django-crum"", ""django-multi-email-field"", ""django-mptt"", ""edx-i18n-tools"", ""bridgekeeper"", ""done-xblock"", ""web-fragments"", ""edx-completion"", ""django-config-models"", ""edx-search"", ""django-object-actions"", ""edx-enterprise"", ""edx-submissions"", ""django-ratelimit"", ""edx-when"", ""pytest-django"", ""event-tracking"", ""django-webpack-loader"", ""edx-drf-extensions"", ""edx-proctoring"", ""edx-django-sites-extensions"", ""help-tokens"", ""jsonfield"", ""django-cache-memoize"", ""edx-auth-backends"", ""edxval"", ""lti-consumer-xblock"", ""edx-rest-api-client"", ""django-celery-results"", ""django-cors-headers""]",52,"[""django-config-models"", ""edx-search"", ""edx-django-release-util"", ""xblock-google-drive"", ""edx-organizations"", ""enmerkar-underscore"", ""django-countries"", ""edx-ace"", ""edx-enterprise"", ""django-mysql"", ""edx-submissions"", ""edx-milestones"", ""xblock-utils"", ""django-sekizai"", ""django-waffle"", ""edx-when"", ""edx-celeryutils"", ""edx-bulk-grades"", ""event-tracking"", ""code-annotations"", ""django-webpack-loader"", ""super-csv"", ""edx-drf-extensions"", ""social-auth-app-django"", ""django-js-asset"", ""edx-proctoring"", ""edx-django-sites-extensions"", ""help-tokens"", ""django-multi-email-field"", ""edx-rbac"", ""django-autocomplete-light"", ""django-user-tasks"", ""xss-utils"", ""django-cache-memoize"", ""edx-auth-backends"", ""edx-api-doc-tools"", ""edxval"", ""django-appconf"", ""lti-consumer-xblock"", ""edx-i18n-tools"", ""edx-django-utils"", ""edx-toggles"", ""edx-rest-api-client"", ""xblock-drag-and-drop-v2"", ""done-xblock"", ""django-debug-toolbar"", ""web-fragments"", ""django-celery-results"", ""django-filter"", ""django-cors-headers"", ""edx-completion"", ""staff-graded-xblock""]",False,,True,True,True,True,False,True,True,True,True,True,False,True,True,True,False,False,True,False,True,True,True,265,"{""total_duration"": ""8 minutes 0 seconds"", ""checks"": [{""name"": ""pylint lms-2"", ""duration"": ""7 minutes 53 seconds""}, {""name"": ""pylint openedx-2"", ""duration"": ""6 minutes 58 seconds""}, {""name"": ""pylint openedx-1"", ""duration"": ""5 minutes 56 seconds""}, {""name"": ""pylint lms-1"", ""duration"": ""5 minutes 19 seconds""}, {""name"": ""pylint cms"", ""duration"": ""5 minutes 18 seconds""}, {""name"": ""pylint common"", ""duration"": ""5 minutes 0 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""4 minutes 29 seconds""}, {""name"": ""Analyze (javascript-typescript)"", ""duration"": ""3 minutes 59 seconds""}, {""name"": ""pylint xmodule"", ""duration"": ""3 minutes 45 seconds""}, {""name"": ""JS (ubuntu-latest, 20, 3.12)"", ""duration"": ""3 minutes 30 seconds""}, {""name"": ""Lint Python Imports"", ""duration"": ""1 minutes 46 seconds""}, {""name"": ""test (3.12)"", ""duration"": ""1 minutes 43 seconds""}, {""name"": ""Analyze (actions)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Verify __init__.py Files"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""Pylint checks successful"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2013-05-30 20:20:38,master,"The Open edX LMS & Studio, powering education sites around the world!",2311317,4300,True,False,False,False,False,False,False,2026-06-08 05:24:10,GNU AGPLv3,157,False,181797,0,1441391,5697092,8779,29548540,15393,False,False,False,False,False,False,False,,openedx,22,"['https://www.gnu.org/licenses/agpl-3.0: 403', 'https://openedx.org/get-started/: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/cla: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/openedx-platform/actions/workflows/unit-tests.yml/badge.svg', 'https://github.com/openedx/openedx-platform/actions/workflows/unit-tests.yml', 'https://img.shields.io/badge/status-maintained-31c653', 'https://openedx.org', 'https://docs.openedx.org/projects/edx-platform', 'https://github.com/openedx/codejail?tab=readme-ov-file', 'https://github.com/overhangio/tutor', 'https://docs.openedx.org/en/latest/site_ops/index.html', 'https://docs.tutor.edly.io/dev.html', 'https://github.com/openedx/frontend-app-learner-dashboard', 'https://github.com/openedx/frontend-app-learning/', 'https://github.com/openedx/frontend-app-authoring/', 'https://github.com/openedx/openedx-platform/blob/master/LICENSE', 'https://discuss.openedx.org', 'http://openedx.slack.com/', 'https://github.com/openedx/openedx-platform/issues', 'https://github.com/openedx/openedx-platform/issues/new/choose', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://backstage.openedx.org/catalog/default/component/openedx-platform']",True,True,False,True,.readthedocs.yaml,2,True,2026-05-07,2026-05-04,12,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],"['python-software-properties', 'pkg-config', 'gfortran', 'libatlas-dev', 'libblas-dev', 'liblapack-dev', 'liblapack3gf', 'curl', 'git', 'python-virtualenv', 'python-scipy', 'python-numpy', 'build-essential', 'python-dev', 'gfortran', 'libfreetype6-dev', 'libpng12-dev', 'libjpeg-dev', 'libtiff4-dev', 'zlib1g-dev', 'libxml2-dev', 'libxslt-dev', 'yui-compressor', 'graphviz', 'libgraphviz-dev', 'graphviz-dev', 'mysql-server', 'libmysqlclient-dev', 'libgeos-dev', 'libreadline6', 'libreadline6-dev', 'mongodb', 'nodejs', 'mysql-client', 'virtualenvwrapper', 'libgeos-ruby1.8', 'lynx-cur', 'libxmlsec1-dev', 'swig']",,[] +openedx/openedx-wordpress-ecommerce,,,,True,2026-06-08,True,True,False,False,46,0,[],0,,0,0,,,0,[],46,"[""starlette==1.0.0"", ""sphinx==9.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""websockets==16.0"", ""accessible-pygments==0.0.5"", ""h11==0.16.0"", ""click==8.3.2"", ""certifi==2026.2.25"", ""soupsieve==2.8.3"", ""sphinx-autobuild==2025.8.25"", ""anyio==4.13.0"", ""imagesize==2.0.0"", ""sphinx-copybutton==0.5.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""typing-extensions==4.15.0"", ""pip==26.0.1"", ""pip-tools==7.5.3"", ""sphinxcontrib-qthelp==2.0.0"", ""uvicorn==0.44.0"", ""beautifulsoup4==4.14.3"", ""pyyaml==6.0.3"", ""jinja2==3.1.6"", ""requests==2.33.1"", ""pygments==2.20.0"", ""wheel==0.46.3"", ""sphinxcontrib-jsmath==1.0.1"", ""babel==2.18.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""setuptools==82.0.1"", ""pyproject-hooks==1.2.0"", ""build==1.4.2"", ""alabaster==1.0.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-mermaid==2.0.1"", ""sphinxcontrib-applehelp==2.0.0"", ""roman-numerals==4.1.0"", ""docutils==0.22.4"", ""sphinx-book-theme==1.2.0"", ""pydata-sphinx-theme==0.16.1"", ""packaging==26.0"", ""urllib3==2.6.3"", ""idna==3.11"", ""snowballstemmer==3.0.1"", ""charset-normalizer==3.4.7"", ""colorama==0.4.6"", ""watchfiles==1.1.1""]",0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,True,False,False,False,False,False,True,True,14,"{""total_duration"": ""20812 minutes 5 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""build-test"", ""duration"": ""0 minutes 10 seconds""}]}",Other,2023-06-05 21:25:23,main,You can sell your Open edX courses with WooCommerce using this free and open-source WordPress plugin.,2187,13,True,False,False,False,False,False,False,2026-06-03 10:56:42,GNU GPLv2,2,False,2477,0,0,3746,1993,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/openedx/openedx-wordpress-ecommerce/issues: 504'],False,"['https://github.com/openedx/edx-platform', 'https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/decisions/0002-api-connection.html', 'https://openedx.org/terms-of-use/', 'https://wordpress.org/plugins/woocommerce', 'https://github.com/openedx/openedx-wordpress-ecommerce/releases', 'https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/plugin_quickstart.html', 'https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/index.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-admin-console,,,,False,2026-06-08,False,False,False,False,22,0,,0,{},12,10,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/typescript-config"": ""1.1.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/dom"": ""^10.4.1"", ""@testing-library/jest-dom"": ""^6.6.4"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""ts-jest"": ""^29.4.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-header"": ""^8.0.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.15.1"", ""@tanstack/react-query"": ""5.96.2"", ""lodash.debounce"": ""^4.0.8"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.1.2"", ""react-router-dom"": ""^6.30.3""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,6,"{""total_duration"": ""0 minutes 56 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 56 seconds""}]}",Other,2025-09-23 11:32:49,master,Administrator console for the Open edX application,1657,9,True,False,False,False,False,False,False,2026-06-08 00:47:12,GNU AGPLv3,6,True,0,0,457,744,1565,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/openedx/frontend-app-admin-console/blob/main/LICENSE: 404'],True,"['https://img.shields.io/github/license/openedx/frontend-app-admin-console.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-admin-console/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-admin-console/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-admin-console/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-admin-console?branch=main', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/openedx-authz', 'https://github.com/openedx/frontend-plugin-framework', 'https://openedx.atlassian.net/wiki/x/M4B4MgE', 'https://openedx.atlassian.net/wiki/x/AgAwMQE', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-29,2026-03-30,3,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-template-application,,,,False,2026-06-08,True,True,False,False,28,0,,0,{},19,9,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/reactifex"": ""^2.2.0"", ""@edx/stylelint-config-edx"": ""^2.3.3"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""14.6.3"", ""@testing-library/jest-dom"": ""^6.9.1"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""glob"": ""11.1.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/frontend-component-footer"": ""^14.9.2"", ""@edx/frontend-component-header"": ""^8.0.0"", ""@edx/frontend-platform"": ""^8.5.1"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/paragon"": ""^23.14.9"", ""@tanstack/react-query"": ""^5.90.5"", ""classnames"": ""^2.5.1"", ""core-js"": ""3.49.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""regenerator-runtime"": ""0.14.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,47,"{""total_duration"": ""26598 minutes 24 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""1 minutes 52 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 5 seconds""}]}",Other,2018-02-27 18:34:11,master,A template repository for creating Open edX frontend applications. 💿➡️📀,17444,63,True,False,False,False,False,False,False,2026-06-08 00:29:36,GNU AGPLv3,22,True,0,0,464,667,1565,0,0,False,False,False,False,False,False,False,@edx/frontend-template-application,openedx,0,"['https://openedx.slack.com/archives/C04BM6YC7A6: 429', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-application: 404', 'https://github.com/openedx/frontend-template-application/blob/main/LICENSE: 404']",True,"['https://github.com/openedx/paragon/?tab=readme-ov-file', 'https://github.com/openedx/brand-openedx/issues/23', 'https://github.com/openedx/frontend-template-application/tree/release/teak', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-template-application/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-template-application.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-template-application/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-template-application?branch=main']",True,True,False,False,,,True,2026-04-06,2025-10-20,6,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/typescript-config,,,,False,2026-06-08,False,False,False,False,0,0,,0,{},0,0,{},{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,False,False,True,3,"{""total_duration"": ""0 minutes 22 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 22 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 7 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 6 seconds""}]}",Other,2023-02-01 16:54:40,master,Common TypeScript configuration for Open edX,84,3,True,False,False,False,False,False,False,2026-05-20 13:18:07,GNU AGPLv3,1,True,0,0,0,0,0,0,0,False,False,False,False,False,False,False,@edx/typescript-config,openedx,0,"['https://www.npmjs.com/package/@edx/typescript-config: 403', 'https://www.npmjs.com/package/@edx/tpyescript-config: 403', 'https://github.com/openedx/typescript-config/blob/main/LICENSE: 504', 'https://github.com/semantic-release/semantic-release: 504']",False,"['https://github.com/openedx/typescript-config/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/typescript-config/actions/workflows/release.yml/', 'https://img.shields.io/npm/v/@edx/typescript-config.svg', 'https://img.shields.io/npm/dt/@edx/typescript-config.svg', 'https://img.shields.io/npm/l/@edx/typescript-config.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://www.typescriptlang.org/docs/handbook/tsconfig-json.html']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-plugin-aspects,,,,False,2026-06-08,False,False,False,False,21,0,,0,{},2,19,"{""@edx/browserslist-config"": ""^1.1.1"", ""@edx/eslint-config"": ""^4.3.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@openedx/frontend-build"": ""14.6.3"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.0.0"", ""@testing-library/user-event"": ""^14.6.1"", ""eslint"": ""^8.57.1"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-plugin-import"": ""^2.31.0"", ""eslint-plugin-jsx-a11y"": ""^6.10.2"", ""eslint-plugin-react"": ""^7.37.5"", ""eslint-plugin-react-hooks"": ""^4.6.2"", ""glob"": ""13.0.6"", ""husky"": ""9.1.7"", ""jest"": ""30.3.0"", ""react-test-renderer"": ""^18.3.1"", ""ts-jest"": ""^29.4.0"", ""typescript"": ""^4.9.5""}","{""@hookstate/core"": ""^4.0.2"", ""@superset-ui/embedded-sdk"": ""^0.3.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": ""20166 minutes 47 seconds"", ""checks"": [{""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}]}",Other,2025-03-21 15:08:32,main,Frontend plugins for Aspects,2479,6,True,False,False,False,False,False,False,2026-06-08 01:09:33,GNU AGPLv3,3,True,118,0,464,864,1351,0,0,False,False,False,False,False,False,False,,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-aspects: 404'],True,"['https://img.shields.io/github/license/openedx/frontend-plugin-aspects.svg', 'https://github.com/openedx/frontend-plugin-aspects/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-plugin-aspects/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-plugin-aspects/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-plugin-aspects/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-plugin-aspects?branch=main', 'https://github.com/openedx/tutor-contrib-aspects', 'https://github.com/openedx/frontend-app-authoring.git', 'https://github.com/openedx/frontend-plugin-aspects.git', 'https://nodemon.io', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-05-25,2026-05-25,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xblocks-core,,,,True,2026-06-08,True,True,False,False,133,0,[],0,{},0,0,{},{},78,"[""chem==2.0.0"", ""path==17.1.1"", ""typing-extensions==4.15.0"", ""djangorestframework==3.17.1"", ""django-waffle==5.0.0"", ""pytz==2026.2"", ""pymongo==4.17.0"", ""web-fragments==4.0.0"", ""lxml==6.1.1"", ""mako==1.3.12"", ""webencodings==0.5.1"", ""edxval==4.0.1"", ""markupsafe==3.0.3"", ""asgiref==3.11.1"", ""stevedore==5.8.0"", ""random2==1.0.2"", ""edx-drf-extensions==10.6.0"", ""simplejson==4.1.1"", ""pyparsing==3.3.2"", ""regex==2026.5.9"", ""defusedxml==0.7.1"", ""wrapt==2.2.1"", ""pyjwt[crypto]==2.13.0"", ""soupsieve==2.8.4"", ""sympy==1.14.0"", ""edx-toggles==6.0.0"", ""sqlparse==0.5.5"", ""django-model-utils==5.0.0"", ""jinja2==3.1.6"", ""edx-django-utils==8.0.1"", ""html5lib==1.1"", ""scipy==1.17.1"", ""idna==3.17"", ""mpmath==1.3.0"", ""dnspython==2.8.0"", ""click==8.4.1"", ""appdirs==1.4.4"", ""charset-normalizer==3.4.7"", ""semantic-version==2.10.0"", ""tqdm==4.67.3"", ""pycparser==3.0"", ""code-annotations==3.0.0"", ""nltk==3.9.4"", ""cachetools==7.1.4"", ""xblock==6.1.0"", ""pillow==12.2.0"", ""edx-django-release-util==1.5.0"", ""numpy==2.4.6"", ""shapely==2.1.2"", ""fs==2.4.16"", ""django-storages==1.14.6"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""edx-codejail==4.1.0"", ""requests==2.34.2"", ""pynacl==1.6.2"", ""edx-opaque-keys==4.0.0"", ""edx-submissions==4.0.0"", ""certifi==2026.5.20"", ""joblib==1.5.3"", ""psutil==7.2.2"", ""openedx-calc==5.0.0"", ""python-dateutil==2.9.0.post0"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""pysrt==1.1.2"", ""nh3==0.3.5"", ""urllib3==2.7.0"", ""django-crum==0.7.9"", ""jsonfield==3.2.0"", ""webob==1.8.9"", ""chardet==7.4.3"", ""django==5.2.14"", ""cffi==2.0.0"", ""drf-jwt==1.19.2"", ""oauthlib==3.3.1"", ""beautifulsoup4==4.14.3"", ""cryptography==48.0.0""]",133,"[""chem==2.0.0"", ""path==17.1.1"", ""typing-extensions==4.15.0"", ""djangorestframework==3.17.1"", ""django-waffle==5.0.0"", ""pytz==2026.2"", ""pymongo==4.17.0"", ""dill==0.4.1"", ""web-fragments==4.0.0"", ""pip==26.1.2"", ""sphinxcontrib-applehelp==2.0.0"", ""lxml==6.1.1"", ""alabaster==1.0.0"", ""isort==8.0.1"", ""mako==1.3.12"", ""webencodings==0.5.1"", ""click-log==0.4.0"", ""edxval==4.0.1"", ""markupsafe==3.0.3"", ""platformdirs==4.10.0"", ""pip-tools==7.5.3"", ""asgiref==3.11.1"", ""python-discovery==1.4.0"", ""pytest==9.0.3"", ""stevedore==5.8.0"", ""random2==1.0.2"", ""edx-drf-extensions==10.6.0"", ""astroid==4.0.4"", ""filelock==3.29.0"", ""simplejson==4.1.1"", ""sphinx-book-theme==1.2.0"", ""pyparsing==3.3.2"", ""regex==2026.5.9"", ""defusedxml==0.7.1"", ""mccabe==0.7.0"", ""edx-lint==6.1.0"", ""wrapt==2.2.1"", ""pyjwt[crypto]==2.13.0"", ""soupsieve==2.8.4"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sympy==1.14.0"", ""edx-toggles==6.0.0"", ""restructuredtext-lint==2.0.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sqlparse==0.5.5"", ""django-model-utils==5.0.0"", ""jinja2==3.1.6"", ""edx-django-utils==8.0.1"", ""html5lib==1.1"", ""tox==4.55.0"", ""scipy==1.17.1"", ""idna==3.17"", ""distlib==0.4.0"", ""mpmath==1.3.0"", ""dnspython==2.8.0"", ""click==8.4.1"", ""appdirs==1.4.4"", ""pylint==4.0.5"", ""charset-normalizer==3.4.7"", ""pygments==2.20.0"", ""semantic-version==2.10.0"", ""tomlkit==0.15.0"", ""imagesize==2.0.0"", ""pydocstyle==6.3.0"", ""tqdm==4.67.3"", ""pylint-django==2.7.0"", ""pycparser==3.0"", ""colorama==0.4.6"", ""code-annotations==3.0.0"", ""nltk==3.9.4"", ""cachetools==7.1.4"", ""snowballstemmer==3.1.0"", ""pycodestyle==2.14.0"", ""accessible-pygments==0.0.5"", ""xblock==6.1.0"", ""pillow==12.2.0"", ""edx-django-release-util==1.5.0"", ""pyproject-api==1.10.1"", ""numpy==2.4.6"", ""sphinx==9.1.0"", ""shapely==2.1.2"", ""build==1.5.0"", ""ddt==1.7.2"", ""fs==2.4.16"", ""doc8==2.0.0"", ""django-storages==1.14.6"", ""text-unidecode==1.3"", ""python-slugify==8.0.4"", ""edx-codejail==4.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""requests==2.34.2"", ""pynacl==1.6.2"", ""edx-opaque-keys==4.0.0"", ""pytest-django==4.12.0"", ""pyproject-hooks==1.2.0"", ""edx-submissions==4.0.0"", ""certifi==2026.5.20"", ""joblib==1.5.3"", ""docutils==0.21.2"", ""wheel==0.47.0"", ""coverage[toml]==7.14.1"", ""psutil==7.2.2"", ""openedx-calc==5.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""tomli-w==1.2.0"", ""python-dateutil==2.9.0.post0"", ""pylint-plugin-utils==0.9.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pyyaml==6.0.3"", ""pylint-celery==0.3"", ""six==1.17.0"", ""babel==2.18.0"", ""pysrt==1.1.2"", ""nh3==0.3.5"", ""urllib3==2.7.0"", ""django-crum==0.7.9"", ""jsonfield==3.2.0"", ""webob==1.8.9"", ""chardet==7.4.3"", ""django==5.2.14"", ""pytest-cov==7.1.0"", ""cffi==2.0.0"", ""drf-jwt==1.19.2"", ""pydata-sphinx-theme==0.16.1"", ""oauthlib==3.3.1"", ""roman-numerals==4.1.0"", ""setuptools==80.9.0"", ""beautifulsoup4==4.14.3"", ""iniconfig==2.3.0"", ""packaging==26.2"", ""virtualenv==21.4.2"", ""cryptography==48.0.0"", ""pluggy==1.6.0""]",15,"[""djangorestframework"", ""edx-django-release-util"", ""edx-submissions"", ""pylint-django"", ""pytest-django"", ""django-storages"", ""edx-opaque-keys"", ""edxval"", ""web-fragments"", ""code-annotations"", ""edx-toggles"", ""xblock"", ""edx-drf-extensions"", ""django-waffle"", ""edx-django-utils""]",19,"[""django-crum"", ""django-model-utils"", ""django-storages"", ""jsonfield"", ""edx-drf-extensions"", ""djangorestframework"", ""edx-submissions"", ""code-annotations"", ""edx-django-release-util"", ""drf-jwt"", ""pytest-django"", ""edx-opaque-keys"", ""edxval"", ""edx-toggles"", ""django-waffle"", ""edx-django-utils"", ""pylint-django"", ""web-fragments"", ""xblock""]",11,"[""edx-django-release-util"", ""edx-submissions"", ""edx-opaque-keys"", ""edxval"", ""web-fragments"", ""code-annotations"", ""edx-toggles"", ""xblock"", ""edx-drf-extensions"", ""django-waffle"", ""edx-django-utils""]",False,,True,True,True,False,False,True,True,True,True,True,False,True,True,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""6368 minutes 34 seconds"", ""checks"": [{""name"": ""Analyze (javascript-typescript)"", ""duration"": ""1 minutes 59 seconds""}, {""name"": ""Run JavaScript Tests (24)"", ""duration"": ""1 minutes 46 seconds""}, {""name"": ""Run Python Tests and Coverage (3.12, quality)"", ""duration"": ""1 minutes 28 seconds""}, {""name"": ""Run Python Tests and Coverage (3.12, docs)"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""Run Python Tests and Coverage (3.12, django42)"", ""duration"": ""1 minutes 21 seconds""}, {""name"": ""Run Python Tests and Coverage (3.12, django52)"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Analyze (actions)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2024-06-26 15:14:53,main,,22289,9,True,False,False,False,False,False,False,2026-06-08 07:09:58,GNU AGPLv3,6,False,389247,0,1373326,1707755,5025,1708301,0,False,False,False,False,False,False,False,,openedx,1,"['https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /software/gettext/manual/html_node/PO-Files.html (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))']",False,"['https://github.com/openedx/xblocks-extra', 'https://github.com/openedx/edx-ora2', 'https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html', 'https://github.com/openedx/i18n-tools', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html', 'https://github.com/openedx/openedx-translations', 'https://docs.openedx.org/en/latest/developers/concepts/oep58.html', 'https://developers.transifex.com/docs/cli', 'https://docs.djangoproject.com/en/5.2/topics/i18n/translation/']",True,True,False,True,.readthedocs.yaml,2,True,2026-04-01,,0,False,True,False,True,,False,xblocks-contrib,"['3', '3.12']",https://github.com/openedx/xblocks-contrib,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/credentials,,,,True,2026-06-08,True,True,False,False,236,0,[],0,{},14,21,"{""@babel/core"": ""7.29.0"", ""@babel/eslint-parser"": ""7.28.6"", ""@babel/plugin-proposal-object-rest-spread"": ""7.20.7"", ""@babel/plugin-transform-modules-commonjs"": ""7.28.6"", ""@babel/plugin-transform-object-assign"": ""7.27.1"", ""@babel/preset-env"": ""7.29.2"", ""@edx/eslint-config"": ""4.4.0"", ""babel-loader"": ""10.1.1"", ""eslint"": ""8.57.1"", ""eslint-plugin-import"": ""2.32.0"", ""eslint-plugin-jsx-a11y"": ""6.10.2"", ""jasmine-core"": ""6.1.0"", ""jasmine-jquery"": ""2.1.1"", ""karma"": ""6.4.4"", ""karma-coverage"": ""2.2.1"", ""karma-firefox-launcher"": ""2.1.3"", ""karma-jasmine"": ""5.1.0"", ""karma-jasmine-jquery-2"": ""0.1.1"", ""karma-spec-reporter"": ""0.0.36"", ""karma-webpack"": ""5.0.1"", ""webpack-cli"": ""6.0.1""}","{""@fortawesome/fontawesome-svg-core"": ""^6.7.2"", ""@fortawesome/free-brands-svg-icons"": ""^6.7.2"", ""@fortawesome/free-solid-svg-icons"": ""^6.7.2"", ""@openedx/paragon"": ""^23.3.1"", ""bi-app-sass"": ""1.1.0"", ""css-loader"": ""7.1.4"", ""css-minimizer-webpack-plugin"": ""7.0.4"", ""file-loader"": ""6.2.0"", ""mini-css-extract-plugin"": ""2.10.2"", ""sass"": ""1.99.0"", ""sass-loader"": ""16.0.7"", ""url-loader"": ""4.1.1"", ""webpack"": ""5.106.0"", ""webpack-bundle-tracker"": ""3.2.3""}",134,"[""django-sortedm2m==4.0.0"", ""polib==1.2.0"", ""pymemcache==4.0.0"", ""zope-event==6.1"", ""stevedore==5.6.0"", ""botocore==1.42.40"", ""backoff==2.2.1"", ""typing-extensions==4.15.0"", ""openedx-didkit==0.3.5"", ""edx-drf-extensions==10.6.0"", ""social-auth-app-django==5.4.3"", ""gevent==25.9.1"", ""django-ratelimit==4.1.0"", ""google-crc32c==1.8.0"", ""django-push-notifications==3.3.0"", ""boto3==1.42.40"", ""h11==0.16.0"", ""walrus==0.9.8"", ""django-appconf==1.2.0"", ""firebase-admin==7.1.0"", ""edx-ace==1.15.0"", ""pygments==2.19.2"", ""certifi==2026.1.4"", ""edx-rest-api-client==6.2.0"", ""code-annotations==2.3.0"", ""grpcio==1.76.0"", ""edx-auth-backends==4.6.2"", ""edx-django-utils==8.0.1"", ""uritemplate==4.2.0"", ""oauthlib==3.3.1"", ""psutil==7.2.2"", ""django-storages==1.14.6"", ""django-extensions==4.1"", ""django-filter==25.2"", ""defusedxml==0.7.1"", ""django-webpack-loader==3.2.3"", ""edx-opaque-keys[django]==3.0.0"", ""google-cloud-core==2.5.0"", ""google-api-core[grpc]==2.29.0"", ""google-resumable-media==2.8.0"", ""pyasn1-modules==0.4.2"", ""webencodings==0.5.1"", ""django-model-utils==5.0.0"", ""dnspython==2.8.0"", ""text-unidecode==1.3"", ""msgpack==1.1.2"", ""packaging==26.0"", ""edx-i18n-tools==1.9.0"", ""bleach==6.3.0"", ""django-config-models==2.9.0"", ""httpx[http2]==0.28.1"", ""python3-openid==3.2.0"", ""djangorestframework==3.16.1"", ""google-auth==2.48.0"", ""mysqlclient==2.2.7"", ""django-cors-headers==4.9.0"", ""sqlparse==0.5.5"", ""hyperframe==6.1.0"", ""coreapi==2.3.3"", ""fastavro==1.12.1"", ""drf-yasg==1.21.14"", ""markdown==3.10.1"", ""click==8.3.1"", ""itypes==1.2.0"", ""googleapis-common-protos==1.72.0"", ""edx-ccx-keys==2.0.2"", ""gunicorn==25.0.1"", ""lxml-html-clean==0.4.3"", ""asgiref==3.11.1"", ""charset-normalizer==3.4.4"", ""s3transfer==0.16.0"", ""django==5.2.11"", ""jmespath==1.1.0"", ""xss-utils==0.8.0"", ""python-slugify==8.0.4"", ""protobuf==6.33.5"", ""httpcore==1.0.9"", ""python-memcached==1.62"", ""django-simple-history==3.11.0"", ""django-crum==0.7.9"", ""h2==4.3.0"", ""segment-analytics-python==2.3.5"", ""zope-interface==8.2"", ""drf-jwt==1.19.2"", ""pynacl==1.6.2"", ""nodeenv==1.10.0"", ""sailthru-client==2.2.3"", ""semantic-version==2.10.0"", ""openedx-events==10.5.0"", ""redis==7.1.0"", ""grpcio-status==1.76.0"", ""django-statici18n==2.6.0"", ""google-cloud-firestore==2.23.0"", ""cffi==2.0.0"", ""anyio==4.12.1"", ""proto-plus==1.27.1"", ""simplejson==3.20.2"", ""social-auth-core==4.8.3"", ""path==16.16.0"", ""inflection==0.5.1"", ""pyjwt[crypto]==2.10.1"", ""django-ses==4.6.0"", ""attrs==25.4.0"", ""markupsafe==3.0.3"", ""pillow==12.1.0"", ""lxml[html-clean]==6.0.2"", ""google-cloud-storage==3.9.0"", ""django-rest-swagger==2.2.0"", ""requests-oauthlib==2.0.0"", ""edx-django-sites-extensions==5.1.0"", ""qrcode==8.2"", ""django-waffle==5.0.0"", ""requests==2.32.5"", ""edx-toggles==5.4.1"", ""pycparser==3.0"", ""greenlet==3.3.1"", ""pyasn1==0.6.2"", ""cachecontrol==0.14.4"", ""pymongo==4.16.0"", ""urllib3==2.6.3"", ""python-dateutil==2.9.0.post0"", ""pytz==2025.2"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""cryptography==46.0.4"", ""hpack==4.1.0"", ""coreschema==0.0.4"", ""edx-event-bus-kafka==6.1.0"", ""idna==3.11"", ""openapi-codec==1.3.2"", ""edx-django-release-util==1.5.0"", ""openedx-atlas==0.7.0"", ""rsa==4.9.1"", ""jinja2==3.1.6""]",201,"[""polib==1.2.0"", ""django-sortedm2m==4.0.0"", ""pymemcache==4.0.0"", ""zope-event==6.1"", ""stevedore==5.6.0"", ""sphinxcontrib-devhelp==2.0.0"", ""backoff==2.2.1"", ""botocore==1.42.40"", ""typing-extensions==4.15.0"", ""setuptools==80.10.2"", ""pywatchman==3.0.0 ; \""linux\"" in sys_platform"", ""openedx-didkit==0.3.5"", ""edx-drf-extensions==10.6.0"", ""social-auth-app-django==5.4.3"", ""gevent==25.9.1"", ""django-ratelimit==4.1.0"", ""google-crc32c==1.8.0"", ""filelock==3.20.3"", ""django-push-notifications==3.3.0"", ""h11==0.16.0"", ""pluggy==1.6.0"", ""walrus==0.9.8"", ""boto3==1.42.40"", ""edx-lint==5.6.0"", ""django-appconf==1.2.0"", ""firebase-admin==7.1.0"", ""edx-ace==1.15.0"", ""beautifulsoup4==4.14.3"", ""pygments==2.19.2"", ""certifi==2026.1.4"", ""edx-rest-api-client==6.2.0"", ""pylint-plugin-utils==0.9.0"", ""black==26.1.0"", ""code-annotations==2.3.0"", ""grpcio==1.76.0"", ""edx-auth-backends==4.6.2"", ""edx-django-utils==8.0.1"", ""uritemplate==4.2.0"", ""oauthlib==3.3.1"", ""psutil==7.2.2"", ""django-storages==1.14.6"", ""django-extensions==4.1"", ""django-filter==25.2"", ""defusedxml==0.7.1"", ""django-webpack-loader==3.2.3"", ""docutils==0.22.4"", ""wheel==0.46.3"", ""edx-opaque-keys[django]==3.0.0"", ""google-cloud-core==2.5.0"", ""librt==0.7.8"", ""google-api-core[grpc]==2.29.0"", ""pylint==4.0.4"", ""google-resumable-media==2.8.0"", ""pyasn1-modules==0.4.2"", ""snowballstemmer==3.0.1"", ""webencodings==0.5.1"", ""django-model-utils==5.0.0"", ""dnspython==2.8.0"", ""text-unidecode==1.3"", ""msgpack==1.1.2"", ""packaging==26.0"", ""edx-i18n-tools==1.9.0"", ""bleach==6.3.0"", ""django-config-models==2.9.0"", ""sphinxcontrib-applehelp==2.0.0"", ""httpx[http2]==0.28.1"", ""python3-openid==3.2.0"", ""djangorestframework==3.16.1"", ""soupsieve==2.8.3"", ""google-auth==2.48.0"", ""testfixtures==10.0.0"", ""mysqlclient==2.2.7"", ""cachetools==7.0.0"", ""sqlparse==0.5.5"", ""django-cors-headers==4.9.0"", ""hyperframe==6.1.0"", ""coreapi==2.3.3"", ""fastavro==1.12.1"", ""pyproject-api==1.10.0"", ""drf-yasg==1.21.14"", ""markdown==3.10.1"", ""click==8.3.1"", ""iniconfig==2.3.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""responses==0.25.8"", ""itypes==1.2.0"", ""django-debug-toolbar==6.2.0"", ""googleapis-common-protos==1.72.0"", ""isort==7.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-ccx-keys==2.0.2"", ""coverage==7.13.3"", ""gunicorn==25.0.1"", ""lxml-html-clean==0.4.3"", ""httpretty==1.1.4"", ""types-pyyaml==6.0.12.20250915"", ""asgiref==3.11.1"", ""charset-normalizer==3.4.4"", ""s3transfer==0.16.0"", ""django==5.2.11"", ""jmespath==1.1.0"", ""jsx-lexer==2.0.1"", ""xss-utils==0.8.0"", ""python-slugify==8.0.4"", ""protobuf==6.33.5"", ""ddt==1.7.2"", ""httpcore==1.0.9"", ""python-memcached==1.62"", ""pip-tools==7.5.2"", ""django-simple-history==3.11.0"", ""virtualenv==20.36.1"", ""django-crum==0.7.9"", ""h2==4.3.0"", ""alabaster==1.0.0"", ""tomlkit==0.14.0"", ""imagesize==1.4.1"", ""segment-analytics-python==2.3.5"", ""zope-interface==8.2"", ""distlib==0.4.0"", ""pydata-sphinx-theme==0.15.4"", ""drf-jwt==1.19.2"", ""pynacl==1.6.2"", ""pathspec==1.0.4"", ""nodeenv==1.10.0"", ""pytokens==0.4.1"", ""sailthru-client==2.2.3"", ""pyproject-hooks==1.2.0"", ""semantic-version==2.10.0"", ""openedx-events==10.5.0"", ""redis==7.1.0"", ""sphinx-book-theme==1.1.4"", ""grpcio-status==1.76.0"", ""accessible-pygments==0.0.5"", ""roman-numerals==4.1.0"", ""django-statici18n==2.6.0"", ""google-cloud-firestore==2.23.0"", ""cffi==2.0.0"", ""astroid==4.0.3"", ""anyio==4.12.1"", ""tox==4.34.1"", ""pip==25.3"", ""proto-plus==1.27.1"", ""simplejson==3.20.2"", ""social-auth-core==4.8.3"", ""path==16.16.0"", ""inflection==0.5.1"", ""build==1.4.0"", ""pyjwt[crypto]==2.10.1"", ""click-log==0.4.0"", ""attrs==25.4.0"", ""markupsafe==3.0.3"", ""pillow==12.1.0"", ""lxml[html-clean]==6.0.2"", ""google-cloud-storage==3.9.0"", ""django-ses==4.6.0"", ""factory-boy==3.3.3"", ""django-rest-swagger==2.2.0"", ""colorama==0.4.6"", ""pylint-celery==0.3"", ""pytest==9.0.2"", ""requests-oauthlib==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""mypy==1.19.1"", ""chardet==5.2.0"", ""edx-django-sites-extensions==5.1.0"", ""django-stubs==5.2.9"", ""platformdirs==4.5.1"", ""django-stubs-ext==5.2.9"", ""qrcode==8.2"", ""django-waffle==5.0.0"", ""requests==2.32.5"", ""edx-toggles==5.4.1"", ""mccabe==0.7.0"", ""pycparser==3.0"", ""pylint-django==2.7.0"", ""greenlet==3.3.1"", ""pyasn1==0.6.2"", ""cachecontrol==0.14.4"", ""dill==0.4.1"", ""pymongo==4.16.0"", ""urllib3==2.6.3"", ""python-dateutil==2.9.0.post0"", ""pytz==2025.2"", ""pyyaml==6.0.3"", ""six==1.17.0"", ""faker==40.1.2"", ""pytest-django==4.11.1"", ""cryptography==46.0.4"", ""hpack==4.1.0"", ""coreschema==0.0.4"", ""sphinx==9.1.0"", ""babel==2.18.0"", ""sphinxcontrib-qthelp==2.0.0"", ""edx-event-bus-kafka==6.1.0"", ""idna==3.11"", ""openapi-codec==1.3.2"", ""edx-django-release-util==1.5.0"", ""openedx-atlas==0.7.0"", ""rsa==4.9.1"", ""jinja2==3.1.6"", ""mypy-extensions==1.1.0""]",27,"[""django-ratelimit"", ""edx-django-utils"", ""edx-rest-api-client"", ""social-auth-app-django"", ""django-appconf"", ""pytest-django"", ""code-annotations"", ""django-cors-headers"", ""xss-utils"", ""django-storages"", ""edx-ace"", ""django-extensions"", ""djangorestframework"", ""django-filter"", ""django-sortedm2m"", ""edx-django-release-util"", ""edx-i18n-tools"", ""django-config-models"", ""factory-boy"", ""edx-auth-backends"", ""django-webpack-loader"", ""pylint-django"", ""edx-drf-extensions"", ""django-waffle"", ""django-debug-toolbar"", ""edx-toggles"", ""edx-django-sites-extensions""]",35,"[""django-ratelimit"", ""edx-django-utils"", ""edx-rest-api-client"", ""social-auth-app-django"", ""django-statici18n"", ""django-appconf"", ""pytest-django"", ""code-annotations"", ""django-cors-headers"", ""drf-jwt"", ""django-crum"", ""xss-utils"", ""django-storages"", ""edx-ace"", ""django-extensions"", ""djangorestframework"", ""django-simple-history"", ""django-filter"", ""django-ses"", ""django-sortedm2m"", ""edx-django-release-util"", ""edx-i18n-tools"", ""django-config-models"", ""drf-yasg"", ""factory-boy"", ""django-model-utils"", ""edx-auth-backends"", ""django-webpack-loader"", ""pylint-django"", ""edx-drf-extensions"", ""django-rest-swagger"", ""django-waffle"", ""django-debug-toolbar"", ""edx-toggles"", ""edx-django-sites-extensions""]",20,"[""edx-django-utils"", ""edx-rest-api-client"", ""social-auth-app-django"", ""django-appconf"", ""code-annotations"", ""django-cors-headers"", ""xss-utils"", ""edx-ace"", ""django-extensions"", ""django-filter"", ""edx-django-release-util"", ""edx-i18n-tools"", ""django-config-models"", ""edx-auth-backends"", ""django-webpack-loader"", ""edx-drf-extensions"", ""django-waffle"", ""django-debug-toolbar"", ""edx-toggles"", ""edx-django-sites-extensions""]",False,,True,False,True,True,False,False,True,True,True,True,False,True,True,True,False,False,True,False,False,True,True,33,"{""total_duration"": ""5 minutes 43 seconds"", ""checks"": [{""name"": ""unit_tests (3.12, django52)"", ""duration"": ""5 minutes 43 seconds""}, {""name"": ""quality_and_translations_tests (3.12)"", ""duration"": ""2 minutes 16 seconds""}, {""name"": ""docs (3.12)"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""check migrations (3.12)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2015-12-11 14:09:03,master,Service hosting course and program certificates,28446,82,True,False,False,False,False,False,False,2026-06-07 05:25:50,GNU AGPLv3,10,True,0,0,24727,12460,7611,1209816,0,False,True,True,False,False,False,False,,openedx,4,[],False,"['https://github.com/openedx/credentials/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/credentials/actions?query=workflow%3ACI', 'https://codecov.io/github/openedx/credentials/coverage.svg?branch=master', 'https://codecov.io/github/openedx/credentials?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/credentials.svg', 'https://github.com/openedx/credentials/blob/master/LICENSE', 'https://github.com/openedx/openedx-platform/tree/master', 'https://docs.tutor.edly.io/', 'https://github.com/overhangio/tutor-credentials', 'https://github.com/openedx/frontend-app-learner-record', 'https://edx-credentials.readthedocs.io/en/latest/', 'https://github.com/openedx/credentials/tree/master/docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'http://openedx.slack.com/']",True,True,False,True,.readthedocs.yaml,2,True,2026-04-09,2025-08-21,4,False,True,False,True,,False,,[],,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/wg-build-test-release,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,True,True,True,7,"{""total_duration"": ""11155 minutes 59 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""move_and_notify"", ""duration"": ""0 minutes 6 seconds""}, {""name"": ""move_and_notify"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""move_and_notify"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""add_label"", ""duration"": ""0 minutes 5 seconds""}, {""name"": ""add_label"", ""duration"": ""0 minutes 2 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2021-02-01 17:07:12,main,Open edX Build / Test / Release Working Group,4307,14,True,False,False,False,False,False,False,2026-05-19 12:26:46,,0,False,0,0,0,5560,0,11553,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/build-test-release-wg/projects', 'https://discuss.openedx.org/c/working-groups/build-test-release/30', 'https://calendar.google.com/calendar/u/0?cid=Y192ODZzaHJuZWdzaHNxZ3A0Zmoyazk0dTdiY0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3185508485/BTR+Meeting+Minutes', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/1022099494/Build+-+Test+-+Release+Working+Group']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/xblock-lti-consumer,,,,True,2026-06-08,True,True,False,False,128,0,[],0,,0,0,,,46,"[""django-appconf==1.2.0"", ""openedx-filters==3.1.0"", ""six==1.17.0"", ""web-fragments==4.0.0"", ""webencodings==0.5.1"", ""dnspython==2.8.0"", ""cffi==2.0.0"", ""simplejson==4.0.1"", ""django-filter==25.2"", ""django-statici18n==2.7.1"", ""fastavro==1.12.1"", ""pynacl==1.6.2"", ""python-dateutil==2.9.0.post0"", ""webob==1.8.9"", ""markupsafe==3.0.3"", ""lxml==6.1.0"", ""django-waffle==5.0.0"", ""attrs==26.1.0"", ""asgiref==3.11.1"", ""mako==1.3.11"", ""pyyaml==6.0.3"", ""djangorestframework==3.17.1"", ""django-config-models==3.0.0"", ""edx-ccx-keys==2.0.2"", ""click==8.3.2"", ""pyjwt==2.12.1"", ""typing-extensions==4.15.0"", ""pytz==2026.1.post1"", ""edx-django-utils==8.0.1"", ""oauthlib==3.3.1"", ""fs==2.4.16"", ""edx-opaque-keys[django]==4.0.0"", ""xblock==6.0.0"", ""psutil==7.2.2"", ""pycryptodomex==3.23.0"", ""pymongo==4.16.0"", ""sqlparse==0.5.5"", ""stevedore==5.7.0"", ""appdirs==1.4.4"", ""pycparser==3.0"", ""lazy==1.6"", ""jsonfield==3.2.0"", ""bleach==6.3.0"", ""openedx-events==11.1.1"", ""django-crum==0.7.9"", ""django==5.2.13""]",128,"[""django-appconf==1.2.0"", ""path==16.16.0"", ""mock==5.2.0"", ""text-unidecode==1.3"", ""isort==8.0.1"", ""dnspython==2.8.0"", ""keyring==25.7.0"", ""pygments==2.20.0"", ""setuptools==82.0.1"", ""django-statici18n==2.7.1"", ""platformdirs==4.9.6"", ""djangorestframework==3.17.1"", ""idna==3.11"", ""binaryornot==0.6.0"", ""pycodestyle==2.14.0"", ""jmespath==1.1.0"", ""click==8.3.2"", ""secretstorage==3.5.0"", ""cachetools==7.0.5"", ""pyjwt==2.12.1"", ""typing-extensions==4.15.0"", ""edx-django-utils==8.0.1"", ""pyproject-hooks==1.2.0"", ""oauthlib==3.3.1"", ""fs==2.4.16"", ""pycryptodomex==3.23.0"", ""pylint-django==2.7.0"", ""distlib==0.4.0"", ""lxml[html-clean]==6.1.0"", ""pip-tools==7.5.3"", ""pymongo==4.16.0"", ""certifi==2026.2.25"", ""nh3==0.3.4"", ""pycparser==3.0"", ""lazy==1.6"", ""id==1.5.0"", ""web-fragments==4.0.0"", ""charset-normalizer==3.4.7"", ""pypng==0.20220715.0"", ""cryptography==46.0.7"", ""requests-toolbelt==1.0.0"", ""django-waffle==5.0.0"", ""boto3==1.42.91"", ""tomlkit==0.14.0"", ""rfc3986==2.0.0"", ""filelock==3.29.0"", ""ddt==1.7.2"", ""coveralls==4.1.0"", ""jaraco-classes==3.4.0"", ""cookiecutter==2.7.1"", ""jaraco-functools==4.4.0"", ""astroid==4.0.4"", ""requests==2.33.1"", ""build==1.4.3"", ""code-annotations==3.0.0"", ""markdown-it-py==4.0.0"", ""dill==0.4.1"", ""openedx-events==11.1.1"", ""more-itertools==11.0.2"", ""jaraco-context==6.1.2"", ""webob==1.8.9"", ""pluggy==1.6.0"", ""docutils==0.22.4"", ""six==1.17.0"", ""coverage[toml]==7.13.5"", ""webencodings==0.5.1"", ""tox==4.53.0"", ""cffi==2.0.0"", ""fs-s3fs==1.1.1"", ""django-filter==25.2"", ""pynacl==1.6.2"", ""python-dateutil==2.9.0.post0"", ""markupsafe==3.0.3"", ""lxml==6.1.0"", ""pylint==4.0.5"", ""attrs==26.1.0"", ""edx-i18n-tools==2.0.0"", ""jeepney==0.9.0"", ""botocore==1.42.91"", ""mako==1.3.11"", ""packaging==26.1"", ""typer==0.24.1"", ""annotated-doc==0.0.4"", ""edx-lint==6.0.0"", ""shellingham==1.5.4"", ""python-discovery==1.2.2"", ""wheel==0.46.3"", ""polib==1.2.0"", ""readme-renderer==44.0"", ""pylint-plugin-utils==0.9.0"", ""psutil==7.2.2"", ""xblock-sdk==0.14.0"", ""sqlparse==0.5.5"", ""urllib3==1.26.20"", ""bleach==6.3.0"", ""django-crum==0.7.9"", ""django==5.2.13"", ""openedx-filters==3.1.0"", ""arrow==1.4.0"", ""python-slugify==8.0.4"", ""simplejson==4.0.1"", ""fastavro==1.12.1"", ""rich==15.0.0"", ""click-log==0.4.0"", ""colorama==0.4.6"", ""asgiref==3.11.1"", ""pyyaml==6.0.3"", ""django-config-models==3.0.0"", ""edx-ccx-keys==2.0.2"", ""jinja2==3.1.6"", ""mdurl==0.1.2"", ""pyproject-api==1.10.0"", ""pylint-celery==0.3"", ""pytz==2026.1.post1"", ""virtualenv==21.2.4"", ""s3transfer==0.16.0"", ""twine==6.2.0"", ""edx-opaque-keys[django]==4.0.0"", ""xblock==6.0.0"", ""pip==26.0.1"", ""tomli-w==1.2.0"", ""django==4.2.24"", ""mccabe==0.7.0"", ""stevedore==5.7.0"", ""appdirs==1.4.4"", ""jsonfield==3.2.0"", ""tzdata==2026.1"", ""lxml-html-clean==0.4.4""]",12,"[""xblock"", ""django-waffle"", ""xblock-sdk"", ""django-config-models"", ""django-appconf"", ""code-annotations"", ""pylint-django"", ""edx-i18n-tools"", ""edx-django-utils"", ""django-filter"", ""web-fragments"", ""djangorestframework""]",15,"[""xblock"", ""django-waffle"", ""xblock-sdk"", ""django-config-models"", ""django-statici18n"", ""code-annotations"", ""pylint-django"", ""django-crum"", ""django-appconf"", ""edx-i18n-tools"", ""jsonfield"", ""edx-django-utils"", ""django-filter"", ""web-fragments"", ""djangorestframework""]",10,"[""xblock"", ""django-waffle"", ""xblock-sdk"", ""django-config-models"", ""django-appconf"", ""code-annotations"", ""edx-i18n-tools"", ""edx-django-utils"", ""django-filter"", ""web-fragments""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,False,True,55,"{""total_duration"": ""1606 minutes 28 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""5 minutes 1 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 28 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 21 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2015-11-09 15:21:44,master,,2022,97,True,False,False,False,False,False,False,2026-06-08 03:13:26,GNU AGPLv3,6,True,7508,0,52292,170308,3797,879140,0,False,True,False,False,True,False,False,,openedx,4,"['https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://docs.tutor.edly.io/configuration.html', 'https://github.com/openedx/xblock-lti-consumer/blob/v9.14.2/README.rst', 'http://lti.tools/saltire/', 'https://docs.openedx.org/en/latest/educators/how-tos/course_development/exercise_tools/set_up_lti_1_1_component.html', 'https://saltire.lti.app/tool', 'https://saltire.lti.app/tool?norefresh', 'https://lti-ri.imsglobal.org/lti/tools/', 'https://lti-ri.imsglobal.org/lti/tools', 'https://lti-ri.imsglobal.org/keygen/index', 'https://docs.openedx.org/en/latest/educators/how-tos/course_development/exercise_tools/set_up_lti_1_3_component.html', 'http://www.imsglobal.org/spec/lti-bo/v1p1/', 'https://github.com/openedx/xblock-lti-consumer/tree/master/docs/basic_outcomes_service.rst', 'https://www.imsglobal.org/lti/model/uml/purl.imsglobal.org/vocab/lis/v2/outcomes/Result/service.html', 'https://github.com/openedx/xblock-lti-consumer/tree/master/docs/result_service.rst', 'https://github.com/open-craft/openedx-ltistore', 'https://discuss.openedx.org', 'https://github.com/openedx/xblock-lti-consumer/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/xblock-lti-consumer', 'https://github.com/openedx/xblock-lti-consumer/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/xblock-lti-consumer/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/openedx/xblock-lti-consumer/coverage.svg?branch=master', 'https://codecov.io/github/openedx/xblock-lti-consumer?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/xblock-lti-consumer.svg', 'https://github.com/openedx/edx-rest-api-client/blob/master/LICENSE', 'https://img.shields.io/pypi/v/lti-consumer-xblock.svg', 'https://pypi.python.org/pypi/lti-consumer-xblock/']",True,True,False,False,,,False,,,,False,True,False,False,,False,lti-consumer-xblock,"['3', '3.12']",https://github.com/openedx/xblock-lti-consumer,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-firebase-analytics-ios,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2024-10-11 09:09:07,main,,23,3,True,False,False,False,False,False,False,2026-05-30 15:29:05,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/user-attachments/assets/fdd60f8b-bd61-4c3d-b97f-4b28323ec369: 403', 'https://github.com/user-attachments/assets/ef7b07a5-9fdf-4bbe-b47f-ba328a6faafb: 403']",False,"['https://github.com/openedx/openedx-app-firebase-analytics-ios', 'https://firebase.google.com/docs/ios/setup']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/pr_watcher_configuration,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,True,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": """", ""checks"": []}",Other,2020-03-16 15:27:27,master,Configuration for pr_watcher_notifier on Heroku,20,4,True,False,False,False,False,False,False,2024-12-16 20:05:07,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/open-craft/pr_watcher_notifier: 504'],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/django-user-tasks,,,,True,2026-06-08,True,True,False,False,144,0,[],0,,0,0,,,26,"[""amqp==5.3.1"", ""packaging==26.2"", ""drf-yasg==1.21.15"", ""vine==5.1.0"", ""click==8.3.3"", ""django==5.2.14"", ""click-plugins==1.1.1.2"", ""six==1.17.0"", ""sqlparse==0.5.5"", ""inflection==0.5.1"", ""tzdata==2026.2"", ""django-model-utils==5.0.0"", ""djangorestframework==3.17.1"", ""uritemplate==4.2.0"", ""celery==5.6.3"", ""wcwidth==0.7.0"", ""click-repl==0.3.0"", ""click-didyoumean==0.3.1"", ""billiard==4.2.4"", ""pyyaml==6.0.3"", ""prompt-toolkit==3.0.52"", ""python-dateutil==2.9.0.post0"", ""tzlocal==5.3.1"", ""asgiref==3.11.1"", ""kombu==5.6.2"", ""pytz==2026.2""]",144,"[""amqp==5.3.1"", ""keyring==25.7.0"", ""tomli-w==1.2.0"", ""pylint-celery==0.3"", ""pip-tools==7.5.3"", ""roman-numerals==4.1.0"", ""click-log==0.4.0"", ""six==1.17.0"", ""snowballstemmer==3.0.1"", ""charset-normalizer==3.4.7"", ""cachetools==7.1.1"", ""referencing==0.37.0"", ""mdurl==0.1.2"", ""babel==2.18.0"", ""jaraco-context==6.1.2"", ""pytest==9.0.3"", ""wcwidth==0.7.0"", ""sphinxcontrib-jsmath==1.0.1"", ""dill==0.4.1"", ""openapi-codec==1.3.2"", ""platformdirs==4.9.6"", ""click-didyoumean==0.3.1"", ""python-dateutil==2.9.0.post0"", ""sphinx-mdinclude==0.6.2"", ""deepmerge==2.0"", ""edx-i18n-tools==2.0.0"", ""pycodestyle==2.14.0"", ""nh3==0.3.5"", ""isort==8.0.1"", ""pytest-cov==7.1.0"", ""jsonschema==4.26.0"", ""pygments==2.20.0"", ""rfc3986==2.0.0"", ""pyproject-api==1.10.0"", ""sphinxcontrib-applehelp==2.0.0"", ""stevedore==5.7.0"", ""packaging==26.2"", ""secretstorage==3.5.0"", ""picobox==4.0.0"", ""tox==4.53.1"", ""requests-toolbelt==1.0.0"", ""soupsieve==2.8.3"", ""idna==3.13"", ""beautifulsoup4==4.14.3"", ""more-itertools==11.0.2"", ""sphinxcontrib-qthelp==2.0.0"", ""coverage==7.13.5"", ""twine==6.2.0"", ""requests==2.33.1"", ""rpds-py==0.30.0"", ""mock==5.2.0"", ""iniconfig==2.3.0"", ""tzdata==2026.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""django-model-utils==5.0.0"", ""polib==1.2.0"", ""setuptools==82.0.1"", ""markdown-it-py==4.2.0"", ""readme-renderer==44.0"", ""restructuredtext-lint==2.0.2"", ""jsonschema-specifications==2025.9.1"", ""djangorestframework==3.17.1"", ""alabaster==1.0.0"", ""click-repl==0.3.0"", ""colorama==0.4.6"", ""sphinx-book-theme==1.2.0"", ""sphinxcontrib-openapi==0.9.0"", ""pylint-plugin-utils==0.9.0"", ""pytz==2026.2"", ""sphinx==9.1.0"", ""mistune==3.2.1"", ""drf-yasg==1.21.15"", ""vine==5.1.0"", ""django==5.2.14"", ""rules==3.5"", ""mccabe==0.7.0"", ""sqlparse==0.5.5"", ""inflection==0.5.1"", ""doc8==2.0.0"", ""jmespath==1.1.0"", ""wheel==0.47.0"", ""path==16.16.0"", ""botocore==1.43.6"", ""celery==5.6.3"", ""s3transfer==0.17.0"", ""text-unidecode==1.3"", ""astroid==4.0.4"", ""cffi==2.0.0"", ""coverage[toml]==7.13.5"", ""boto3==1.43.6"", ""pydata-sphinx-theme==0.16.1"", ""tomlkit==0.14.0"", ""python-slugify==8.0.4"", ""accessible-pygments==0.0.5"", ""docutils==0.21.2"", ""sphinxcontrib-devhelp==2.0.0"", ""tzlocal==5.3.1"", ""sphinxcontrib-httpdomain==2.0.0"", ""jaraco-classes==3.4.0"", ""pylint-django==2.7.0"", ""jaraco-functools==4.4.0"", ""code-annotations==3.0.0"", ""distlib==0.4.0"", ""jinja2==3.1.6"", ""django-rest-swagger==2.2.0"", ""python-discovery==1.3.0"", ""attrs==26.1.0"", ""click==8.3.3"", ""typing-extensions==4.15.0"", ""click-plugins==1.1.1.2"", ""jeepney==0.9.0"", ""lxml[html-clean]==6.1.0"", ""coreapi==2.3.3"", ""pyproject-hooks==1.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""build==1.5.0"", ""lxml-html-clean==0.4.4"", ""itypes==1.2.0"", ""pip==26.1.1"", ""coreschema==0.0.4"", ""filelock==3.29.0"", ""rich==15.0.0"", ""uritemplate==4.2.0"", ""pycparser==3.0"", ""id==1.6.1"", ""imagesize==2.0.0"", ""pluggy==1.6.0"", ""pylint==4.0.5"", ""cryptography==48.0.0"", ""django-storages==1.14.6"", ""billiard==4.2.4"", ""pyyaml==6.0.3"", ""prompt-toolkit==3.0.52"", ""pydocstyle==6.3.0"", ""testfixtures==11.0.0"", ""edx-lint==6.1.0"", ""markupsafe==3.0.3"", ""asgiref==3.11.1"", ""simplejson==4.1.1"", ""kombu==5.6.2"", ""virtualenv==21.3.1"", ""certifi==2026.4.22"", ""urllib3==2.7.0"", ""pytest-django==4.12.0""]",6,"[""djangorestframework"", ""pytest-django"", ""code-annotations"", ""edx-i18n-tools"", ""django-storages"", ""pylint-django""]",10,"[""djangorestframework"", ""drf-yasg"", ""django-model-utils"", ""pytest-django"", ""rules"", ""code-annotations"", ""edx-i18n-tools"", ""django-rest-swagger"", ""django-storages"", ""pylint-django""]",2,"[""edx-i18n-tools"", ""code-annotations""]",True,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,7,"{""total_duration"": ""2028 minutes 8 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 4 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52-celery54-drflatest)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42-celery53-drflatest)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2016-08-09 20:52:58,master,A Django application for managing user-triggered asynchronous tasks.,577,20,True,False,False,False,False,False,False,2026-06-08 00:53:31,Apache License 2.0,5,True,0,0,0,0,4247,125438,0,True,True,False,False,True,False,False,,openedx,1,"['https://open-edx-proposals.readthedocs.io/en/latest/oeps/oep-0003.html: 404', 'https://open.edx.org/getting-help: 403']",True,"['https://img.shields.io/pypi/v/django-user-tasks.svg', 'https://pypi.python.org/pypi/django-user-tasks/', 'https://github.com/openedx/django-user-tasks/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/django-user-tasks/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/django-user-tasks/coverage.svg?branch=master', 'http://codecov.io/github/edx/django-user-tasks?branch=master', 'https://readthedocs.org/projects/django-user-tasks/badge/?version=latest', 'http://django-user-tasks.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/django-user-tasks.svg', 'https://img.shields.io/github/license/edx/django-user-tasks.svg', 'https://github.com/openedx/django-user-tasks/blob/master/LICENSE.txt', 'http://www.celeryproject.org/', 'https://channels.readthedocs.io/en/latest/', 'http://docs.celeryproject.org/en/latest/userguide/signals.html', 'https://django-user-tasks.readthedocs.org', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,django-user-tasks,"['3', '3.12']",https://github.com/openedx/django-user-tasks,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/pytest-repo-health,,,,True,2026-06-08,True,True,False,False,87,0,[],0,,0,0,,,19,"[""iniconfig==2.1.0"", ""pytest-aiohttp==1.1.0"", ""packaging==25.0"", ""pytest-asyncio==0.26.0"", ""attrs==25.3.0"", ""gitpython==3.1.44"", ""aiohappyeyeballs==2.6.1"", ""frozenlist==1.6.0"", ""idna==3.10"", ""pluggy==1.5.0"", ""pytest==8.3.5"", ""propcache==0.3.1"", ""pyyaml==6.0.2"", ""aiosignal==1.3.2"", ""gitdb==4.0.12"", ""multidict==6.4.3"", ""yarl==1.20.0"", ""smmap==5.0.2"", ""aiohttp==3.11.18""]",87,"[""stevedore==5.4.1"", ""pycodestyle==2.13.0"", ""wheel==0.45.1"", ""doc8==1.1.2"", ""colorama==0.4.6"", ""charset-normalizer==3.4.1"", ""roman-numerals-py==3.1.0"", ""isort==6.0.1"", ""certifi==2025.4.26"", ""sphinxcontrib-jsmath==1.0.1"", ""idna==3.10"", ""typing-extensions==4.13.2"", ""pylint-celery==0.3"", ""pydata-sphinx-theme==0.15.4"", ""readme-renderer==44.0"", ""multidict==6.4.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pip-tools==7.4.1"", ""imagesize==1.4.1"", ""restructuredtext-lint==1.4.0"", ""markupsafe==3.0.2"", ""python-slugify==8.0.4"", ""click==8.1.8"", ""requests==2.32.3"", ""cachetools==5.5.2"", ""docutils==0.21.2"", ""jinja2==3.1.6"", ""gitpython==3.1.44"", ""platformdirs==4.3.7"", ""snowballstemmer==2.2.0"", ""nh3==0.2.21"", ""chardet==5.2.0"", ""aiosignal==1.3.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""diff-cover==9.2.4"", ""text-unidecode==1.3"", ""pylint-django==2.6.1"", ""setuptools==80.0.1"", ""filelock==3.18.0"", ""sphinx-book-theme==1.1.4"", ""distlib==0.3.9"", ""virtualenv==20.30.0"", ""pytest-asyncio==0.26.0"", ""attrs==25.3.0"", ""dill==0.4.0"", ""coverage[toml]==7.8.0"", ""pylint==3.3.6"", ""astroid==3.3.9"", ""frozenlist==1.6.0"", ""pluggy==1.5.0"", ""edx-lint==5.6.0"", ""propcache==0.3.1"", ""build==1.2.2.post1"", ""pbr==6.1.1"", ""pydocstyle==6.3.0"", ""sphinx==8.2.3"", ""gitdb==4.0.12"", ""aiohttp==3.11.18"", ""pyproject-hooks==1.2.0"", ""mccabe==0.7.0"", ""babel==2.17.0"", ""iniconfig==2.1.0"", ""pytest-aiohttp==1.1.0"", ""packaging==25.0"", ""pylint-plugin-utils==0.8.2"", ""soupsieve==2.7"", ""pygments==2.19.1"", ""urllib3==2.2.3"", ""sphinxcontrib-devhelp==2.0.0"", ""pytest-cov==6.1.1"", ""aiohappyeyeballs==2.6.1"", ""code-annotations==2.3.0"", ""accessible-pygments==0.0.5"", ""tomlkit==0.13.2"", ""pyproject-api==1.9.0"", ""pytest==8.3.5"", ""pip==24.2"", ""pyyaml==6.0.2"", ""sphinxcontrib-applehelp==2.0.0"", ""click-log==0.4.0"", ""beautifulsoup4==4.13.4"", ""tox==4.25.0"", ""yarl==1.20.0"", ""smmap==5.0.2"", ""six==1.17.0"", ""alabaster==1.0.0""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,False,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,11,"{""total_duration"": ""6201 minutes 29 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, py)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2020-03-16 16:53:00,master,,426,8,True,False,False,False,False,False,False,2026-06-04 00:33:59,GNU AGPLv3,3,True,0,0,0,0,2689,31722,0,True,True,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/pytest-repo-health/workflows/Python%20CI/badge.svg?branch=master: 504', 'https://github.com/openedx/pytest-repo-health/actions?query=workflow%3A%22Python+CI%22: 504', 'https://ci.appveyor.com/api/projects/status/github/edx/pytest-repo-health?branch=master: 405', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md: 504', 'https://github.com/openedx/pytest-repo-health/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 504', 'https://github.com/openedx/pytest-repo-health/blob/master/.github/ISSUE_TEMPLATE.md: 504', 'https://github.com/openedx/edx-repo-health: 504', 'https://github.com/audreyr/cookiecutter: 504', 'http://www.gnu.org/licenses/gpl-3.0.txt: HTTPConnectionPool(host=\'www.gnu.org\', port=80): Max retries exceeded with url: /licenses/gpl-3.0.txt (Caused by NewConnectionError(""HTTPConnection(host=\'www.gnu.org\', port=80): Failed to establish a new connection: [Errno 101] Network is unreachable""))', 'https://pypi.org/project: 404']",True,"['https://img.shields.io/pypi/v/pytest-repo-health.svg', 'https://pypi.org/project/pytest-repo-health', 'https://img.shields.io/pypi/pyversions/pytest-repo-health.svg', 'https://ci.appveyor.com/project/edx/pytest-repo-health/branch/master', 'https://open.edx.org/getting-help', 'https://github.com/hackebrot', 'http://opensource.org/licenses/BSD-3-Clause', 'http://www.apache.org/licenses/LICENSE-2.0', 'https://github.com/pytest-dev/cookiecutter-pytest-plugin', 'https://github.com/openedx/pytest-repo-health/issues', 'https://github.com/pytest-dev/pytest', 'https://tox.readthedocs.io/en/latest/', 'https://pypi.org/project/pip/']",True,True,False,False,,,False,,,,False,False,False,True,,False,pytest-repo-health,"['3', '3.12']",https://github.com/edX/pytest-repo-health,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-rest-api-client,,,,True,2026-06-08,True,True,False,False,88,0,[],0,,0,0,,,18,"[""charset-normalizer==3.4.7"", ""pycparser==3.0"", ""cffi==2.0.0"", ""psutil==7.2.2"", ""stevedore==5.7.0"", ""django-crum==0.7.9"", ""pyjwt==2.12.1"", ""sqlparse==0.5.5"", ""urllib3==2.6.3"", ""asgiref==3.11.1"", ""django-waffle==5.0.0"", ""requests==2.33.1"", ""pynacl==1.6.2"", ""edx-django-utils==8.0.1"", ""django==5.2.13"", ""click==8.3.3"", ""certifi==2026.4.22"", ""idna==3.13""]",88,"[""cffi==2.0.0"", ""freezegun==1.5.5"", ""mdurl==0.1.2"", ""click-log==0.4.0"", ""pygments==2.20.0"", ""cryptography==48.0.0"", ""django-crum==0.7.9"", ""pytest-cov==7.1.0"", ""jaraco-functools==4.4.0"", ""pytest-django==4.12.0"", ""click==8.3.3"", ""requests-toolbelt==1.0.0"", ""pyproject-hooks==1.2.0"", ""colorama==0.4.6"", ""code-annotations==3.0.0"", ""python-dateutil==2.9.0.post0"", ""markupsafe==3.0.3"", ""python-discovery==1.1.0"", ""python-discovery==1.2.2"", ""pip-tools==7.5.3"", ""filelock==3.25.0"", ""certifi==2026.4.22"", ""idna==3.13"", ""wheel==0.47.0"", ""pyyaml==6.0.3"", ""pytest==9.0.3"", ""asgiref==3.11.1"", ""pycparser==3.0"", ""pluggy==1.5.0"", ""stevedore==5.7.0"", ""pyjwt==2.12.1"", ""markdown-it-py==4.0.0"", ""pylint-celery==0.3"", ""chardet==7.4.3"", ""django-waffle==5.0.0"", ""ddt==1.7.2"", ""chardet==7.0.1"", ""edx-django-utils==8.0.1"", ""text-unidecode==1.3"", ""iniconfig==2.3.0"", ""distlib==0.4.0"", ""cachetools==7.0.3"", ""id==1.6.1"", ""twine==6.2.0"", ""more-itertools==11.0.2"", ""pynacl==1.6.2"", ""dill==0.4.1"", ""nh3==0.3.5"", ""isort==8.0.1"", ""jaraco-classes==3.4.0"", ""pylint-django==2.7.0"", ""jaraco-context==6.1.2"", ""edx-lint==6.1.0"", ""tomlkit==0.14.0"", ""setuptools==82.0.1"", ""tox==4.27.0"", ""packaging==24.2"", ""readme-renderer==44.0"", ""charset-normalizer==3.4.7"", ""cachetools==7.1.1"", ""six==1.17.0"", ""pylint==4.0.5"", ""keyring==25.7.0"", ""pylint-plugin-utils==0.9.0"", ""filelock==3.29.0"", ""pycodestyle==2.14.0"", ""astroid==4.0.4"", ""coverage[toml]==7.13.5"", ""build==1.5.0"", ""responses==0.26.0"", ""requests==2.33.1"", ""jeepney==0.9.0"", ""sqlparse==0.5.5"", ""secretstorage==3.5.0"", ""django==5.2.13"", ""jinja2==3.1.6"", ""rfc3986==2.0.0"", ""psutil==7.2.2"", ""urllib3==2.6.3"", ""pip==26.1.1"", ""platformdirs==4.3.6"", ""python-slugify==8.0.4"", ""docutils==0.22.4"", ""mccabe==0.7.0"", ""virtualenv==21.3.1"", ""pyproject-api==1.9.0"", ""rich==15.0.0"", ""virtualenv==21.1.0""]",5,"[""django-waffle"", ""edx-django-utils"", ""pytest-django"", ""code-annotations"", ""pylint-django""]",6,"[""django-waffle"", ""edx-django-utils"", ""django-crum"", ""pytest-django"", ""code-annotations"", ""pylint-django""]",3,"[""edx-django-utils"", ""django-waffle"", ""code-annotations""]",False,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,False,True,True,16,"{""total_duration"": ""3795 minutes 11 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2015-04-29 18:11:55,master,Facilitates interaction with edX REST APIs,464,18,True,False,False,False,False,False,False,2026-06-02 06:31:48,Apache License 2.0,13,True,0,0,0,0,2700,38968,0,False,True,False,False,True,False,False,,openedx,5,"['https://lms.root: HTTPSConnectionPool(host=\'lms.root\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'lms.root\', port=443): Failed to resolve \'lms.root\' ([Errno -2] Name or service not known)""))', 'https://some.url: HTTPSConnectionPool(host=\'some.url\', port=443): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPSConnection(host=\'some.url\', port=443): Failed to resolve \'some.url\' ([Errno -2] Name or service not known)""))', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/getting-help: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://requests.readthedocs.io/en/master/user/advanced/', 'https://github.com/openedx/edx-django-utils/blob/master/edx_django_utils/cache/README.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/edx-rest-api-client/issues', 'https://openedx.slack.com/', 'https://github.com/openedx/edx-rest-api-client/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-rest-api-client/actions?query=workflow%3A%22Python+CI%22', 'https://codecov.io/github/openedx/edx-rest-api-client/coverage.svg?branch=master', 'https://codecov.io/github/openedx/edx-rest-api-client?branch=master', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/license/openedx/edx-rest-api-client.svg', 'https://github.com/openedx/edx-rest-api-client/blob/master/LICENSE', 'https://img.shields.io/pypi/v/edx-rest-api-client.svg', 'https://pypi.python.org/pypi/edx-rest-api-client/']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-rest-api-client,['3.12'],https://github.com/openedx/edx-rest-api-client,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/xblock-image-explorer,,,,True,2026-06-08,True,True,False,False,80,0,[],0,,0,0,,,24,"[""python-dateutil==2.9.0.post0"", ""openedx-django-pyfs==4.0.0"", ""six==1.17.0"", ""webob==1.8.9"", ""mako==1.3.12"", ""pytz==2026.2"", ""s3transfer==0.18.0"", ""lxml==6.1.1"", ""pyyaml==6.0.3"", ""urllib3==2.7.0"", ""lazy==1.6"", ""sqlparse==0.5.5"", ""appdirs==1.4.4"", ""web-fragments==4.0.0"", ""fs-s3fs==1.1.1"", ""simplejson==4.1.1"", ""jmespath==1.1.0"", ""botocore==1.43.18"", ""xblock[django]==6.1.0"", ""markupsafe==3.0.3"", ""asgiref==3.11.1"", ""boto3==1.43.18"", ""django==5.2.14"", ""fs==2.4.16""]",80,"[""pytest==9.0.3"", ""binaryornot==0.6.0"", ""certifi==2026.5.20"", ""coverage[toml]==7.14.1"", ""pylint==4.0.5"", ""tomlkit==0.15.0"", ""colorama==0.4.6"", ""openedx-django-pyfs==4.0.0"", ""setuptools==82.0.1"", ""webob==1.8.9"", ""pytz==2026.2"", ""dill==0.4.1"", ""idna==3.17"", ""pylint-celery==0.3"", ""cookiecutter==2.7.1"", ""cachetools==7.1.4"", ""web-fragments==4.0.0"", ""jmespath==1.1.0"", ""pypng==0.20220715.0"", ""markupsafe==3.0.3"", ""astroid==4.0.4"", ""mdurl==0.1.2"", ""mock==5.2.0"", ""pygments==2.20.0"", ""boto3==1.43.18"", ""requests==2.34.2"", ""distlib==0.4.0"", ""wheel==0.47.0"", ""python-discovery==1.4.0"", ""build==1.5.0"", ""mccabe==0.7.0"", ""six==1.17.0"", ""s3transfer==0.18.0"", ""pip==26.1.2"", ""lxml==6.1.1"", ""platformdirs==4.10.0"", ""pyyaml==6.0.3"", ""urllib3==2.7.0"", ""tox==4.55.0"", ""stevedore==5.8.0"", ""appdirs==1.4.4"", ""markdown-it-py==4.2.0"", ""pylint-django==2.7.0"", ""simplejson==4.1.1"", ""asgiref==3.11.1"", ""virtualenv==21.4.2"", ""filelock==3.29.0"", ""pip-tools==7.5.3"", ""rich==15.0.0"", ""django==5.2.14"", ""click-log==0.4.0"", ""edx-lint==6.1.0"", ""pytest-django==4.12.0"", ""python-dateutil==2.9.0.post0"", ""iniconfig==2.3.0"", ""python-slugify==8.0.4"", ""pylint-plugin-utils==0.9.0"", ""mako==1.3.12"", ""xblock-sdk==0.14.0"", ""pyproject-hooks==1.2.0"", ""click==8.4.1"", ""sqlparse==0.5.5"", ""botocore==1.43.18"", ""xblock[django]==6.1.0"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""arrow==1.4.0"", ""charset-normalizer==3.4.7"", ""jinja2==3.1.6"", ""fs==2.4.16"", ""isort==8.0.1"", ""pluggy==1.6.0"", ""packaging==26.2"", ""pytest-cov==7.1.0"", ""code-annotations==3.0.0"", ""lazy==1.6"", ""tzdata==2026.2"", ""tomli-w==1.2.0"", ""fs-s3fs==1.1.1"", ""pyproject-api==1.10.1""]",5,"[""xblock-sdk"", ""code-annotations"", ""pylint-django"", ""pytest-django"", ""web-fragments""]",5,"[""xblock-sdk"", ""code-annotations"", ""pylint-django"", ""pytest-django"", ""web-fragments""]",3,"[""xblock-sdk"", ""code-annotations"", ""web-fragments""]",False,,False,False,True,False,False,False,True,True,True,True,False,False,True,True,False,True,True,False,True,True,True,12,"{""total_duration"": ""9705 minutes 42 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package)"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 20 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2014-03-09 14:40:29,master,,1516,42,True,False,False,False,False,False,False,2026-06-08 01:10:03,GNU AGPLv3,2,True,3925,0,6149,7384,3323,33384,0,True,False,False,False,False,False,False,,openedx,0,"['http://link/to/image.jpg: HTTPConnectionPool(host=\'link\', port=80): Max retries exceeded with url: /to/image.jpg (Caused by NameResolutionError(""HTTPConnection(host=\'link\', port=80): Failed to resolve \'link\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://github.com/openedx/xblock-image-explorer/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/xblock-image-explorer/actions/workflows/ci.yml', 'https://raw.githubusercontent.com/openedx/xblock-image-explorer/3b67392a73edcd606f4e3fb30cfa8b3cc20720d3/doc/img/student-view.png', 'https://raw.githubusercontent.com/openedx/xblock-image-explorer/3b67392a73edcd606f4e3fb30cfa8b3cc20720d3/doc/img/edit-view.png']",True,True,False,False,,,False,,,,False,True,False,True,,False,xblock-image-explorer,['3.12'],https://github.com/openedx/xblock-image-explorer,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/tinymce-language-selector,,,,False,2026-06-08,True,True,False,False,0,0,,0,{},0,0,{},{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,True,False,False,False,False,False,False,True,True,True,5,"{""total_duration"": ""11187 minutes 55 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}]}",Other,2020-01-23 19:26:19,master,A plugin for TinyMCE 5 that allows the user to specify if text is written in a foreign language and in which language. Adds language data to tags to improve accessibility.,2454,6,True,False,False,False,False,False,False,2026-05-19 11:12:48,GNU AGPLv3,0,False,0,0,0,22003,0,0,0,False,False,False,False,False,False,False,@edx/tinymce-language-selector,openedx,0,['https://github.com/semantic-release/semantic-release: 504'],False,[],True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-learner-record,,,,False,2026-06-08,True,True,False,False,38,0,,0,{},29,9,"{""@edx/browserslist-config"": ""^1.2.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""6.9.1"", ""@testing-library/react"": ""14.3.1"", ""axios-mock-adapter"": ""2.1.0"", ""babel-plugin-react-intl"": ""8.2.25"", ""husky"": ""9.1.7"", ""resize-observer-polyfill"": ""^1.5.1"", ""rosie"": ""2.1.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.9.2"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/fontawesome-svg-core"": ""7.2.0"", ""@fortawesome/free-brands-svg-icons"": ""7.2.0"", ""@fortawesome/free-regular-svg-icons"": ""7.2.0"", ""@fortawesome/free-solid-svg-icons"": ""7.2.0"", ""@fortawesome/react-fontawesome"": ""3.3.0"", ""@openedx/frontend-plugin-framework"": ""^1.6.0"", ""@openedx/paragon"": ""^23.4.2"", ""ajv"": ""^8.12.0"", ""ajv-keywords"": ""^5.1.0"", ""babel-polyfill"": ""6.26.0"", ""core-js"": ""3.49.0"", ""js-cookie"": ""3.0.5"", ""lodash"": ""4.18.1"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-device-detect"": ""^2.2.3"", ""react-dom"": ""18.3.1"", ""react-helmet-async"": ""^2.0.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""redux"": ""4.2.1"", ""regenerator-runtime"": ""0.14.1"", ""schema-utils"": ""^4.2.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,20,"{""total_duration"": ""26621 minutes 40 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 19 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2021-07-19 19:30:14,master,Open edX micro-frontend application for viewing learner records,8717,24,True,False,False,False,False,False,False,2026-06-08 01:05:29,GNU AGPLv3,8,True,0,0,579,136471,2086,0,0,False,False,False,False,True,False,False,@edx/frontend-app-learner-record,openedx,0,"['https://en.wikipedia.org/wiki/Verifiable_credentials: 403', 'https://github.com/openedx/frontend-plugin-framework: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/: 404', 'https://travis-ci.com/edx/frontend-app-learner-record: 415', 'https://github.com/openedx/frontend-app-learner-record/blob/master/LICENSE: 504']",True,"['https://www.edx.org', 'https://edx-credentials.readthedocs.io/en/latest/learner_records.html', 'https://github.com/edx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://openedx.atlassian.net/wiki/spaces/FEDX/pages/2629829454/Micro+Frontend+MFE+Onboarding', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-learner-record/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://api.travis-ci.com/edx/frontend-app-learner-record.svg?branch=master', 'https://codecov.io/gh/edx/frontend-app-learner-record/branch/master/graph/badge.svg', 'https://codecov.io/gh/edx/frontend-app-learner-record', 'https://img.shields.io/npm/l/@edx/frontend-app-learner-record.svg']",True,True,False,False,,,True,2026-04-06,2024-10-28,5,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-ui-toolkit,,,,False,2026-06-08,False,False,False,False,50,0,,0,{},13,37,"{""@edx/eslint-config"": ""^4.0.0"", ""bi-app-sass"": ""1.1.0"", ""bourbon"": ""4.3.4"", ""browser-sync"": ""3.0.4"", ""css-loader"": ""^6.0.0"", ""del"": ""2.2.2"", ""eslint"": ""^8.35.0"", ""eslint-config-edx"": ""4.0.4"", ""gulp"": ""^4.0.2"", ""gulp-gh-pages"": ""0.5.4"", ""gulp-rename"": ""2.1.0"", ""gulp-util"": ""3.0.8"", ""gulp4-run-sequence"": ""^1.0.1"", ""jasmine"": ""5.13.0"", ""jasmine-core"": ""5.13.0"", ""jsdoc3-parser"": ""3.0.0"", ""jsdox"": ""0.4.10"", ""karma"": ""6.4.4"", ""karma-chrome-launcher"": ""^3.1.1"", ""karma-coverage"": ""2.2.1"", ""karma-firefox-launcher"": ""2.1.3"", ""karma-jasmine"": ""5.1.0"", ""karma-jasmine-html-reporter"": ""2.2.0"", ""karma-jasmine-jquery-2"": ""^0.1.1"", ""karma-phantomjs-launcher"": ""1.0.4"", ""karma-requirejs"": ""1.1.0"", ""karma-sinon"": ""1.0.5"", ""karma-spec-reporter"": ""0.0.36"", ""puppeteer"": ""^14.1.2"", ""require-dir"": ""latest"", ""requirejs-plugins"": ""1.0.2"", ""sass-loader"": ""^13.2.0"", ""susy"": ""2.2.14"", ""style-loader"": ""3.3.4"", ""through2"": ""2.0.5"", ""webpack"": ""^5.75.0"", ""webpack-stream"": ""7.0.0""}","{""backbone"": ""1.6.1"", ""backbone.paginator"": ""2.0.8"", ""gulp-shell"": ""0.8.0"", ""jquery"": ""~3.7.0"", ""mini-css-extract-plugin"": ""^2.7.2"", ""moment"": ""2.30.1"", ""moment-timezone"": ""0.6.1"", ""requirejs"": ""2.1.22"", ""requirejs-text"": ""2.0.16"", ""sass"": ""^1.58.3"", ""sinon"": ""1.17.7"", ""underscore"": ""~1.8.3"", ""urijs"": ""1.19.11""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,True,True,False,False,False,False,False,False,True,False,True,29,"{""total_duration"": ""1 minutes 48 seconds"", ""checks"": [{""name"": ""build"", ""duration"": ""1 minutes 48 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 35 seconds""}]}",Other,2015-08-13 07:28:13,master,A JavaScript toolkit for building edX user interfaces.,3781,14,True,False,False,False,False,False,False,2026-06-02 19:55:23,Apache License 2.0,13,True,0,0,0,180573,0,0,0,False,False,False,False,False,False,False,,openedx,0,"['https://badge.fury.io/gh/edx%2Fedx-ui-toolkit.svg: 503', 'https://badge.fury.io/js/edx-ui-toolkit: 403', 'http://ux.edx.org/: HTTPConnectionPool(host=\'ux.edx.org\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'ux.edx.org\', port=80): Failed to resolve \'ux.edx.org\' ([Errno -2] Name or service not known)""))', 'https://github.com/openedx/edx-ui-toolkit/blob/master/CONTRIBUTING.md: 404']",False,"['https://badge.fury.io/gh/edx%2Fedx-ui-toolkit', 'https://badge.fury.io/js/edx-ui-toolkit.svg', 'https://badge.fury.io/bo/edx-ui-toolkit.svg', 'https://badge.fury.io/bo/edx-ui-toolkit', 'https://img.shields.io/coveralls/edx/edx-ui-toolkit.svg', 'https://coveralls.io/r/edx/edx-ui-toolkit?branch=master', 'https://github.com/openedx/edx-ui-toolkit/blob/master/LICENSE', 'https://github.com/tj/n', 'http://ui-toolkit.edx.org/']",True,True,False,False,,,True,2026-04-06,2023-09-04,8,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-ace,,,,True,2026-06-08,False,False,False,False,146,0,[],0,,0,0,,,107,"[""google-auth==2.39.0"", ""asgiref==3.8.1"", ""edx-lint==5.6.0"", ""google-api-python-client==2.168.0"", ""pygments==2.19.1"", ""diff-cover==9.2.4"", ""pydocstyle==6.3.0"", ""googleapis-common-protos==1.70.0"", ""lxml[html-clean,html_clean]==5.4.0"", ""markdown-it-py==3.0.0"", ""stevedore==5.4.1"", ""pyasn1-modules==0.4.2"", ""pylint-plugin-utils==0.8.2"", ""rich==14.0.0"", ""distlib==0.3.9"", ""pynacl==1.5.0"", ""click==8.1.8"", ""pbr==6.1.1"", ""jaraco-classes==3.4.0"", ""django==4.2.20"", ""chardet==5.2.0"", ""pyasn1==0.6.1"", ""newrelic==10.10.0"", ""lxml-html-clean==0.4.2"", ""proto-plus==1.26.1"", ""edx-django-utils==7.4.0"", ""pyparsing==3.2.3"", ""pyproject-api==1.9.0"", ""tox==4.25.0"", ""id==1.5.0"", ""simplejson==3.20.1"", ""google-api-core[grpc]==2.24.2"", ""markupsafe==3.0.2"", ""google-cloud-firestore==2.20.2"", ""platformdirs==4.3.7"", ""firebase-admin==6.8.0"", ""charset-normalizer==3.4.1"", ""python-dateutil==2.9.0.post0"", ""code-annotations==2.3.0"", ""docutils==0.21.2"", ""jinja2==3.1.6"", ""google-resumable-media==2.7.2"", ""grpcio-status==1.72.0"", ""dill==0.4.0"", ""google-auth-httplib2==0.2.0"", ""google-cloud-storage==3.1.0"", ""pylint==3.3.6"", ""polib==1.2.0"", ""mccabe==0.7.0"", ""requests==2.32.3"", ""path==16.16.0"", ""psutil==7.0.0"", ""pip-tools==7.4.1"", ""pycparser==2.22"", ""msgpack==1.1.0"", ""pyjwt[crypto]==2.10.1"", ""pyproject-hooks==1.2.0"", ""httplib2==0.22.0"", ""idna==3.10"", ""urllib3==2.2.3"", ""packaging==25.0"", ""jaraco-context==6.0.1"", ""mdurl==0.1.2"", ""more-itertools==10.7.0"", ""pylint-celery==0.3"", ""readme-renderer==44.0"", ""google-crc32c==1.7.1"", ""pluggy==1.5.0"", ""astroid==3.3.9"", ""django-crum==0.7.9"", ""attrs==25.3.0"", ""pyyaml==6.0.2"", ""django-waffle==4.2.0"", ""twine==6.1.0"", ""colorama==0.4.6"", ""click-log==0.4.0"", ""cryptography==44.0.2"", ""rsa==4.9.1"", ""filelock==3.18.0"", ""cffi==1.17.1"", ""isort==6.0.1"", ""pylint-django==2.6.1"", ""sailthru-client==2.2.3"", ""keyring==25.6.0"", ""snowballstemmer==2.2.0"", ""certifi==2025.1.31"", ""nh3==0.2.21"", ""grpcio==1.72.0"", ""protobuf==6.30.2"", ""google-cloud-core==2.4.3"", ""edx-i18n-tools==1.8.0"", ""requests-toolbelt==1.0.0"", ""virtualenv==20.30.0"", ""text-unidecode==1.3"", ""django-push-notifications==3.2.1"", ""cachetools==5.5.2"", ""python-slugify==8.0.4"", ""cachecontrol==0.14.2"", ""wheel==0.45.1"", ""rfc3986==2.0.0"", ""tomlkit==0.13.2"", ""jaraco-functools==4.1.0"", ""pycodestyle==2.13.0"", ""six==1.17.0"", ""build==1.2.2.post1"", ""uritemplate==4.1.1"", ""sqlparse==0.5.3""]",146,"[""google-auth==2.39.0"", ""asgiref==3.8.1"", ""edx-lint==5.6.0"", ""google-api-python-client==2.168.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pydata-sphinx-theme==0.15.4"", ""pygments==2.19.1"", ""diff-cover==9.2.4"", ""pydocstyle==6.3.0"", ""pytz==2025.2"", ""googleapis-common-protos==1.70.0"", ""lxml[html-clean,html_clean]==5.4.0"", ""hypothesis[pytz]==6.104.2"", ""markdown-it-py==3.0.0"", ""stevedore==5.4.1"", ""pyasn1-modules==0.4.2"", ""pylint-plugin-utils==0.8.2"", ""rich==14.0.0"", ""urwid-readline==0.15.1"", ""distlib==0.3.9"", ""pynacl==1.5.0"", ""click==8.1.8"", ""pbr==6.1.1"", ""jaraco-classes==3.4.0"", ""django==4.2.20"", ""chardet==5.2.0"", ""sphinx==8.2.3"", ""pyasn1==0.6.1"", ""newrelic==10.10.0"", ""lxml-html-clean==0.4.2"", ""proto-plus==1.26.1"", ""edx-django-utils==7.4.0"", ""pyparsing==3.2.3"", ""pyproject-api==1.9.0"", ""doc8==1.1.2"", ""tox==4.25.0"", ""id==1.5.0"", ""simplejson==3.20.1"", ""google-api-core[grpc]==2.24.2"", ""urwid==2.6.16"", ""markupsafe==3.0.2"", ""ddt==1.7.2"", ""google-cloud-firestore==2.20.2"", ""parso==0.8.4"", ""platformdirs==4.3.7"", ""pip==24.2"", ""firebase-admin==6.8.0"", ""charset-normalizer==3.4.1"", ""python-dateutil==2.9.0.post0"", ""pytest-django==4.11.1"", ""code-annotations==2.3.0"", ""docutils==0.21.2"", ""jinja2==3.1.6"", ""google-resumable-media==2.7.2"", ""grpcio-status==1.72.0"", ""dill==0.4.0"", ""google-auth-httplib2==0.2.0"", ""google-cloud-storage==3.1.0"", ""pylint==3.3.6"", ""polib==1.2.0"", ""wcwidth==0.2.13"", ""mccabe==0.7.0"", ""requests==2.32.3"", ""path==16.16.0"", ""babel==2.17.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""psutil==7.0.0"", ""pip-tools==7.4.1"", ""pycparser==2.22"", ""msgpack==1.1.0"", ""typing-extensions==4.13.2"", ""pyjwt[crypto]==2.10.1"", ""pytest==8.3.5"", ""soupsieve==2.7"", ""pyproject-hooks==1.2.0"", ""httplib2==0.22.0"", ""restructuredtext-lint==1.4.0"", ""beautifulsoup4==4.13.4"", ""sphinxcontrib-applehelp==2.0.0"", ""idna==3.10"", ""urllib3==2.2.3"", ""sortedcontainers==2.4.0"", ""packaging==25.0"", ""jaraco-context==6.0.1"", ""mdurl==0.1.2"", ""more-itertools==10.7.0"", ""pylint-celery==0.3"", ""readme-renderer==44.0"", ""google-crc32c==1.7.1"", ""iniconfig==2.1.0"", ""pudb==2024.1.3"", ""pluggy==1.5.0"", ""pytest-cov==6.1.1"", ""roman-numerals-py==3.1.0"", ""astroid==3.3.9"", ""django-crum==0.7.9"", ""sphinxcontrib-devhelp==2.0.0"", ""attrs==25.3.0"", ""setuptools==79.0.1"", ""pyyaml==6.0.2"", ""django-waffle==4.2.0"", ""twine==6.1.0"", ""colorama==0.4.6"", ""click-log==0.4.0"", ""cryptography==44.0.2"", ""sphinxcontrib-qthelp==2.0.0"", ""rsa==4.9.1"", ""filelock==3.18.0"", ""hypothesis-pytest==0.19.0"", ""cffi==1.17.1"", ""isort==6.0.1"", ""pylint-django==2.6.1"", ""sailthru-client==2.2.3"", ""jedi==0.19.2"", ""keyring==25.6.0"", ""accessible-pygments==0.0.5"", ""snowballstemmer==2.2.0"", ""certifi==2025.1.31"", ""nh3==0.2.21"", ""grpcio==1.72.0"", ""coverage[toml]==7.8.0"", ""imagesize==1.4.1"", ""protobuf==6.30.2"", ""google-cloud-core==2.4.3"", ""edx-i18n-tools==1.8.0"", ""requests-toolbelt==1.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""virtualenv==20.30.0"", ""text-unidecode==1.3"", ""django-push-notifications==3.2.1"", ""cachetools==5.5.2"", ""python-slugify==8.0.4"", ""cachecontrol==0.14.2"", ""mock==5.2.0"", ""wheel==0.45.1"", ""alabaster==1.0.0"", ""rfc3986==2.0.0"", ""tomlkit==0.13.2"", ""jaraco-functools==4.1.0"", ""pycodestyle==2.13.0"", ""six==1.17.0"", ""pytest-randomly==3.16.0"", ""build==1.2.2.post1"", ""sphinx-book-theme==1.1.4"", ""uritemplate==4.1.1"", ""sqlparse==0.5.3""]",6,"[""edx-i18n-tools"", ""edx-django-utils"", ""pytest-django"", ""code-annotations"", ""pylint-django"", ""django-waffle""]",8,"[""edx-i18n-tools"", ""django-crum"", ""edx-django-utils"", ""newrelic"", ""pytest-django"", ""code-annotations"", ""pylint-django"", ""django-waffle""]",4,"[""edx-i18n-tools"", ""edx-django-utils"", ""django-waffle"", ""code-annotations""]",True,,True,False,True,False,False,True,True,True,True,False,True,False,True,True,True,True,True,True,False,True,True,8,"{""total_duration"": ""6250 minutes 56 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2017-08-08 18:12:33,master,edX's Automated Communication Engine,593,26,True,False,False,False,False,False,False,2026-05-30 15:07:05,GNU AGPLv3,5,True,0,194,665,0,4491,132551,0,True,True,False,False,True,False,False,,openedx,0,"['https://open-edx-backstage.herokuapp.com/catalog/default/component/edx-ace: 404', 'https://travis-ci.com/edx/edx-ace: 415', 'https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\'www.gnu.org\', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError(""HTTPSConnection(host=\'www.gnu.org\', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable""))']",True,"['https://edx-ace.readthedocs.io/en/latest/', 'https://github.com/openedx/edx-ace/blob/master/docs/getting_started.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/edx-ace/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://github.com/openedx/edx-ace/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/edx-ace/blob/master/.github/ISSUE_TEMPLATE.md', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/pypi/v/edx-ace.svg', 'https://pypi.python.org/pypi/edx-ace/', 'https://travis-ci.com/edx/edx-ace.svg?branch=master', 'http://codecov.io/github/edx/edx-ace/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-ace?branch=master', 'https://readthedocs.org/projects/edx-ace/badge/?version=latest', 'http://edx-ace.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-ace.svg', 'https://img.shields.io/github/license/edx/edx-ace.svg', 'https://github.com/openedx/edx-ace/blob/master/LICENSE.txt', 'https://img.shields.io/badge/License-AGPL_v3-blue.svg', 'https://github.com/openedx/edx-ace/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-ace/actions/workflows/ci.yml', 'https://github.com/openedx/edx-ace/actions/workflows/pypi-publish.yml/badge.svg', 'https://github.com/openedx/edx-ace/actions/workflows/pypi-release.yml', 'https://img.shields.io/badge/Status-Maintained-brightgreen']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-ace,"['3', '3.12']",https://github.com/openedx/edx-ace,True,True,True,False,False,False,False,False,False,[],[],[],[] +openedx/repo-tools,,,,True,2026-06-08,True,True,False,True,0,0,[],0,,0,0,,,0,[],0,[],0,[],0,[],0,[],False,,False,True,True,False,False,False,True,True,True,True,False,False,True,True,False,False,False,False,True,True,True,57,"{""total_duration"": ""2453 minutes 34 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 48 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""build (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2013-10-16 22:30:05,master,"Tools for repo maintenance, etc.",1859,46,True,False,False,False,False,False,False,2026-06-06 06:02:25,Apache License 2.0,25,True,0,0,0,0,1205,418378,3941,False,False,False,False,True,False,False,,openedx,2,[],False,"['https://github.com/settings/tokens', 'https://docs.astral.sh/uv/', 'https://astral.sh/uv/install.sh', 'https://github.com/openedx/repo-tools/blob/7aa8bda466d1925c56d4ad6e3b2bdd87b1f83148/README.md']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-admin-portal,,,,False,2026-06-08,True,True,False,False,73,0,,0,{},53,20,"{""@edx/browserslist-config"": ""1.5.0"", ""@edx/typescript-config"": ""1.1.0"", ""@openedx/frontend-build"": ""14.5.0"", ""@testing-library/dom"": ""10.4.0"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""14.6.1"", ""@types/color"": ""^4.2.0"", ""@types/react-instantsearch-dom"": ""^6.12.8"", ""axios-mock-adapter"": ""1.22.0"", ""css-loader"": ""5.2.7"", ""husky"": ""0.14.3"", ""identity-obj-proxy"": ""3.0.0"", ""jest-canvas-mock"": ""^2.4.0"", ""jest-localstorage-mock"": ""^2.4.22"", ""patch-package"": ""8.0.0"", ""postcss"": ""8.4.24"", ""react-test-renderer"": ""^18.3.1"", ""resize-observer-polyfill"": ""1.5.1"", ""ts-jest"": ""^29.0.0""}","{""@babel/plugin-transform-runtime"": ""7.25.9"", ""@dnd-kit/core"": ""^6.3.1"", ""@dnd-kit/sortable"": ""^10.0.0"", ""@dnd-kit/utilities"": ""^3.2.2"", ""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/frontend-enterprise-catalog-search"": ""11.0.1"", ""@edx/frontend-enterprise-hotjar"": ""7.2.0"", ""@edx/frontend-enterprise-logistration"": ""9.2.1"", ""@edx/frontend-enterprise-utils"": ""10.0.0"", ""@edx/frontend-platform"": ""8.5.5"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@openedx/paragon"": ""22.20.3"", ""@tanstack/react-query"": ""4.36.1"", ""@tanstack/react-query-devtools"": ""4.36.1"", ""algoliasearch"": ""4.24.0"", ""canvas-confetti"": ""^1.9.3"", ""classnames"": ""2.5.1"", ""color"": ""3.2.1"", ""color-contrast-checker"": ""^2.1.0"", ""core-js"": ""3.40.0"", ""dash-embedded-component"": ""file:packages/dash-embedded-component-2.0.2.tgz"", ""dayjs"": ""^1.11.9"", ""file-saver"": ""1.3.8"", ""font-awesome"": ""4.7.0"", ""history"": ""4.10.1"", ""html-react-parser"": ""3.0.16"", ""jest-environment-jsdom"": ""29.7.0"", ""lodash-es"": ""^4.17.21"", ""plotly.js"": ""^2.33.0"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-helmet"": ""6.1.0"", ""react-instantsearch-dom"": ""6.40.4"", ""react-markdown"": ""6.0.3"", ""react-plotly.js"": ""^2.6.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.29.0"", ""react-router-dom"": ""6.29.0"", ""react-select"": ""^5.10.2"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""2.13.9"", ""redux-form"": ""8.3.10"", ""redux-logger"": ""3.0.6"", ""redux-mock-store"": ""1.5.5"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""0.14.1"", ""sanitize-html"": ""2.14.0"", ""timeago.js"": ""4.0.2"", ""universal-cookie"": ""4.0.4"", ""use-context-selector"": ""^1.4.1"", ""uuid"": ""9.0.1"", ""validator"": ""13.15.22""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,196,"{""total_duration"": ""4 minutes 12 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2018-05-10 13:44:58,master,edx-portal is a frontend that provides branded learning experiences.,25154,45,True,False,False,False,False,False,False,2026-06-08 01:14:20,GNU AGPLv3,55,True,0,636,890,4234258,1759,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://github.com/openedx/frontend-app-admin-portal/actions/workflows/ci.yml/badge.svg', 'https://codecov.io/gh/edx/frontend-app-admin-portal/branch/master/graph/badge.svg', 'https://github.com/openedx/devstack', 'https://github.com/openedx/edx-analytics-data-api', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-admin-portal/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-02-07,2024-05-22,6,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],[],[] +openedx/tutor-contrib-aspects,,,,True,2026-06-08,True,True,False,False,75,0,[],0,,0,0,,,38,"[""platformdirs==4.10.0"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""urllib3==2.7.0"", ""click==8.2.1"", ""durationpy==0.10"", ""openedx-atlas==0.7.0"", ""idna==3.17"", ""mypy-extensions==1.1.0"", ""pycryptodome==3.23.0"", ""importlib-resources==7.1.0"", ""oauthlib==3.3.1"", ""pathspec==1.1.1"", ""pyyaml==6.0.3"", ""importlib-metadata==9.0.0"", ""packaging==26.2"", ""mypy==2.1.0"", ""websocket-client==1.9.0"", ""librt==0.11.0"", ""black==26.5.1"", ""shandy-sqlfmt[jinjafmt]==0.26.0"", ""ast-serialize==0.5.0"", ""ruamel-yaml==0.19.1"", ""requests==2.34.2"", ""bcrypt==5.0.0"", ""tutor-mfe==21.0.0"", ""tutor==21.0.7"", ""python-dateutil==2.9.0.post0"", ""appdirs==1.4.4"", ""kubernetes==35.0.0"", ""typing-extensions==4.15.0"", ""pytokens==0.4.1"", ""zipp==4.1.0"", ""tqdm==4.67.3"", ""charset-normalizer==3.4.7"", ""six==1.17.0"", ""requests-oauthlib==2.0.0"", ""certifi==2026.5.20""]",75,"[""platformdirs==4.10.0"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""urllib3==2.7.0"", ""pygments==2.20.0"", ""astroid==4.0.4"", ""click==8.2.1"", ""dill==0.4.1"", ""durationpy==0.10"", ""openedx-atlas==0.7.0"", ""pyinstaller-hooks-contrib==2026.5"", ""readme-renderer==44.0"", ""idna==3.17"", ""mypy-extensions==1.1.0"", ""pycryptodome==3.23.0"", ""requests-oauthlib==2.0.0"", ""rich==15.0.0"", ""requests-toolbelt==1.0.0"", ""importlib-resources==7.1.0"", ""oauthlib==3.3.1"", ""jaraco-functools==4.5.0"", ""pathspec==1.1.1"", ""pyyaml==6.0.3"", ""cffi==2.0.0"", ""markdown-it-py==4.2.0"", ""pyinstaller==6.20.0"", ""importlib-metadata==9.0.0"", ""packaging==26.2"", ""pylint==4.0.5"", ""isort==8.0.1"", ""mypy==2.1.0"", ""pycparser==3.0"", ""nh3==0.3.5"", ""tomlkit==0.15.0"", ""websocket-client==1.9.0"", ""librt==0.11.0"", ""black==26.5.1"", ""shandy-sqlfmt[jinjafmt]==0.26.0"", ""ast-serialize==0.5.0"", ""ruamel-yaml==0.19.1"", ""cryptography==48.0.0"", ""requests==2.34.2"", ""bcrypt==5.0.0"", ""tutor-mfe==21.0.0"", ""tutor==21.0.7"", ""docutils==0.23"", ""wheel==0.47.0"", ""setuptools==82.0.1"", ""id==1.6.1"", ""jeepney==0.9.0"", ""appdirs==1.4.4"", ""python-dateutil==2.9.0.post0"", ""pip==26.1.2"", ""pyproject-hooks==1.2.0"", ""kubernetes==35.0.0"", ""twine==6.2.0"", ""typing-extensions==4.15.0"", ""mccabe==0.7.0"", ""keyring==25.7.0"", ""mdurl==0.1.2"", ""secretstorage==3.5.0"", ""click==8.4.1"", ""pip-tools==7.5.3"", ""jaraco-classes==3.4.0"", ""pytokens==0.4.1"", ""zipp==4.1.0"", ""rfc3986==2.0.0"", ""charset-normalizer==3.4.7"", ""tqdm==4.67.3"", ""build==1.5.0"", ""more-itertools==11.1.0"", ""six==1.17.0"", ""jaraco-context==6.1.2"", ""altgraph==0.17.5"", ""certifi==2026.5.20""]",0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,True,True,True,False,False,True,True,True,20,"{""total_duration"": ""6465 minutes 36 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 20 seconds""}, {""name"": ""release"", ""duration"": ""0 minutes 52 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""release"", ""duration"": ""0 minutes 10 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2023-02-07 05:22:39,main,The Open Analytics Reference System - Tutor plugin,3671,30,True,False,False,False,False,False,False,2026-06-08 01:09:39,Apache License 2.0,9,False,0,2318,0,0,3702,235250,17668,False,False,False,False,True,False,False,,openedx,2,['https://github.com/openedx/frontend-plugin-aspects: 504'],False,"['https://docs.tutor.overhang.io', 'https://clickhouse.com', 'https://superset.apache.org', 'https://openfun.github.io/ralph/', 'https://vector.dev', 'https://event-routing-backends.readthedocs.io/en/latest/', 'https://www.getdbt.com', 'https://github.com/openedx/aspects-dbt', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/concepts/aspects_overview.html', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/02_upgrade.html', 'https://docs.tutor.overhang.io/install.html', 'https://docs.tutor.edly.io/gettingstarted/whatsnext.html', 'https://github.com/eduNEXT/tutor-contrib-pod-autoscaling', 'https://pypi.org', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3861512203/Aspects+Beta', 'https://superset.apache.org/docs', 'https://www.getdbt.com/docs/', 'https://vector.dev/docs/', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/aspects_production_configuration.html', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/reference/in_context_dashboards.html']",True,True,False,False,,,False,,,,False,False,False,False,"{ ""Code"": ""https://github.com/openedx/tutor-contrib-aspects"", ""Issue tracker"": ""https://github.com/openedx/tutor-contrib-aspects/issues"", }",False,tutor-contrib-aspects,"['3.11', '3.12']",https://github.com/openedx/tutor-contrib-aspects,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/tutor-contrib-platform-notifications,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2025-09-25 17:27:16,main,A Tutor plugin to manage configuration and plugin slots for the Notifications tray feature.,49,7,True,False,False,False,False,False,False,2026-05-31 19:03:12,GNU AGPLv3,0,False,0,0,0,0,1098,4344,0,False,False,False,False,True,False,False,,openedx,0,[],False,"['https://docs.tutor.edly.io', 'https://docs.openedx.org/en/latest/learners/sfd_notifications/index.html', 'https://github.com/openedx/tutor-contrib-notifications']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-components-tinymce-advanced-plugins,,,,False,2026-06-01,False,False,False,False,7,0,,0,{},1,6,"{""@openedx/frontend-build"": ""14.6.3"", ""@babel/preset-env"": ""^7.22.0"", ""babel-jest"": ""^29.5.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.5.0"", ""jest-environment-jsdom"": ""^29.5.0""}","{""tinymce"": ""^5.10.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""1 minutes 0 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 0 seconds""}]}",Other,2023-08-08 21:27:45,main,,433,7,True,False,False,False,False,False,False,2026-05-19 11:22:23,GNU AGPLv3,0,True,0,0,0,9990,3027,0,266,False,False,False,False,True,False,False,,openedx,0,"['https://www.npmjs.com/package/frontend-components-tinymce-advanced-plugins: 403', 'https://github.com/frontend-components-tinymce-advanced-plugins/blob/master/LICENSE: 404']",False,"['https://img.shields.io/npm/v/frontend-components-tinymce-advanced-plugins.svg', 'https://img.shields.io/npm/dt/frontend-components-tinymce-advanced-plugins.svg', 'https://img.shields.io/npm/l/frontend-components-tinymce-advanced-plugins.svg']",True,True,False,False,,,True,2026-03-30,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-calc,,,,True,2026-06-01,True,True,False,False,64,0,[],0,,0,0,,,6,"[""pyparsing==3.3.2"", ""markupsafe==3.0.3"", ""mpmath==1.3.0"", ""sympy==1.14.0"", ""lxml==6.0.2"", ""numpy==2.4.2""]",64,"[""wheel==0.46.3"", ""pyproject-hooks==1.2.0"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""filelock==3.25.0"", ""sympy==1.14.0"", ""pylint-plugin-utils==0.9.0"", ""charset-normalizer==3.4.5"", ""numpy==2.4.2"", ""pylint-celery==0.3"", ""idna==3.11"", ""markdown-it-py==4.0.0"", ""pyparsing==3.3.2"", ""iniconfig==2.3.0"", ""pip==24.2"", ""annotated-doc==0.0.4"", ""pylint==4.0.5"", ""colorama==0.4.6"", ""shellingham==1.5.4"", ""six==1.17.0"", ""pygments==2.19.2"", ""rich==14.3.3"", ""click==8.3.1"", ""urllib3==2.6.3"", ""platformdirs==4.9.4"", ""isort==8.0.1"", ""markupsafe==3.0.3"", ""pylint-django==2.7.0"", ""mccabe==0.7.0"", ""coverage[toml]==7.13.4"", ""distlib==0.4.0"", ""click-log==0.4.0"", ""mpmath==1.3.0"", ""typer==0.24.1"", ""wheel==0.45.1"", ""requests==2.32.5"", ""pip==26.0.1"", ""jinja2==3.1.6"", ""certifi==2026.2.25"", ""tomli-w==1.2.0"", ""edx-lint==5.6.0"", ""virtualenv==21.1.0"", ""dill==0.4.1"", ""setuptools==82.0.0"", ""cachetools==7.0.3"", ""stevedore==5.7.0"", ""pluggy==1.6.0"", ""tox==4.49.0"", ""pip-tools==7.5.3"", ""pyproject-api==1.10.0"", ""code-annotations==2.3.2"", ""python-slugify==8.0.4"", ""astroid==4.0.4"", ""tomlkit==0.14.0"", ""coverage==7.13.4"", ""lxml==6.0.2"", ""pytest==9.0.2"", ""pyyaml==6.0.3"", ""python-discovery==1.1.1"", ""setuptools==78.1.0"", ""packaging==26.0"", ""mdurl==0.1.2"", ""coveralls==4.1.0"", ""build==1.4.0""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",True,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""2175 minutes 30 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, py)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2019-04-19 21:38:24,master,,235,5,True,False,False,False,False,False,False,2026-06-01 03:45:01,GNU AGPLv3,2,True,0,372,0,0,1345,108019,0,False,False,False,False,True,False,False,,openedx,2,"['https://docs.openedx.org/projects/: 404', 'https://docs.openedx.org/projects/openedx-calc: 404', 'https://github.com/openedx/openedx-calc/blob/main/LICENSE.txt: 404']",True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-calc/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://github.com/openedx/edx-platform', 'https://github.com/openedx/openedx-calc/blob/master/LICENSE', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-calc', 'https://img.shields.io/pypi/v/openedx-calc.svg', 'https://pypi.python.org/pypi/openedx-calc/', 'https://github.com/openedx/openedx-calc/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/openedx-calc/actions', 'https://codecov.io/github/openedx/openedx-calc/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-calc?branch=main', 'https://readthedocs.org/projects/openedx-calc/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-calc.svg', 'https://img.shields.io/github/license/openedx/openedx-calc.svg', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,False,,,False,,,,False,False,False,True,,False,openedx-calc,"['3', '3.12']",https://github.com/openedx/openedx-calc,True,True,True,False,False,False,False,False,False,[],[],"['python3-dev', 'liblapack-dev', 'libblas-dev', 'gfortran']",[] -openedx/openedx-demo-course,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,27,"{""total_duration"": ""15921 minutes 45 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""source_and_tars_match"", ""duration"": ""0 minutes 6 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2013-09-30 15:54:46,master,A demonstration course that can be imported into an Open edX instance,185403,74,True,False,False,False,False,False,False,2026-05-15 15:55:38,GNU AGPLv3,0,True,226293,0,3278834,246757,1717,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://apps.training.openedx.io/catalog/courses/course-v1', 'https://training.openedx.io', 'http://creativecommons.org/licenses/by-nc-sa/3.0/us/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-ora-grading,,,,False,2026-06-01,False,False,False,False,60,0,,0,{},47,13,"{""@edx/browserslist-config"": ""^1.3.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""axios-mock-adapter"": ""^1.20.0"", ""fetch-mock"": ""^9.11.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-expect-message"": ""^1.0.2"", ""react-dev-utils"": ""^12.0.1"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""^1.5.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@fortawesome/fontawesome-svg-core"": ""^1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""^5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""^5.15.4"", ""@fortawesome/react-fontawesome"": ""^0.2.0"", ""@openedx/paragon"": ""^23.4.5"", ""@redux-beacon/segment"": ""^1.1.0"", ""@redux-devtools/extension"": ""3.0.0"", ""@reduxjs/toolkit"": ""^1.6.1"", ""@testing-library/user-event"": ""^14.0.0"", ""@zip.js/zip.js"": ""^2.4.6"", ""axios"": ""^0.28.0"", ""better-react-mathjax"": ""^2.0.3"", ""classnames"": ""^2.3.1"", ""core-js"": ""3.35.1"", ""dompurify"": ""^2.3.1"", ""email-prop-type"": ""^3.0.1"", ""file-saver"": ""^2.0.5"", ""filesize"": ""^8.0.6"", ""font-awesome"": ""4.7.0"", ""history"": ""5.3.0"", ""html-react-parser"": ""^1.3.0"", ""lodash"": ""^4.17.21"", ""moment"": ""^2.29.3"", ""prop-types"": ""15.8.1"", ""query-string"": ""7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-intl"": ""6.4.7"", ""react-pdf"": ""^7.0.0"", ""react-redux"": ""^7.2.9"", ""react-router"": ""6.21.3"", ""react-router-dom"": ""6.21.3"", ""react-router-redux"": ""^5.0.0-alpha.9"", ""redux"": ""4.2.1"", ""redux-beacon"": ""^2.1.0"", ""redux-logger"": ""3.0.6"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""^0.14.0"", ""reselect"": ""^4.0.0"", ""util"": ""^0.12.4"", ""whatwg-fetch"": ""^3.6.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,29,"{""total_duration"": ""2 minutes 52 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 52 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2021-09-16 22:57:46,master,"Open Response Assessment - Enhanced Staff Grader - Allows graders to easily review, evaluate and grade ORAs",6224,68,True,False,False,False,False,False,False,2026-05-29 22:27:46,GNU AGPLv3,6,True,0,0,399,500997,2063,0,0,False,False,False,False,True,False,False,@edx/frontend-app-ora-grading,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora-grading: 404'],False,"['https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/ora_staff_grader', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/nvm-sh/nvm', 'https://openedx.github.io/frontend-platform/', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-ora-grading/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-ora-grading.svg', 'https://github.com/openedx/frontend-app-ora-grading/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-ora-grading/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-ora-grading?branch=master']",True,True,False,False,,,True,2026-04-02,2025-04-09,5,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-webhooks-data-schema,,,,True,2026-06-01,False,False,False,False,74,0,[],0,,0,0,,,2,"[""pyyaml==6.0.2"", ""schema==0.7.7""]",74,"[""pyproject-api==1.9.0"", ""docutils==0.21.2"", ""diff-cover==9.2.4"", ""six==1.17.0"", ""urllib3==2.2.3"", ""chardet==5.2.0"", ""charset-normalizer==3.4.1"", ""tox==4.25.0"", ""idna==3.10"", ""build==1.2.2.post1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""mccabe==0.7.0"", ""doc8==1.1.2"", ""click-log==0.4.0"", ""isort==6.0.1"", ""nh3==0.2.21"", ""iniconfig==2.1.0"", ""pylint-plugin-utils==0.8.2"", ""pbr==6.1.1"", ""snowballstemmer==2.2.0"", ""click==8.1.8"", ""sphinx==8.2.3"", ""accessible-pygments==0.0.5"", ""wheel==0.45.1"", ""code-annotations==2.3.0"", ""filelock==3.18.0"", ""pytest-cov==6.1.1"", ""pylint-celery==0.3"", ""pytest==8.3.5"", ""pygments==2.19.1"", ""distlib==0.3.9"", ""sphinxcontrib-applehelp==2.0.0"", ""pycodestyle==2.13.0"", ""python-slugify==8.0.4"", ""pip==24.2"", ""dill==0.4.0"", ""edx-lint==5.6.0"", ""sphinxcontrib-qthelp==2.0.0"", ""alabaster==1.0.0"", ""schema==0.7.7"", ""certifi==2025.4.26"", ""pylint-django==2.6.1"", ""babel==2.17.0"", ""restructuredtext-lint==1.4.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pip-tools==7.4.1"", ""beautifulsoup4==4.13.4"", ""pydata-sphinx-theme==0.15.4"", ""requests==2.32.3"", ""pyyaml==6.0.2"", ""virtualenv==20.30.0"", ""markupsafe==3.0.2"", ""platformdirs==4.3.7"", ""soupsieve==2.7"", ""setuptools==80.1.0"", ""jinja2==3.1.6"", ""sphinx-book-theme==1.1.4"", ""colorama==0.4.6"", ""astroid==3.3.9"", ""packaging==25.0"", ""text-unidecode==1.3"", ""readme-renderer==44.0"", ""pluggy==1.5.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pylint==3.3.6"", ""cachetools==5.5.2"", ""roman-numerals-py==3.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""stevedore==5.4.1"", ""typing-extensions==4.13.2"", ""pyproject-hooks==1.2.0"", ""imagesize==1.4.1"", ""tomlkit==0.13.2"", ""coverage[toml]==7.8.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,False,True,True,False,False,True,True,True,True,False,True,False,True,True,True,True,False,False,True,True,True,5,"{""total_duration"": """", ""checks"": []}",Other,2020-08-07 11:03:24,main,Schema validators for the data in the (private) openedx/openedx-webhooks-data repo,113,6,True,False,False,False,False,False,False,2025-07-30 09:30:08,Apache License 2.0,1,False,0,0,0,0,2391,11098,0,True,True,False,False,True,False,False,,openedx,5,[],True,"['https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help']",True,True,False,False,,,False,,,,False,False,False,True,,False,repo-tools-data-schema,"['3', '3.11', '3.12']",https://github.com/openedx/repo-tools-data-schema,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/enterprise-integrated-channels,,,,True,2026-06-01,False,False,False,False,172,0,[],0,,0,0,,,70,"[""jwcrypto==1.5.7"", ""slumber==0.7.1"", ""urllib3==2.7.0"", ""boto3==1.43.6"", ""sqlparse==0.5.5"", ""click-plugins==1.1.1.2"", ""charset-normalizer==3.4.7"", ""sortedcontainers==2.4.0"", ""edx-rest-api-client==7.0.0"", ""djangorestframework==3.17.1"", ""edx-opaque-keys[django]==4.0.0"", ""filelock==3.29.0"", ""pycparser==3.0"", ""jmespath==1.1.0"", ""openedx-atlas==0.7.0"", ""pyopenssl==26.2.0"", ""semantic-version==2.10.0"", ""asn1crypto==1.5.1"", ""packaging==26.2"", ""jsonfield==3.2.0"", ""stevedore==5.7.0"", ""edx-drf-extensions==10.6.0"", ""django==5.2.14"", ""django-crum==0.7.9"", ""edx-django-utils==8.0.1"", ""requests==2.33.1"", ""django-fernet-fields-v2==0.9"", ""tzdata==2026.2"", ""oauthlib==3.3.1"", ""click-didyoumean==0.3.1"", ""platformdirs==4.9.6"", ""s3transfer==0.17.0"", ""wcwidth==0.7.0"", ""unicodecsv==0.14.1"", ""edx-rbac==3.0.0"", ""asgiref==3.11.1"", ""certifi==2026.4.22"", ""celery==5.6.3"", ""django-model-utils==5.0.0"", ""six==1.17.0"", ""psutil==7.2.2"", ""prompt-toolkit==3.0.52"", ""django-oauth-toolkit==3.2.0"", ""snowflake-connector-python==4.4.0"", ""django-object-actions==5.0.1"", ""vine==5.1.0"", ""cryptography==48.0.0"", ""python-dateutil==2.9.0.post0"", ""pytz==2026.2"", ""kombu==5.6.2"", ""idna==3.14"", ""pymongo==4.17.0"", ""django-waffle==5.0.0"", ""amqp==5.3.1"", ""cffi==2.0.0"", ""click-repl==0.3.0"", ""tomlkit==0.15.0"", ""typing-extensions==4.15.0"", ""django-simple-history==3.11.0"", ""django-config-models==3.0.0"", ""dnspython==2.8.0"", ""aniso8601==10.0.1"", ""billiard==4.2.4"", ""tzlocal==5.3.1"", ""pynacl==1.6.2"", ""drf-jwt==1.19.2"", ""pyjwt[crypto]==2.12.1"", ""click==8.3.3"", ""edx-tincan-py35==2.0.0"", ""botocore==1.43.6""]",172,"[""pytest-cov==7.1.0"", ""pyproject-hooks==1.2.0"", ""build==1.5.0"", ""edx-lint==6.1.0"", ""semantic-version==2.10.0"", ""defusedxml==0.7.1"", ""stevedore==5.7.0"", ""pylint-celery==0.3"", ""zipp==3.23.1"", ""sphinxcontrib-qthelp==2.0.0"", ""freezegun==1.5.5"", ""pip==26.1.1"", ""roman-numerals==4.1.0"", ""pyproject-api==1.10.0"", ""chardet==7.4.3"", ""s3transfer==0.17.0"", ""pylint-plugin-utils==0.9.0"", ""markupsafe==3.0.3"", ""pydocstyle==6.3.0"", ""six==1.17.0"", ""readme-renderer==44.0"", ""prompt-toolkit==3.0.52"", ""pluggy==1.6.0"", ""snowflake-connector-python==4.4.0"", ""doc8==2.0.0"", ""restructuredtext-lint==2.0.2"", ""vine==5.1.0"", ""edx-ccx-keys==2.0.2"", ""jeepney==0.9.0"", ""idna==3.14"", ""sphinxcontrib-htmlhelp==2.1.0"", ""click-repl==0.3.0"", ""django-simple-history==3.11.0"", ""lxml[html-clean]==6.1.0"", ""pytest-django==4.12.0"", ""tzlocal==5.3.1"", ""virtualenv==21.3.1"", ""drf-jwt==1.19.2"", ""click==8.3.3"", ""polib==1.2.0"", ""code-annotations==2.3.2"", ""rich==15.0.0"", ""accessible-pygments==0.0.5"", ""pip-tools==7.5.3"", ""id==1.6.1"", ""requests-toolbelt==1.0.0"", ""filelock==3.29.0"", ""pycparser==3.0"", ""pyopenssl==26.2.0"", ""asn1crypto==1.5.1"", ""packaging==26.2"", ""social-auth-app-django==5.4.3"", ""edx-django-utils==8.0.1"", ""nh3==0.3.5"", ""wheel==0.47.0"", ""testfixtures==11.0.0"", ""oauthlib==3.3.1"", ""wcwidth==0.7.0"", ""fastavro==1.12.2"", ""keyring==25.7.0"", ""asgiref==3.11.1"", ""pygments==2.20.0"", ""colorama==0.4.6"", ""certifi==2026.4.22"", ""celery==5.6.3"", ""python3-openid==3.2.0"", ""django-oauth-toolkit==3.2.0"", ""factory-boy==3.3.3"", ""python-discovery==1.3.0"", ""cryptography==48.0.0"", ""kombu==5.6.2"", ""astroid==4.0.4"", ""typing-extensions==4.15.0"", ""dill==0.4.1"", ""sphinxcontrib-applehelp==2.0.0"", ""pycodestyle==2.14.0"", ""social-auth-core==4.9.1"", ""jaraco-context==6.1.2"", ""distlib==0.4.0"", ""edx-i18n-tools==2.0.0"", ""psutil==7.2.2"", ""urllib3==2.7.0"", ""pytest==9.0.3"", ""importlib-metadata==9.0.0"", ""pyyaml==6.0.3"", ""boto3==1.43.6"", ""jwcrypto==1.5.7"", ""botocore==1.43.6"", ""text-unidecode==1.3"", ""sqlparse==0.5.5"", ""click-plugins==1.1.1.2"", ""charset-normalizer==3.4.7"", ""edx-rest-api-client==7.0.0"", ""djangorestframework==3.17.1"", ""edx-opaque-keys[django]==4.0.0"", ""openedx-atlas==0.7.0"", ""jsonfield==3.2.0"", ""edx-drf-extensions==10.6.0"", ""django-crum==0.7.9"", ""snowballstemmer==3.0.1"", ""cachetools==7.1.1"", ""django-fernet-fields-v2==0.9"", ""click-log==0.4.0"", ""rfc3986==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""mccabe==0.7.0"", ""platformdirs==4.9.6"", ""alabaster==1.0.0"", ""python-slugify==8.0.4"", ""path==16.16.0"", ""django-model-utils==5.0.0"", ""docutils==0.21.2"", ""imagesize==2.0.0"", ""sphinx==9.0.4"", ""sphinxcontrib-jsmath==1.0.1"", ""django-object-actions==5.0.1"", ""diff-cover==10.2.0"", ""babel==2.18.0"", ""twine==6.2.0"", ""ddt==1.3.1"", ""python-dateutil==2.9.0.post0"", ""beautifulsoup4==4.14.3"", ""django-countries==8.2.0"", ""mdurl==0.1.2"", ""cffi==2.0.0"", ""tomlkit==0.15.0"", ""django-config-models==3.0.0"", ""dnspython==2.8.0"", ""aniso8601==10.0.1"", ""pylint==4.0.5"", ""backports-tarfile==1.2.0"", ""jaraco-functools==4.4.0"", ""sphinx-book-theme==1.2.0"", ""slumber==0.7.1"", ""sortedcontainers==2.4.0"", ""jmespath==1.1.0"", ""jinja2==3.1.6"", ""coverage[toml]==7.14.0"", ""jaraco-classes==3.4.0"", ""lxml-html-clean==0.4.4"", ""django==5.2.14"", ""requests==2.33.1"", ""responses==0.26.0"", ""faker==40.15.0"", ""more-itertools==11.0.2"", ""tzdata==2026.2"", ""requests-oauthlib==2.0.0"", ""attrs==26.1.0"", ""click-didyoumean==0.3.1"", ""mock==5.2.0"", ""iniconfig==2.3.0"", ""unicodecsv==0.14.1"", ""edx-rbac==3.0.0"", ""isort==8.0.1"", ""tomli-w==1.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pydata-sphinx-theme==0.16.1"", ""soupsieve==2.8.3"", ""pytz==2026.2"", ""pymongo==4.17.0"", ""django-waffle==5.0.0"", ""amqp==5.3.1"", ""openedx-events==10.5.0"", ""setuptools==82.0.1"", ""tox==4.53.1"", ""pylint-django==2.7.0"", ""billiard==4.2.4"", ""pynacl==1.6.2"", ""secretstorage==3.5.0"", ""markdown-it-py==4.2.0"", ""pyjwt[crypto]==2.12.1"", ""edx-tincan-py35==2.0.0""]",16,"[""edx-django-utils"", ""django-oauth-toolkit"", ""django-object-actions"", ""social-auth-app-django"", ""edx-rbac"", ""djangorestframework"", ""edx-rest-api-client"", ""django-countries"", ""edx-i18n-tools"", ""django-config-models"", ""factory-boy"", ""pytest-django"", ""edx-drf-extensions"", ""django-waffle"", ""pylint-django"", ""code-annotations""]",21,"[""edx-django-utils"", ""factory-boy"", ""pytest-django"", ""edx-drf-extensions"", ""django-simple-history"", ""social-auth-app-django"", ""edx-rbac"", ""djangorestframework"", ""django-countries"", ""code-annotations"", ""drf-jwt"", ""django-model-utils"", ""edx-rest-api-client"", ""django-crum"", ""django-oauth-toolkit"", ""django-object-actions"", ""jsonfield"", ""edx-i18n-tools"", ""django-config-models"", ""django-waffle"", ""pylint-django""]",11,"[""edx-django-utils"", ""django-oauth-toolkit"", ""social-auth-app-django"", ""edx-rbac"", ""edx-rest-api-client"", ""django-countries"", ""edx-i18n-tools"", ""django-config-models"", ""edx-drf-extensions"", ""django-waffle"", ""code-annotations""]",True,,True,True,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,7,"{""total_duration"": ""13791 minutes 9 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.11, django52)"", ""duration"": ""4 minutes 11 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""3 minutes 42 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, quality)"", ""duration"": ""1 minutes 40 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 37 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 30 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, pii_check)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2024-10-29 13:52:13,main,,1049,16,True,False,False,False,False,False,False,2026-06-01 00:57:30,GNU AGPLv3,8,True,0,0,39984,0,5134,2233500,0,True,True,False,False,True,False,False,,openedx,1,['https://docs.openedx.org/projects/enterprise-integrated-channels: 404'],True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://github.com/openedx/enterprise-integrated-channels/blob/main/channel_integrations/README.md', 'https://discuss.openedx.org', 'https://github.com/openedx/enterprise-integrated-channels/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/enterprise-integrated-channels', 'https://img.shields.io/pypi/v/enterprise-integrated-channels.svg', 'https://pypi.python.org/pypi/enterprise-integrated-channels/', 'https://github.com/openedx/enterprise-integrated-channels/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/enterprise-integrated-channels/actions', 'https://codecov.io/github/openedx/enterprise-integrated-channels/coverage.svg?branch=main', 'https://codecov.io/github/openedx/enterprise-integrated-channels?branch=main', 'https://readthedocs.org/projects/enterprise-integrated-channels/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/enterprise-integrated-channels.svg', 'https://img.shields.io/github/license/openedx/enterprise-integrated-channels.svg', 'https://github.com/openedx/enterprise-integrated-channels/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,enterprise-integrated-channels,"['3', '3.11']",https://github.com/openedx/enterprise-integrated-channels,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/edx-organizations,,,,True,2026-06-01,True,True,False,False,37,0,[],0,,0,0,,,31,"[""cryptography==48.0.0"", ""urllib3==2.7.0"", ""django-crum==0.7.9"", ""pillow==12.2.0"", ""charset-normalizer==3.4.7"", ""cffi==2.0.0"", ""sqlparse==0.5.5"", ""stevedore==5.8.0"", ""asgiref==3.11.1"", ""setuptools==82.0.1"", ""pynacl==1.6.2"", ""idna==3.16"", ""requests==2.34.2"", ""pyjwt[crypto]==2.13.0"", ""django-model-utils==5.0.0"", ""certifi==2026.5.20"", ""psutil==7.2.2"", ""click==8.4.1"", ""djangorestframework==3.17.1"", ""django==5.2.14"", ""pycparser==3.0"", ""edx-django-utils==8.0.1"", ""django-waffle==5.0.0"", ""drf-jwt==1.19.2"", ""django-simple-history==3.11.0"", ""semantic-version==2.10.0"", ""pymongo==4.17.0"", ""typing-extensions==4.15.0"", ""dnspython==2.8.0"", ""edx-opaque-keys==4.0.0"", ""edx-drf-extensions==10.6.0""]",37,"[""cryptography==48.0.0"", ""urllib3==2.7.0"", ""django-crum==0.7.9"", ""pillow==12.2.0"", ""charset-normalizer==3.4.7"", ""packaging==26.2"", ""cffi==2.0.0"", ""sqlparse==0.5.5"", ""build==1.5.0"", ""stevedore==5.8.0"", ""wheel==0.47.0"", ""asgiref==3.11.1"", ""setuptools==82.0.1"", ""pynacl==1.6.2"", ""idna==3.16"", ""requests==2.34.2"", ""pyjwt[crypto]==2.13.0"", ""django-model-utils==5.0.0"", ""pip-tools==7.5.3"", ""certifi==2026.5.20"", ""psutil==7.2.2"", ""pyproject-hooks==1.2.0"", ""click==8.4.1"", ""djangorestframework==3.17.1"", ""django==5.2.14"", ""pycparser==3.0"", ""edx-django-utils==8.0.1"", ""django-waffle==5.0.0"", ""drf-jwt==1.19.2"", ""pip==26.1.1"", ""django-simple-history==3.11.0"", ""semantic-version==2.10.0"", ""pymongo==4.17.0"", ""typing-extensions==4.15.0"", ""dnspython==2.8.0"", ""edx-opaque-keys==4.0.0"", ""edx-drf-extensions==10.6.0""]",5,"[""djangorestframework"", ""django-waffle"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-django-utils""]",9,"[""djangorestframework"", ""django-waffle"", ""drf-jwt"", ""django-model-utils"", ""edx-opaque-keys"", ""edx-drf-extensions"", ""edx-django-utils"", ""django-simple-history"", ""django-crum""]",4,"[""edx-opaque-keys"", ""edx-drf-extensions"", ""django-waffle"", ""edx-django-utils""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,6,"{""total_duration"": ""3 minutes 43 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 5 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2015-07-14 19:39:03,master,,497,36,True,False,False,False,False,False,False,2026-06-01 01:10:29,GNU AGPLv3,3,True,0,0,0,0,1206,133892,0,False,True,False,False,True,False,False,,openedx,4,[],False,"['https://github.com/openedx/edx-organizations/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-organizations/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/github/edx/edx-organizations/badge.svg?branch=master', 'https://coveralls.io/github/edx/edx-organizations?branch=master', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,edx-organizations,"['3', '3.12']",https://github.com/openedx/edx-organizations,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/tutor-contrib-aspects-sample,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,False,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1 minutes 8 seconds"", ""checks"": [{""name"": ""tests (3.12)"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""tests (3.9)"", ""duration"": ""0 minutes 40 seconds""}]}",Other,2026-01-28 18:40:12,main,,32,1,True,False,False,False,False,False,False,2026-05-15 14:25:45,GNU AGPLv3,1,False,0,0,0,0,1084,7373,0,False,False,False,False,True,False,False,,openedx,0,[],False,"['https://docs.tutor.edly.io', 'https://github.com/saraburns1/tutor-contrib-aspects-sample', 'https://superset.apache.org/docs', 'https://www.getdbt.com/docs/', 'https://clickhouse.com/docs', 'https://docs.tutor.overhang.io', 'https://event-routing-backends.readthedocs.io/en/latest/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/credentials-themes,,,,True,2026-06-01,True,True,False,False,33,0,[],0,{},0,16,"{""@edx/brand"": ""npm:@edx/elm-theme@^1.11.1"", ""@openedx/paragon"": ""^23.14.2"", ""bi-app-sass"": ""1.1.0"", ""css-loader"": ""7.1.4"", ""file-loader"": ""6.2.0"", ""font-awesome"": ""4.7.0"", ""imports-loader"": ""5.0.0"", ""jquery"": ""3.7.1"", ""mini-css-extract-plugin"": ""2.10.2"", ""popper.js"": ""1.16.1"", ""sass"": ""1.99.0"", ""sass-loader"": ""16.0.7"", ""style-loader"": ""4.0.0"", ""url-loader"": ""4.1.1"", ""webpack"": ""5.106.0"", ""webpack-cli"": ""6.0.1""}",{},9,"[""lxml-html-clean==0.4.3"", ""django==4.2.25"", ""lxml[html-clean]==6.0.2"", ""edx-i18n-tools==1.9.0"", ""asgiref==3.10.0"", ""pyyaml==6.0.3"", ""sqlparse==0.5.3"", ""path==16.16.0"", ""polib==1.2.0""]",17,"[""click==8.3.0"", ""packaging==25.0"", ""lxml-html-clean==0.4.3"", ""django==4.2.25"", ""path==16.16.0"", ""pip==25.2"", ""pyproject-hooks==1.2.0"", ""lxml[html-clean]==6.0.2"", ""setuptools==80.9.0"", ""pip-tools==7.5.1"", ""edx-i18n-tools==1.9.0"", ""wheel==0.45.1"", ""asgiref==3.10.0"", ""pyyaml==6.0.3"", ""sqlparse==0.5.3"", ""build==1.3.0"", ""polib==1.2.0""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",False,,False,False,True,False,False,False,True,True,True,True,True,True,False,True,False,True,False,True,False,True,True,8,"{""total_duration"": ""0 minutes 49 seconds"", ""checks"": [{""name"": ""tests (3.12, 4.2)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (3.12, 5.2)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""Autotag commit"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2017-04-12 17:59:59,master,Themes for the edX Credentials Service,4598,9,True,False,False,False,False,False,False,2026-05-30 13:50:35,GNU AGPLv3,7,True,3514374,0,13462,2477,2742,6319,0,False,False,False,False,True,False,False,,openedx,0,[],False,['https://docs.Djangoproject.com/en/1.11/topics/i18n/translation/'],True,True,False,False,,,True,2026-04-10,2025-11-21,4,False,False,False,False,,False,edx_credentials_themes,['3.12'],https://github.com/openedx/credentials-themes,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-learner-portal-enterprise,,,,False,2026-06-01,True,True,False,False,73,0,,0,{},47,26,"{""@edx/browserslist-config"": ""^1.5.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@faker-js/faker"": ""^8.4.1"", ""@openedx/frontend-build"": ""^14.6.0"", ""@tanstack/eslint-plugin-query"": ""^4.38.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^5.17.0"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/react"": ""^18.3.20"", ""acorn"": ""^8.14.0"", ""axios"": ""^1.12.0"", ""axios-mock-adapter"": ""^1.22.0"", ""jest-canvas-mock"": ""^2.5.2"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-fetch-mock"": ""^3.0.3"", ""jest-when"": ""^3.7.0"", ""js-yaml"": ""^4.1.0"", ""match-media-mock"": ""^0.1.1"", ""mockdate"": ""^3.0.5"", ""openapi-typescript"": ""^6.7.6"", ""prettier"": ""^2.8.8"", ""react-test-renderer"": ""^18.3.1"", ""resize-observer-polyfill"": ""^1.5.1"", ""rosie"": ""^2.1.1"", ""ts-loader"": ""^9.5.2""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-enterprise-catalog-search"": ""^11.0.2"", ""@edx/frontend-enterprise-hotjar"": ""^7.2.0"", ""@edx/frontend-enterprise-logistration"": ""^9.2.1"", ""@edx/frontend-enterprise-utils"": ""^10.0.0"", ""@edx/frontend-platform"": ""^8.5.1"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@loadable/component"": ""^5.16.4"", ""@lukemorales/query-key-factory"": ""^1.3.4"", ""@openedx/frontend-slot-footer"": ""^1.2.1"", ""@openedx/paragon"": ""^22.17.0"", ""@tanstack/react-query"": ""^5.74.9"", ""@tanstack/react-query-devtools"": ""^5.74.9"", ""accessible-nprogress"": ""^2.1.2"", ""algoliasearch"": ""^4.24.0"", ""classnames"": ""^2.5.1"", ""color"": ""^3.2.1"", ""dayjs"": ""^1.11.13"", ""dompurify"": ""^2.5.4"", ""formik"": ""^2.4.6"", ""history"": ""^4.10.1"", ""iso-639-1"": ""^2.1.15"", ""jest-localstorage-mock"": ""^2.4.26"", ""lodash-es"": ""^4.17.21"", ""plotly.js-dist"": ""^2.35.3"", ""prop-types"": ""^15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.1.2"", ""react-helmet"": ""^6.1.0"", ""react-instantsearch-dom"": ""^6.40.4"", ""react-parallax"": ""^3.5.2"", ""react-redux"": ""^7.2.9"", ""react-router"": ""^6.29.0"", ""react-router-dom"": ""^6.29.0"", ""react-router-hash-link"": ""^2.4.3"", ""react-scroll"": ""^1.9.3"", ""react-string-replace"": ""^1.1.1"", ""react-transition-group"": ""^4.4.5"", ""redux"": ""^4.2.1"", ""type-fest"": ""^3.13.1"", ""universal-cookie"": ""^4.0.4"", ""uuid"": ""^9.0.1"", ""video.js"": ""^8.22.0"", ""videojs-vjstranscribe"": ""^1.0.3"", ""videojs-youtube"": ""^3.0.1""}",0,,0,,0,[],0,[],0,[],False,,False,True,True,False,False,False,True,True,True,True,True,True,False,False,False,False,False,False,False,False,True,139,"{""total_duration"": ""2408 minutes 52 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""4 minutes 59 seconds""}, {""name"": ""Dependabot"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""generate"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""generate"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-09-23 14:57:34,master,Enterprise Learner Portal,21861,29,True,False,False,False,False,False,False,2026-06-01 03:59:16,GNU AGPLv3,43,True,0,0,1436,2510906,1848,0,0,False,False,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/frontend-app-learner-portal-enterpise.git: 404', 'http://localhostL8734/: HTTPConnectionPool(host=\'localhostl8734\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'localhostl8734\', port=80): Failed to resolve \'localhostl8734\' ([Errno -3] Temporary failure in name resolution)""))']",False,"['https://github.com/openedx/frontend-app-learner-portal-enterprise/actions/workflows/ci.yml/badge.svg', 'https://openedx.atlassian.net/wiki/spaces/ENG/pages/12550298/Developer+Onboarding', 'https://github.com/openedx/edx-enterprise/blob/master/enterprise/management/commands/seed_enterprise_devstack_data.py', 'https://github.com/openedx/edx-platform/blob/0e2b612c1fb4f3e385f3004801aa5b5ed0221eda/lms/envs/devstack.py', 'https://github.com/openedx/devstack', 'https://go.microsoft.com/fwlink/?linkid=830387', 'https://openedx.atlassian.net/wiki/spaces/SOL/pages/997654609/Hitchhiker+s+Engineer+s+Guide+to+the+Enterprise+Ecosystem', 'https://reactjs.org/', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-learner-portal-enterprise/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-02,2025-02-24,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/django-pyfs,,,,True,2026-06-01,True,True,False,False,92,0,[],0,,0,0,,,32,"[""django==5.2.12"", ""platformdirs==4.9.4"", ""click==8.3.1"", ""boto3==1.42.68"", ""asgiref==3.11.1"", ""build==1.4.0"", ""cachetools==7.0.5"", ""filelock==3.25.2"", ""packaging==26.0"", ""python-dateutil==2.9.0.post0"", ""fs==2.4.16"", ""colorama==0.4.6"", ""botocore==1.42.68"", ""pip-tools==7.5.3"", ""wheel==0.46.3"", ""sqlparse==0.5.5"", ""pluggy==1.6.0"", ""tox==4.49.1"", ""fs-s3fs==1.1.1"", ""pyproject-hooks==1.2.0"", ""tomli-w==1.2.0"", ""appdirs==1.4.4"", ""distlib==0.4.0"", ""jmespath==1.1.0"", ""urllib3==2.6.3"", ""python-discovery==1.1.3"", ""virtualenv==21.2.0"", ""pip==26.0.1"", ""six==1.17.0"", ""pyproject-api==1.10.0"", ""s3transfer==0.16.0"", ""setuptools==81.0.0""]",92,"[""astroid==4.0.4"", ""boto3==1.42.68"", ""snowballstemmer==3.0.1"", ""id==1.6.1"", ""pytest-cov==7.0.0"", ""pylint-celery==0.3"", ""sqlparse==0.5.5"", ""fs-s3fs==1.1.1"", ""text-unidecode==1.3"", ""importlib-metadata==8.7.1"", ""appdirs==1.4.4"", ""distlib==0.4.0"", ""jmespath==1.1.0"", ""stevedore==5.7.0"", ""urllib3==2.6.3"", ""python-discovery==1.1.3"", ""responses==0.26.0"", ""pygments==2.19.2"", ""backports-tarfile==1.2.0"", ""s3transfer==0.16.0"", ""coverage[toml]==7.13.4"", ""keyring==25.7.0"", ""xmltodict==1.0.4"", ""django==5.2.12"", ""jaraco-context==6.1.1"", ""asgiref==3.11.1"", ""cachetools==7.0.5"", ""edx-lint==6.0.0"", ""packaging==26.0"", ""python-dateutil==2.9.0.post0"", ""zipp==3.23.0"", ""botocore==1.42.68"", ""mock==5.2.0"", ""pydocstyle==6.3.0"", ""pip-tools==7.5.3"", ""twine==6.2.0"", ""certifi==2026.2.25"", ""more-itertools==10.8.0"", ""pycparser==3.0"", ""markdown-it-py==4.0.0"", ""jinja2==3.1.6"", ""virtualenv==21.2.0"", ""pip==26.0.1"", ""cffi==2.0.0"", ""jaraco-classes==3.4.0"", ""setuptools==81.0.0"", ""isort==8.0.1"", ""charset-normalizer==3.4.6"", ""python-slugify==8.0.4"", ""platformdirs==4.9.4"", ""click==8.3.1"", ""pycodestyle==2.14.0"", ""build==1.4.0"", ""jeepney==0.9.0"", ""filelock==3.25.2"", ""pyyaml==6.0.3"", ""pytest-django==4.12.0"", ""fs==2.4.16"", ""colorama==0.4.6"", ""docutils==0.22.4"", ""tox==4.49.1"", ""idna==3.11"", ""moto==4.2.14"", ""mccabe==0.7.0"", ""markupsafe==3.0.3"", ""six==1.17.0"", ""pylint==4.0.5"", ""pyproject-api==1.10.0"", ""pypng==0.20220715.0"", ""jaraco-functools==4.4.0"", ""nh3==0.3.3"", ""mdurl==0.1.2"", ""requests==2.32.5"", ""rich==14.3.3"", ""secretstorage==3.5.0"", ""wheel==0.46.3"", ""pluggy==1.6.0"", ""pylint-django==2.7.0"", ""pytest==9.0.2"", ""pyproject-hooks==1.2.0"", ""tomli-w==1.2.0"", ""requests-toolbelt==1.0.0"", ""cryptography==46.0.5"", ""readme-renderer==44.0"", ""dill==0.4.1"", ""code-annotations==2.3.2"", ""tomlkit==0.14.0"", ""iniconfig==2.3.0"", ""click-log==0.4.0"", ""rfc3986==2.0.0"", ""werkzeug==3.1.6"", ""pylint-plugin-utils==0.9.0""]",3,"[""pylint-django"", ""pytest-django"", ""code-annotations""]",3,"[""pylint-django"", ""pytest-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""2241 minutes 37 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2015-09-21 15:53:54,master,A Django module which extends pyfilesystem with several methods to make it convenient for web use. ,276,13,True,False,False,False,False,False,False,2026-06-01 04:15:38,Apache License 2.0,4,True,0,0,0,0,2697,38658,0,True,True,False,False,True,False,False,,openedx,5,['https://github.com/openedx/django-pyfs/blob/master/LICENSE.txt: 404'],False,"['https://img.shields.io/pypi/v/openedx-django-pyfs.svg', 'https://pypi.python.org/pypi/openedx-django-pyfs/', 'https://github.com/openedx/django-pyfs/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/django-pyfs/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/openedx/django-pyfs/coverage.svg?branch=master', 'http://codecov.io/github/openedx/django-pyfs?branch=master', 'https://img.shields.io/pypi/pyversions/openedx-django-pyfs.svg', 'https://pypi.python.org/pypi/openedx-django-pyfs', 'https://img.shields.io/github/license/openedx/django-pyfs.svg']",True,True,False,False,,,False,,,,False,True,False,True,,False,openedx-django-pyfs,"['3', '3.12']",https://github.com/openedx/django-pyfs,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/pr_watcher_notifier,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,False,False,False,True,False,False,False,True,True,True,7,"{""total_duration"": ""0 minutes 27 seconds"", ""checks"": [{""name"": ""Run Tests (3.12)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Run Tests (3.11)"", ""duration"": ""0 minutes 25 seconds""}]}",Other,2020-04-06 17:49:34,master,A flask web application to handle pull request webhook events and send notification when watched files are changed,78,3,True,False,False,False,True,False,False,2026-05-30 15:32:44,GNU AGPLv3,0,True,0,0,0,0,618,27452,453,False,False,False,False,True,False,False,,openedx,0,['https://pythonhosted.org/Flask-Mail/: 404'],False,"['https://developer.github.com/webhooks/creating/', 'https://github.com/settings/tokens', 'https://github.com/lgp171188/custom_templates']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/sample-aspects-dbt,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,False,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": """", ""checks"": []}",Other,2026-01-28 16:24:46,main,Example of how to create a custom dbt package to work with Aspects,15,1,True,False,False,False,False,False,False,2026-05-13 12:09:41,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://docs.getdbt.com/reference/resource-properties/unit-tests', 'https://discuss.openedx.org', 'https://docs.getdbt.com/docs/introduction', 'https://discourse.getdbt.com/', 'https://community.getdbt.com/', 'https://events.getdbt.com', 'https://blog.getdbt.com/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-proposals,,,,True,2026-06-01,True,True,False,False,45,0,[],0,,0,0,,,30,"[""typing-extensions==4.15.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""accessible-pygments==0.0.5"", ""markupsafe==3.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxext-rediraffe==0.3.0"", ""sphinx-copybutton==0.5.2"", ""roman-numerals==4.1.0"", ""pygments==2.20.0"", ""jinja2==3.1.6"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-jsmath==1.0.1"", ""soupsieve==2.8.4"", ""urllib3==2.7.0"", ""idna==3.16"", ""babel==2.18.0"", ""alabaster==1.0.0"", ""snowballstemmer==3.1.0"", ""certifi==2026.5.20"", ""imagesize==2.0.0"", ""packaging==26.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""docutils==0.22.4"", ""sphinxcontrib-qthelp==2.0.0"", ""requests==2.34.2"", ""charset-normalizer==3.4.7"", ""beautifulsoup4==4.14.3"", ""sphinx-book-theme==1.2.0"", ""sphinx==9.1.0""]",45,"[""typing-extensions==4.15.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""accessible-pygments==0.0.5"", ""markupsafe==3.0.3"", ""sphinxcontrib-devhelp==2.0.0"", ""starlette==1.1.0"", ""pyproject-hooks==1.2.0"", ""sphinxext-rediraffe==0.3.0"", ""sphinx-copybutton==0.5.2"", ""roman-numerals==4.1.0"", ""sphinx-autobuild==2025.8.25"", ""pygments==2.20.0"", ""jinja2==3.1.6"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-jsmath==1.0.1"", ""pip-tools==7.5.3"", ""anyio==4.13.0"", ""wheel==0.47.0"", ""soupsieve==2.8.4"", ""build==1.5.0"", ""urllib3==2.7.0"", ""idna==3.16"", ""uvicorn==0.48.0"", ""babel==2.18.0"", ""alabaster==1.0.0"", ""snowballstemmer==3.1.0"", ""certifi==2026.5.20"", ""imagesize==2.0.0"", ""packaging==26.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""docutils==0.22.4"", ""sphinxcontrib-qthelp==2.0.0"", ""h11==0.16.0"", ""setuptools==82.0.1"", ""requests==2.34.2"", ""websockets==16.0"", ""charset-normalizer==3.4.7"", ""colorama==0.4.6"", ""pip==26.1.1"", ""beautifulsoup4==4.14.3"", ""watchfiles==1.2.0"", ""sphinx-book-theme==1.2.0"", ""click==8.4.1"", ""sphinx==9.1.0""]",0,[],0,[],0,[],True,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,False,False,False,False,True,True,True,30,"{""total_duration"": ""0 minutes 46 seconds"", ""checks"": [{""name"": ""update-pip-graph"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""check_for_moved_files (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 14 seconds""}]}",Other,2016-03-31 15:36:33,master,"Proposals for Open edX architecture, best practices and processes ",10407,44,True,False,False,False,False,False,False,2026-05-29 14:20:32,Other,1,True,0,0,0,0,9128,12442,0,False,False,False,False,False,False,False,,openedx,2,['https://github.com/openedx/openedx-proposals/blob/main/LICENSE.txt: 404'],False,"['https://docs.openedx.org/projects/openedx-proposals/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.slack.com/archives/C1L370YTZ', 'https://discuss.openedx.org/c/announcements/17', 'https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html', 'https://docs.openedx.org/en/latest/developers/quickstarts/first_openedx_pr.html', 'http://graphviz.org/', 'https://discuss.openedx.org/', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-proposals', 'https://img.shields.io/badge/License-CC_BY--SA_4.0-lightgrey.svg', 'https://readthedocs.org/projects/openedx-proposals/badge/?version=latest', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/contributors/openedx/openedx-proposals.svg']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-platform,,,,False,2026-06-01,False,False,False,False,39,0,,0,{},19,20,"{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/browserslist-config"": ""1.5.0"", ""@openedx/frontend-build"": ""^14.3.0"", ""@openedx/paragon"": ""^23.3.0"", ""@testing-library/dom"": ""10.4.0"", ""@testing-library/jest-dom"": ""6.6.3"", ""@testing-library/react"": ""16.2.0"", ""@testing-library/user-event"": ""14.6.1"", ""@types/node"": ""^25.6.0"", ""axios-mock-adapter"": ""^1.22.0"", ""jest-environment-jsdom"": ""29.7.0"", ""jest-localstorage-mock"": ""^2.4.26"", ""jsdoc"": ""^4.0.0"", ""nodemon"": ""3.1.11"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-redux"": ""^8.1.1"", ""react-router-dom"": ""^6.6.1"", ""redux"": ""4.2.1""}","{""@cospired/i18n-iso-languages"": ""4.2.0"", ""@formatjs/intl-pluralrules"": ""4.3.3"", ""@formatjs/intl-relativetimeformat"": ""10.0.1"", ""axios"": ""1.15.0"", ""axios-cache-interceptor"": ""1.11.4"", ""form-urlencoded"": ""4.1.4"", ""glob"": ""7.2.3"", ""history"": ""4.10.1"", ""i18n-iso-countries"": ""4.3.1"", ""jwt-decode"": ""3.1.2"", ""localforage"": ""1.10.0"", ""localforage-memoryStorageDriver"": ""0.9.2"", ""lodash.camelcase"": ""4.3.0"", ""lodash.memoize"": ""4.1.2"", ""lodash.merge"": ""4.6.2"", ""lodash.snakecase"": ""4.1.1"", ""pubsub-js"": ""1.9.5"", ""react-intl"": ""6.8.9"", ""universal-cookie"": ""4.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,True,False,False,False,False,False,False,True,True,True,51,"{""total_duration"": ""16536 minutes 6 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""1 minutes 53 seconds""}, {""name"": ""Release"", ""duration"": ""1 minutes 25 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-11-06 21:04:09,master,A framework for Open edX micro-frontend applications.,37463,89,True,False,False,False,False,False,False,2026-05-29 00:00:04,GNU AGPLv3,23,True,0,0,237,340243,1837,0,0,False,False,False,False,False,False,False,@edx/frontend-platform,openedx,0,"['https://www.npmjs.com/package/@edx/frontend-platform: 403', 'http://local.openedx.io: HTTPConnectionPool(host=\'local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://en.wikipedia.org/wiki/Convention_over_configuration: 403', 'https://edx.github.io/frontend-platform/module-Initialization.html: 404', 'https://edx.github.io/frontend-platform/module-Config.html: 404', 'https://custom.example.com/educators/index.html: HTTPSConnectionPool(host=\'custom.example.com\', port=443): Max retries exceeded with url: /educators/index.html (Caused by NameResolutionError(""HTTPSConnection(host=\'custom.example.com\', port=443): Failed to resolve \'custom.example.com\' ([Errno -5] No address associated with hostname)""))']",False,"['https://github.com/openedx/frontend-platform/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-platform/actions/workflows/ci.yml', 'https://img.shields.io/codecov/c/github/edx/frontend-platform', 'https://codecov.io/gh/edx/frontend-platform', 'https://img.shields.io/npm/v/@edx/frontend-platform.svg', 'https://img.shields.io/npm/dt/@edx/frontend-platform.svg', 'https://img.shields.io/npm/l/@edx/frontend-platform.svg', 'https://github.com/openedx/frontend-platform/blob/master/LICENSE', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release', 'https://openedx.github.io/frontend-platform/', 'https://docs.openedx.org/en/latest/educators/index.html', 'https://creativecommons.org/licenses', 'https://www.tldrlegal.com/license/creative-commons-attribution-cc', 'https://github.com/openedx/frontend-build']",True,True,False,False,,,True,2026-04-10,2023-05-29,13,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/stylelint-config-edx,,,,False,2026-06-01,False,False,False,False,12,0,,0,{},4,8,"{""@edx/eslint-config"": ""^3.0.0"", ""eslint"": ""^8.14.0"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-import-resolver-webpack"": ""^0.13.9"", ""eslint-plugin-import"": ""^2.26.0"", ""eslint-plugin-jsx-a11y"": ""^6.5.1"", ""eslint-plugin-react"": ""^7.29.4"", ""eslint-plugin-react-hooks"": ""^4.5.0""}","{""stylelint"": ""^15.6.0"", ""stylelint-config-recommended-scss"": ""^11.0.0"", ""stylelint-config-standard"": ""^33.0.0"", ""stylelint-scss"": ""^4.1.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,False,True,5,"{""total_duration"": ""0 minutes 28 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2017-09-07 20:28:44,master,Stylelint configs for edX Sass files,341,7,True,False,False,False,False,False,False,2026-05-20 13:18:41,Apache License 2.0,3,True,0,0,0,359,0,0,0,False,False,False,False,False,False,False,@edx/stylelint-config-edx,openedx,0,"['https://stylelint.io/user-guide/configuration/: 404', 'https://www.npmjs.com/package/stylelint-config-recommended-scss: 403', 'https://stylelint.io/user-guide/rules/function-comma-newline-after/: 404', 'https://stylelint.io/user-guide/rules/function-parentheses-newline-inside/: 404', 'https://stylelint.io/user-guide/rules/max-empty-lines/: 404']",False,"['https://github.com/openedx/stylelint-config-edx/workflows/Node%20CI/badge.svg?branch=master', 'https://github.com/openedx/stylelint-config-edx/actions?query=workflow%3A%22Node+CI%22', 'https://github.com/openedx/stylelint-config-edx/blob/master/LICENSE']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/sample-plugin,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1 minutes 51 seconds"", ""checks"": [{""name"": ""release"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, django60)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""publish_to_pypi"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""publish_to_npm"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""publish_tutor_plugin_to_pypi"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2025-03-21 17:45:40,main,,973,4,True,False,False,False,False,False,False,2026-05-30 15:33:13,,2,False,0,0,873,6338,11956,87306,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://docs.openedx.org/projects/edx-django-utils/en/latest/plugins/how_tos/how_to_create_a_plugin_app.html', 'https://docs.openedx.org/projects/openedx-events/en/latest/', 'https://docs.openedx.org/projects/openedx-filters/en/latest/', 'https://docs.openedx.org/en/latest/site_ops/how-tos/use-frontend-plugin-slots.html', 'https://github.com/openedx/paragon', 'https://docs.tutor.edly.io/', 'https://docs.tutor.edly.io/install.html', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/openedx-tutor-plugins/tree/main/plugins/tutor-contrib-paragon', 'https://cdn.jsdelivr.net/gh/openedx/sample-plugin@main/brand-sample/dist/light.min.css', 'https://openedx.org/slack', 'https://discuss.openedx.org', 'https://github.com/openedx/sample-plugin/issues']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-core,,,,True,2026-06-01,True,True,False,False,155,0,[],0,,0,0,,,52,"[""sqlparse==0.5.5"", ""celery==5.6.3"", ""edx-opaque-keys[django]==4.0.0"", ""dnspython==2.8.0"", ""edx-drf-extensions==10.6.0"", ""tomlkit==0.15.0"", ""tzlocal==5.3.1"", ""click-plugins==1.1.1.2"", ""edx-django-utils==8.0.1"", ""semantic-version==2.10.0"", ""django-waffle==5.0.0"", ""django-model-utils==5.0.0"", ""pymongo==4.17.0"", ""django==5.2.14"", ""certifi==2026.4.22"", ""fastavro==1.12.2"", ""packaging==26.2"", ""attrs==26.1.0"", ""pycparser==3.0"", ""vine==5.1.0"", ""openedx-events==11.2.0"", ""click-repl==0.3.0"", ""kombu==5.6.2"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""djangorestframework==3.17.1"", ""charset-normalizer==3.4.7"", ""tzdata==2026.2"", ""stevedore==5.7.0"", ""pyjwt[crypto]==2.12.1"", ""click-didyoumean==0.3.1"", ""edx-organizations==8.0.0"", ""asgiref==3.11.1"", ""psutil==7.2.2"", ""urllib3==2.7.0"", ""billiard==4.2.4"", ""django-simple-history==3.11.0"", ""idna==3.15"", ""pynacl==1.6.2"", ""six==1.17.0"", ""amqp==5.3.1"", ""click==8.4.0"", ""prompt-toolkit==3.0.52"", ""drf-jwt==1.19.2"", ""cryptography==48.0.0"", ""wcwidth==0.7.0"", ""rules==3.5"", ""python-dateutil==2.9.0.post0"", ""pillow==12.2.0"", ""edx-ccx-keys==2.0.2"", ""requests==2.34.2"", ""typing-extensions==4.15.0""]",155,"[""edx-lint==6.1.0"", ""sqlparse==0.5.5"", ""pytest-cov==7.1.0"", ""dill==0.4.1"", ""virtualenv==21.3.3"", ""edx-drf-extensions==10.6.0"", ""twine==6.2.0"", ""tomlkit==0.15.0"", ""coverage[toml]==7.14.0"", ""django-waffle==5.0.0"", ""django-model-utils==5.0.0"", ""pyproject-api==1.10.0"", ""click-log==0.4.0"", ""packaging==26.2"", ""jaraco-context==6.1.2"", ""requests-toolbelt==1.0.0"", ""pycparser==3.0"", ""pathspec==1.1.1"", ""roman-numerals==4.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""openedx-events==11.2.0"", ""click-repl==0.3.0"", ""freezegun==1.5.5"", ""python-slugify==8.0.4"", ""djangorestframework==3.17.1"", ""pygments==2.20.0"", ""edx-organizations==8.0.0"", ""pluggy==1.6.0"", ""djangorestframework-stubs==3.17.0"", ""code-annotations==3.0.0"", ""pylint-plugin-utils==0.9.0"", ""snowballstemmer==3.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""build==1.5.0"", ""six==1.17.0"", ""grimp==3.14"", ""pip-tools==7.5.3"", ""click==8.4.0"", ""tox==4.54.0"", ""mysqlclient==2.2.8"", ""rules==3.5"", ""django-stubs==6.0.4"", ""imagesize==2.0.0"", ""pillow==12.2.0"", ""edx-ccx-keys==2.0.2"", ""filelock==3.29.0"", ""readme-renderer==44.0"", ""edx-opaque-keys[django]==4.0.0"", ""pyyaml==6.0.3"", ""dnspython==2.8.0"", ""mypy==2.1.0"", ""ast-serialize==0.5.0"", ""tzlocal==5.3.1"", ""click-plugins==1.1.1.2"", ""astroid==4.0.4"", ""beautifulsoup4==4.14.3"", ""certifi==2026.4.22"", ""fastavro==1.12.2"", ""diff-cover==10.2.0"", ""pycodestyle==2.14.0"", ""attrs==26.1.0"", ""sphinx==9.1.0"", ""kombu==5.6.2"", ""cffi==2.0.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pyproject-hooks==1.2.0"", ""django-debug-toolbar==6.3.0"", ""click-didyoumean==0.3.1"", ""pyjwt[crypto]==2.12.1"", ""tomli-w==1.2.0"", ""billiard==4.2.4"", ""alabaster==1.0.0"", ""jaraco-functools==4.5.0"", ""secretstorage==3.5.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pynacl==1.6.2"", ""mccabe==0.7.0"", ""prompt-toolkit==3.0.52"", ""wcwidth==0.7.0"", ""sphinxcontrib-jsmath==1.0.1"", ""python-dateutil==2.9.0.post0"", ""requests==2.34.2"", ""lxml[html-clean]==6.1.0"", ""path==16.16.0"", ""colorama==0.4.6"", ""pytest==9.0.3"", ""semantic-version==2.10.0"", ""distlib==0.4.0"", ""isort==8.0.1"", ""pymongo==4.17.0"", ""mock==5.2.0"", ""ddt==1.7.2"", ""jaraco-classes==3.4.0"", ""pprintpp==0.4.0"", ""types-pyyaml==6.0.12.20260510"", ""accessible-pygments==0.0.5"", ""soupsieve==2.8.3"", ""doc8==2.0.0"", ""babel==2.18.0"", ""asgiref==3.11.1"", ""urllib3==2.7.0"", ""sphinxcontrib-applehelp==2.0.0"", ""idna==3.15"", ""id==1.6.1"", ""iniconfig==2.3.0"", ""cryptography==48.0.0"", ""lxml-html-clean==0.4.4"", ""docutils==0.22.4"", ""typing-extensions==4.15.0"", ""docutils==0.21.2"", ""pylint-celery==0.3"", ""celery==5.6.3"", ""rich==15.0.0"", ""pip==26.1.1"", ""sphinxcontrib-django==2.5"", ""pydocstyle==6.3.0"", ""pylint==4.0.5"", ""restructuredtext-lint==2.0.2"", ""edx-django-utils==8.0.1"", ""cachetools==7.1.2"", ""platformdirs==4.9.6"", ""setuptools==82.0.1"", ""python-discovery==1.3.1"", ""django==5.2.14"", ""markupsafe==3.0.3"", ""pytest-django==4.12.0"", ""vine==5.1.0"", ""import-linter==2.11"", ""django-crum==0.7.9"", ""chardet==7.4.3"", ""charset-normalizer==3.4.7"", ""librt==0.11.0"", ""rfc3986==2.0.0"", ""tzdata==2026.2"", ""stevedore==5.7.0"", ""markdown-it-py==4.2.0"", ""nh3==0.3.5"", ""jinja2==3.1.6"", ""psutil==7.2.2"", ""text-unidecode==1.3"", ""django-simple-history==3.11.0"", ""keyring==25.7.0"", ""mdurl==0.1.2"", ""wheel==0.47.0"", ""pylint-django==2.7.0"", ""django-stubs-ext==6.0.4"", ""amqp==5.3.1"", ""mypy-extensions==1.1.0"", ""jeepney==0.9.0"", ""sphinx-book-theme==1.2.0"", ""more-itertools==11.0.2"", ""polib==1.2.0"", ""drf-jwt==1.19.2"", ""pydata-sphinx-theme==0.16.1"", ""edx-i18n-tools==2.0.0""]",10,"[""djangorestframework"", ""code-annotations"", ""django-debug-toolbar"", ""edx-django-utils"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""edx-organizations"", ""pylint-django"", ""pytest-django"", ""django-waffle""]",15,"[""djangorestframework"", ""code-annotations"", ""django-debug-toolbar"", ""django-model-utils"", ""edx-django-utils"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""edx-organizations"", ""django-simple-history"", ""pylint-django"", ""django-crum"", ""pytest-django"", ""django-waffle"", ""rules"", ""drf-jwt""]",7,"[""code-annotations"", ""django-debug-toolbar"", ""edx-django-utils"", ""edx-drf-extensions"", ""edx-i18n-tools"", ""edx-organizations"", ""django-waffle""]",True,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,15,"{""total_duration"": ""13484 minutes 5 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""360 minutes 15 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52, 8)"", ""duration"": ""3 minutes 47 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality, 8)"", ""duration"": ""2 minutes 11 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, package, 8)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""Lint Python Imports"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2021-12-12 17:41:35,main,Foundational Django models and APIs for a teaching and learning platform.,2417,26,True,False,False,False,False,False,False,2026-06-01 01:12:06,GNU AGPLv3,12,True,0,0,0,0,4335,1653456,0,False,True,False,False,True,False,False,,openedx,0,['https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0049-django-app-patterns.html: 404'],True,"['https://2021.djangocon.us/talks/scaling-django-to-500-apps/', 'https://www.youtube.com/watch?v=yG3ZdxBb1oo', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/openedx-core.svg', 'https://pypi.python.org/pypi/openedx-core/', 'https://github.com/openedx/openedx-core/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/openedx-core/actions', 'https://codecov.io/github/edx/openedx-core/coverage.svg?branch=master', 'https://codecov.io/github/edx/openedx-core?branch=master', 'https://readthedocs.org/projects/openedx-core/badge/?version=latest', 'https://openedx-core.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/openedx-core.svg', 'https://img.shields.io/github/license/edx/openedx-core.svg', 'https://github.com/openedx/openedx-core/blob/master/LICENSE.txt']",True,True,False,True,.readthedocs.yml,2,False,,,,False,True,False,True,,False,openedx-core,"['3', '3.12']",https://github.com/openedx/openedx-core,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/aspects-dbt,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,18,"{""total_duration"": ""9715 minutes 53 seconds"", ""checks"": [{""name"": ""Deploy dbt docs to github pages"", ""duration"": ""4 minutes 33 seconds""}, {""name"": ""Check coverage & run tests"", ""duration"": ""2 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}]}",Other,2023-05-24 17:11:54,main,The dbt project for Open edX Aspects!,9676,10,True,False,False,False,False,False,False,2026-05-18 13:15:00,Apache License 2.0,1,False,0,3569,0,0,281,0,0,False,False,False,False,False,False,False,,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-event-sink-clickhouse: 404'],True,"['https://openedx.github.io/aspects-dbt/', 'https://clickhouse.com', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html', 'https://docs.getdbt.com/reference/resource-properties/unit-tests', 'https://discuss.openedx.org', 'https://github.com/openedx/aspects-dbt/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],"['build-essential', 'make', 'gcc', 'unixodbc-dev', 'dist-', 'ca-certificates', 'python-dev', 'software-properties-common', '/tmp/*', 'git', 'ssh-client', 'clean', 'libsasl2-dev', 'libpq-dev', '/var/tmp/*']",[] -openedx/frontend-plugin-notifications,,,,False,2026-06-01,False,False,False,False,24,0,,0,{},10,14,"{""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.3"", ""@testing-library/jest-dom"": ""^5.17.0"", ""@testing-library/react"": ""^14.3.1"", ""axios-mock-adapter"": ""^1.22.0"", ""glob"": ""^10.0.0"", ""husky"": ""^7.0.4"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""resize-observer-polyfill"": ""^1.5.1"", ""rosie"": ""^2.1.1"", ""semantic-release"": ""^25.0.0""}","{""@fortawesome/fontawesome-svg-core"": ""^6.6.0"", ""@fortawesome/free-brands-svg-icons"": ""^6.6.0"", ""@fortawesome/free-regular-svg-icons"": ""^6.6.0"", ""@fortawesome/free-solid-svg-icons"": ""^6.6.0"", ""@fortawesome/react-fontawesome"": ""^0.2.2"", ""classnames"": ""^2.5.1"", ""dompurify"": ""^3.1.7"", ""lodash"": ""^4.18.1"", ""timeago.js"": ""^4.0.2"", ""uuid"": ""^13.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,20,"{""total_duration"": ""1999 minutes 51 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 48 seconds""}, {""name"": ""test"", ""duration"": ""1 minutes 34 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2025-01-31 19:50:32,main,A collection of components meant to integrate Notifications into the platform UI. They are presently used in the HeaderNotificationsSlot.,1310,6,True,False,False,False,False,False,False,2026-05-30 15:26:22,GNU AGPLv3,2,True,0,0,498,69209,1858,0,0,False,False,False,False,False,False,False,@edx/frontend-plugin-notifications,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-notifications: 404'],False,"['https://img.shields.io/badge/license-AGPL-informational', 'https://github.com/edx/frontend-plugin-notifications/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml/badge.svg', 'https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml', 'https://codecov.io/github/edx/frontend-plugin-notifications/coverage.svg?branch=main', 'https://codecov.io/github/edx/frontend-plugin-notifications?branch=main', 'https://github.com/openedx/frontend-component-header/tree/master/src/plugin-slots/HeaderNotificationsSlot', 'https://github.com/openedx/tutor-contrib-platform-notifications', 'https://openedx.org/r/how-to-contribute']",True,True,False,False,,,True,2026-04-10,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-django-sites-extensions,,,,True,2026-06-01,True,True,False,False,91,0,[],0,,0,0,,,3,"[""sqlparse==0.5.5"", ""django==5.2.14"", ""asgiref==3.11.1""]",91,"[""pytest-cov==7.1.0"", ""requests==2.34.2"", ""python-slugify==8.0.4"", ""stevedore==5.7.0"", ""pluggy==1.6.0"", ""pyyaml==6.0.3"", ""astroid==4.0.4"", ""iniconfig==2.3.0"", ""twine==6.2.0"", ""edx-lint==6.1.0"", ""mdurl==0.1.2"", ""sqlparse==0.5.5"", ""packaging==26.2"", ""charset-normalizer==3.4.7"", ""cryptography==48.0.0"", ""pycparser==3.0"", ""asgiref==3.11.1"", ""python-discovery==1.3.1"", ""roman-numerals==4.1.0"", ""mock==5.2.0"", ""cffi==2.0.0"", ""keyring==25.7.0"", ""code-annotations==3.0.0"", ""snowballstemmer==3.0.1"", ""secretstorage==3.5.0"", ""alabaster==1.0.0"", ""django-dynamic-fixture==4.0.1"", ""rich==15.0.0"", ""jaraco-functools==4.5.0"", ""pycodestyle==2.14.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinx-rtd-theme==3.1.0"", ""pytest-django==4.12.0"", ""six==1.17.0"", ""readme-renderer==44.0"", ""more-itertools==11.0.2"", ""build==1.5.0"", ""virtualenv==21.3.3"", ""text-unidecode==1.3"", ""isort==8.0.1"", ""setuptools==82.0.1"", ""mccabe==0.7.0"", ""pylint-celery==0.3"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""wheel==0.47.0"", ""cachetools==7.1.2"", ""pylint-plugin-utils==0.9.0"", ""coverage[toml]==7.14.0"", ""platformdirs==4.9.6"", ""jaraco-context==6.1.2"", ""click-log==0.4.0"", ""filelock==3.29.0"", ""sphinxcontrib-devhelp==2.0.0"", ""requests-toolbelt==1.0.0"", ""tox==4.54.0"", ""pylint-django==2.7.0"", ""django==5.2.14"", ""nh3==0.3.5"", ""django==5.2.0"", ""asgiref==3.8.1"", ""dill==0.4.1"", ""pip==26.1.1"", ""pyproject-hooks==1.2.0"", ""urllib3==2.7.0"", ""pygments==2.20.0"", ""pylint==4.0.5"", ""colorama==0.4.6"", ""tomlkit==0.15.0"", ""jaraco-classes==3.4.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""jeepney==0.9.0"", ""pip-tools==7.5.3"", ""idna==3.15"", ""pytest==9.0.3"", ""babel==2.18.0"", ""sphinx==9.1.0"", ""certifi==2026.4.22"", ""pyproject-api==1.10.0"", ""tomli-w==1.2.0"", ""id==1.6.1"", ""click==8.4.0"", ""sphinxcontrib-jquery==4.1"", ""markdown-it-py==4.2.0"", ""docutils==0.22.4"", ""sphinxcontrib-qthelp==2.0.0"", ""distlib==0.4.0"", ""imagesize==2.0.0"", ""jinja2==3.1.6"", ""rfc3986==2.0.0""]",3,"[""pylint-django"", ""code-annotations"", ""pytest-django""]",4,"[""pylint-django"", ""code-annotations"", ""pytest-django"", ""django-dynamic-fixture""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,7,"{""total_duration"": ""7974 minutes 1 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2016-03-18 13:46:22,master,,192,14,True,False,False,False,False,False,False,2026-06-01 00:19:51,GNU AGPLv3,2,True,0,0,0,0,1991,22308,0,False,True,False,False,True,False,False,,openedx,1,['https://docs.djangoproject.com/en/1.9/ref/contrib/sites/: 404'],False,"['http://code.edx.org/', 'https://github.com/openedx/edx-django-sites-extensions/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-django-sites-extensions/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-django-sites-extensions/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-django-sites-extensions?branch=master', 'https://edx-django-sites-extensions.readthedocs.org', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,edx-django-sites-extensions,['3.12'],https://github.com/openedx/edx-django-sites-extensions,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/eslint-config,,,,False,2026-06-01,False,False,False,False,9,0,,0,{},0,9,"{""@typescript-eslint/eslint-plugin"": ""^5.62.0"", ""@typescript-eslint/parser"": ""^5.62.0"", ""eslint"": ""8.56.0"", ""eslint-config-airbnb"": ""19.0.4"", ""eslint-config-airbnb-typescript"": ""^17.0.0"", ""eslint-plugin-import"": ""2.29.1"", ""eslint-plugin-jsx-a11y"": ""6.8.0"", ""eslint-plugin-react"": ""7.33.2"", ""eslint-plugin-react-hooks"": ""4.6.0""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,True,True,16,"{""total_duration"": ""0 minutes 23 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 11 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 7 seconds""}]}",Other,2020-01-30 18:27:54,master,,375,7,True,False,False,False,False,False,False,2026-05-30 01:16:01,GNU AGPLv3,13,True,0,0,0,3159,0,0,0,False,False,False,False,False,False,False,@edx/eslint-config,openedx,0,"['https://www.npmjs.com/package/@edx/eslint-config: 403', 'https://www.npmjs.com/package/eslint-config-airbnb-typescript: 403']",False,"['https://github.com/openedx/eslint-config/actions/workflows/release.yml/badge.svg', 'https://github.com/openedx/eslint-config/actions/workflows/release.yml/', 'https://img.shields.io/npm/v/@edx/eslint-config.svg', 'https://img.shields.io/npm/dt/@edx/eslint-config.svg', 'https://img.shields.io/npm/l/@edx/eslint-config.svg', 'https://github.com/openedx/eslint-config/blob/master/LICENSE', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release']",True,True,False,False,,,True,2025-12-08,2024-04-29,10,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-ai-extensions,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,True,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1712 minutes 38 seconds"", ""checks"": [{""name"": ""Frontend Tests (ubuntu-latest, 20)"", ""duration"": ""2 minutes 13 seconds""}, {""name"": ""Backend Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""2 minutes 7 seconds""}, {""name"": ""Backend Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 25 seconds""}, {""name"": ""Backend Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""Plugin / Docs Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2025-07-29 15:04:02,main,An edx-platform plugin that will house tools and helpers for working with AI.,2820,10,True,False,False,False,False,False,False,2026-05-28 15:47:37,GNU AGPLv3,3,True,839,0,6200,389,5981,786584,0,False,False,False,False,False,False,False,,openedx,0,['https://docs.openedx.org/en/latest/developers/references/plugin_reference.html: 404'],False,"['https://img.shields.io/badge/Status-Experimental-orange', 'https://img.shields.io/badge/License-AGPL%20v3-blue', 'https://img.shields.io/badge/Documentation-green', 'https://docs.openedx.org/projects/openedx-ai-extensions/en/latest/index.html', 'https://github.com/openedx/openedx-ai-extensions.git', 'https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html', 'https://discuss.openedx.org', 'https://www.canva.com/design/DAGqjcS2mT4/nTHQIDIeZ89wqsBvh9GWKA/view', 'https://docs.litellm.ai/', 'https://drive.google.com/file/d/1sUj2xoldYFAvPoDuxqwG0XbIundGD0u2/view', 'https://github.com/openedx/openedx-ai-extensions/issues']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-instructor-dashboard,,,,False,2026-06-01,False,False,False,False,15,0,,0,{},4,11,"{""@edx/browserslist-config"": ""^1.5.0"", ""@testing-library/jest-dom"": ""^6.8.0"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/jest"": ""^30.0.0"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""jest"": ""^29"", ""nodemon"": ""^3.1.14"", ""tsc-alias"": ""^1.8.16"", ""turbo"": ""^2.9.2""}","{""@edx/openedx-atlas"": ""^0.7.0"", ""codemirror"": ""^6.0.2"", ""lodash"": ""^4.17.23"", ""react-helmet"": ""^6.1.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1747 minutes 41 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""3 minutes 0 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2025-08-21 12:52:46,main,Instructor Dashboard pages in MFE-land,1243,14,True,False,False,False,False,False,False,2026-05-20 13:15:09,GNU AGPLv3,0,True,0,0,256,1408,1920,0,0,False,False,False,False,False,False,False,,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-instructor-dashboard: 404']",True,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-instructor-dashboard.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-app-instructor-dashboard/blob/master/docs/decisions/0002-feature-based-application-organization.rst', 'https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-instructor-dashboard/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-instructor-dashboard.svg', 'https://github.com/openedx/frontend-app-instructor-dashboard/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-instructor-dashboard/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-instructor-dashboard/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-instructor-dashboard/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-instructor-dashboard?branch=main']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-notes-api,,,,True,2026-06-01,True,True,False,False,103,0,[],0,,0,0,,,57,"[""django-waffle==5.0.0"", ""path==17.1.1"", ""charset-normalizer==3.4.7"", ""django-elasticsearch-dsl-drf==0.22.5"", ""referencing==0.37.0"", ""gunicorn==26.0.0"", ""setuptools==82.0.1"", ""typing-inspection==0.4.2"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""click==8.4.1"", ""typing-extensions==4.15.0"", ""djangorestframework==3.17.1"", ""attrs==26.1.0"", ""pycparser==3.0"", ""camel-converter[pydantic]==5.1.0"", ""requests==2.34.2"", ""pydantic-core==2.46.4"", ""django-cors-headers==4.9.0"", ""path-py==12.5.0"", ""stevedore==5.8.0"", ""jsonschema==4.26.0"", ""edx-django-utils==8.0.1"", ""pydantic==2.13.4"", ""elasticsearch==7.13.4"", ""meilisearch==0.41.0"", ""edx-opaque-keys==4.0.0"", ""pynacl==1.6.2"", ""inflection==0.5.1"", ""django-elasticsearch-dsl==7.4"", ""jsonschema-specifications==2025.9.1"", ""python-dateutil==2.9.0.post0"", ""elasticsearch-dsl==7.4.1"", ""packaging==26.2"", ""pyjwt[crypto]==2.13.0"", ""asgiref==3.11.1"", ""edx-django-release-util==1.5.0"", ""drf-jwt==1.19.2"", ""sqlparse==0.5.5"", ""six==1.17.0"", ""dnspython==2.8.0"", ""annotated-types==0.7.0"", ""pymongo==4.17.0"", ""urllib3==1.26.20"", ""psutil==7.2.2"", ""uritemplate==4.2.0"", ""idna==3.16"", ""rpds-py==0.30.0"", ""cryptography==48.0.0"", ""django==5.2.14"", ""edx-drf-extensions==10.6.0"", ""mysqlclient==2.2.8"", ""certifi==2026.5.20"", ""django-nine==0.2.7"", ""pyyaml==6.0.3"", ""drf-spectacular==0.29.0"", ""semantic-version==2.10.0""]",103,"[""charset-normalizer==3.4.7"", ""django-elasticsearch-dsl-drf==0.22.5"", ""colorama==0.4.6"", ""pluggy==1.6.0"", ""typing-inspection==0.4.2"", ""pytest==9.0.3"", ""pycodestyle==2.14.0"", ""inflection==0.5.1"", ""isort==8.0.1"", ""tomli-w==1.2.0"", ""elasticsearch-dsl==7.4.1"", ""python-discovery==1.3.1"", ""pytest-cov==7.1.0"", ""urllib3==1.26.20"", ""edx-lint==6.1.0"", ""idna==3.16"", ""cryptography==48.0.0"", ""pyyaml==6.0.3"", ""django-nine==0.2.7"", ""iniconfig==2.3.0"", ""path==17.1.1"", ""tox==4.54.0"", ""pygments==2.20.0"", ""pyproject-hooks==1.2.0"", ""typing-extensions==4.15.0"", ""diff-cover==10.2.1"", ""djangorestframework==3.17.1"", ""attrs==26.1.0"", ""pycparser==3.0"", ""astroid==4.0.4"", ""requests==2.34.2"", ""pydantic-core==2.46.4"", ""django-cors-headers==4.9.0"", ""build==1.5.0"", ""elasticsearch==7.13.4"", ""mccabe==0.7.0"", ""edx-opaque-keys==4.0.0"", ""pylint-plugin-utils==0.9.0"", ""faker==40.19.1"", ""jsonschema-specifications==2025.9.1"", ""pytest-django==4.12.0"", ""pyjwt[crypto]==2.13.0"", ""edx-django-release-util==1.5.0"", ""cachetools==7.1.4"", ""ddt==1.7.2"", ""sqlparse==0.5.5"", ""six==1.17.0"", ""dnspython==2.8.0"", ""markupsafe==3.0.3"", ""psutil==7.2.2"", ""pylint-django==2.7.0"", ""uritemplate==4.2.0"", ""django==5.2.14"", ""edx-drf-extensions==10.6.0"", ""certifi==2026.5.20"", ""dill==0.4.1"", ""pip-tools==7.5.3"", ""drf-spectacular==0.29.0"", ""django-waffle==5.0.0"", ""setuptools==82.0.1"", ""factory-boy==3.3.3"", ""cffi==2.0.0"", ""django-crum==0.7.9"", ""click==8.4.1"", ""camel-converter[pydantic]==5.1.0"", ""more-itertools==11.1.0"", ""path-py==12.5.0"", ""virtualenv==21.3.3"", ""jinja2==3.1.6"", ""wheel==0.47.0"", ""pep8==1.7.1"", ""distlib==0.4.0"", ""chardet==7.4.3"", ""packaging==26.2"", ""drf-jwt==1.19.2"", ""pymongo==4.17.0"", ""filelock==3.29.0"", ""pylint==4.0.5"", ""mysqlclient==2.2.8"", ""text-unidecode==1.3"", ""semantic-version==2.10.0"", ""referencing==0.37.0"", ""gunicorn==26.0.0"", ""python-slugify==8.0.4"", ""code-annotations==3.0.0"", ""pylint-celery==0.3"", ""stevedore==5.8.0"", ""jsonschema==4.26.0"", ""edx-django-utils==8.0.1"", ""coverage[toml]==7.14.0"", ""pydantic==2.13.4"", ""meilisearch==0.41.0"", ""click-log==0.4.0"", ""pynacl==1.6.2"", ""pip==26.1.1"", ""django-elasticsearch-dsl==7.4"", ""tomlkit==0.15.0"", ""python-dateutil==2.9.0.post0"", ""platformdirs==4.9.6"", ""asgiref==3.11.1"", ""annotated-types==0.7.0"", ""pyproject-api==1.10.0"", ""rpds-py==0.30.0""]",11,"[""pytest-django"", ""django-cors-headers"", ""djangorestframework"", ""edx-drf-extensions"", ""edx-django-release-util"", ""code-annotations"", ""factory-boy"", ""pylint-django"", ""edx-opaque-keys"", ""edx-django-utils"", ""django-waffle""]",16,"[""pytest-django"", ""django-cors-headers"", ""djangorestframework"", ""django-elasticsearch-dsl-drf"", ""django-nine"", ""django-elasticsearch-dsl"", ""edx-drf-extensions"", ""edx-django-release-util"", ""code-annotations"", ""django-crum"", ""factory-boy"", ""pylint-django"", ""drf-jwt"", ""edx-opaque-keys"", ""edx-django-utils"", ""django-waffle""]",7,"[""django-cors-headers"", ""edx-drf-extensions"", ""edx-django-release-util"", ""code-annotations"", ""edx-opaque-keys"", ""edx-django-utils"", ""django-waffle""]",False,,True,False,True,True,False,False,True,True,True,True,False,False,True,True,False,False,True,False,True,True,True,91,"{""total_duration"": ""9652 minutes 20 seconds"", ""checks"": [{""name"": ""run_tests (3.12, quality)"", ""duration"": ""2 minutes 4 seconds""}, {""name"": ""run_tests (3.12, django52)"", ""duration"": ""2 minutes 0 seconds""}, {""name"": ""run_tests (3.12, check_keywords)"", ""duration"": ""1 minutes 46 seconds""}, {""name"": ""run_tests (3.12, pii_check)"", ""duration"": ""1 minutes 37 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""check_migrations (3.12)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 36 seconds""}, {""name"": ""Trivy-Scan"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Trivy-Scan"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2014-11-10 19:37:29,master,edx-notes-api,1066,62,True,False,False,False,False,False,False,2026-06-01 00:45:29,GNU AGPLv3,4,True,0,0,0,0,3592,130608,0,False,True,False,False,True,False,False,,openedx,2,['http://annotatorjs.org/: 403'],False,"['https://www.elastic.co/downloads/past-releases/elasticsearch-7-13-4', 'https://django-elasticsearch-dsl.readthedocs.io/', 'https://django-elasticsearch-dsl.readthedocs.io/en/latest/management.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code', 'https://groups.google.com/g/edx-code', 'https://github.com/openedx/edx-notes-api/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-notes-api/actions/workflows/ci.yml']",True,True,False,False,,,False,,,,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/training-courses,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""0 minutes 11 seconds"", ""checks"": [{""name"": ""source_and_tars_match"", ""duration"": ""0 minutes 11 seconds""}]}",Other,2022-04-07 19:17:04,main,Repo for course content & Issues related to Open edX training courses,270180,6,True,False,False,False,False,False,False,2026-05-19 13:23:02,Other,0,True,0,0,8067554,0,2772,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://creativecommons.org/licenses/by-sa/4.0/', 'http://creativecommons.org/licenses/by-nc-sa/3.0/us/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-test,,,,False,2026-06-01,False,False,False,False,1,0,,399,"{""@appium/base-driver"": ""9.4.3"", ""@appium/base-plugin"": ""2.2.24"", ""@appium/docutils"": ""0.4.13"", ""@appium/schema"": ""0.4.2"", ""@appium/support"": ""4.1.10"", ""@appium/tsconfig"": ""0.3.2"", ""@appium/typedoc-plugin-appium"": ""0.6.6"", ""@appium/types"": ""0.14.3"", ""@babel/code-frame"": ""7.23.5"", ""@babel/helper-validator-identifier"": ""7.22.20"", ""@babel/highlight"": ""7.23.4"", ""@colors/colors"": ""1.6.0"", ""@dabh/diagnostics"": ""2.0.3"", ""@isaacs/cliui"": ""8.0.2"", ""@pkgjs/parseargs"": ""0.11.0"", ""@sidvind/better-ajv-errors"": ""2.1.0"", ""@sliphua/lilconfig-ts-loader"": ""3.2.2"", ""@tsconfig/node14"": ""14.1.0"", ""@types/archiver"": ""6.0.2"", ""@types/argparse"": ""2.0.14"", ""@types/async-lock"": ""1.4.2"", ""@types/base64-stream"": ""1.0.5"", ""@types/bluebird"": ""3.5.42"", ""@types/body-parser"": ""1.19.5"", ""@types/connect"": ""3.4.38"", ""@types/express"": ""4.17.21"", ""@types/express-serve-static-core"": ""4.17.41"", ""@types/fancy-log"": ""2.0.2"", ""@types/find-root"": ""1.1.4"", ""@types/http-errors"": ""2.0.4"", ""@types/jsftp"": ""2.1.5"", ""@types/json-schema"": ""7.0.15"", ""@types/klaw"": ""3.0.6"", ""@types/lockfile"": ""1.0.4"", ""@types/lodash"": ""4.14.202"", ""@types/method-override"": ""0.0.35"", ""@types/mime"": ""1.3.5"", ""@types/mv"": ""2.1.4"", ""@types/ncp"": ""2.0.8"", ""@types/node"": ""20.10.5"", ""@types/normalize-package-data"": ""2.4.4"", ""@types/npmlog"": ""4.1.6"", ""@types/pluralize"": ""0.0.33"", ""@types/qs"": ""6.9.10"", ""@types/range-parser"": ""1.2.7"", ""@types/readdir-glob"": ""1.1.5"", ""@types/semver"": ""7.5.6"", ""@types/send"": ""0.17.4"", ""@types/serve-favicon"": ""2.5.7"", ""@types/serve-static"": ""1.15.5"", ""@types/shell-quote"": ""1.7.5"", ""@types/supports-color"": ""8.1.3"", ""@types/teen_process"": ""2.0.4"", ""@types/triple-beam"": ""1.3.5"", ""@types/uuid"": ""9.0.7"", ""@types/which"": ""3.0.1"", ""@types/wrap-ansi"": ""3.0.0"", ""@types/ws"": ""8.5.10"", ""@xmldom/xmldom"": ""0.8.10"", ""abort-controller"": ""3.0.0"", ""accepts"": ""1.3.8"", ""ajv"": ""8.12.0"", ""ajv-formats"": ""2.1.1"", ""ansi-regex"": ""6.0.1"", ""ansi-sequence-parser"": ""1.1.1"", ""ansi-styles"": ""6.2.1"", ""appium"": ""2.2.3"", ""aproba"": ""2.0.0"", ""archiver"": ""6.0.1"", ""archiver-utils"": ""4.0.1"", ""are-we-there-yet"": ""4.0.1"", ""arg"": ""4.1.3"", ""argparse"": ""2.0.1"", ""array-flatten"": ""1.1.1"", ""async"": ""3.2.5"", ""async-lock"": ""1.4.0"", ""asyncbox"": ""3.0.0"", ""asynckit"": ""0.4.0"", ""axios"": ""1.6.2"", ""b4a"": ""1.6.4"", ""balanced-match"": ""1.0.2"", ""base64-js"": ""1.5.1"", ""base64-stream"": ""1.0.0"", ""basic-auth"": ""2.0.1"", ""big-integer"": ""1.6.52"", ""bl"": ""4.1.0"", ""bluebird"": ""3.7.2"", ""body-parser"": ""1.20.2"", ""bplist-creator"": ""0.1.1"", ""bplist-parser"": ""0.3.2"", ""brace-expansion"": ""2.0.1"", ""buffer"": ""6.0.3"", ""buffer-crc32"": ""0.2.13"", ""buffer-from"": ""1.1.2"", ""bytes"": ""3.1.2"", ""call-bind"": ""1.0.5"", ""chalk"": ""4.1.2"", ""chownr"": ""1.1.4"", ""cli-cursor"": ""3.1.0"", ""cli-spinners"": ""2.9.2"", ""cliui"": ""8.0.1"", ""clone"": ""1.0.4"", ""color"": ""4.2.3"", ""color-convert"": ""2.0.1"", ""color-name"": ""1.1.4"", ""color-string"": ""1.9.1"", ""color-support"": ""1.1.3"", ""colorspace"": ""1.1.4"", ""combined-stream"": ""1.0.8"", ""commander"": ""6.2.1"", ""compress-commons"": ""5.0.1"", ""concat-map"": ""0.0.1"", ""consola"": ""2.15.3"", ""console-control-strings"": ""1.1.0"", ""content-disposition"": ""0.5.4"", ""content-type"": ""1.0.5"", ""cookie"": ""0.5.0"", ""cookie-signature"": ""1.0.6"", ""core-util-is"": ""1.0.3"", ""crc-32"": ""1.2.2"", ""crc32-stream"": ""5.0.0"", ""create-require"": ""1.1.1"", ""cross-env"": ""7.0.3"", ""cross-spawn"": ""7.0.3"", ""debug"": ""3.2.7"", ""decompress-response"": ""6.0.0"", ""deep-extend"": ""0.6.0"", ""defaults"": ""1.0.4"", ""define-data-property"": ""1.1.1"", ""delayed-stream"": ""1.0.0"", ""delegates"": ""1.0.0"", ""depd"": ""2.0.0"", ""destroy"": ""1.2.0"", ""detect-libc"": ""2.0.2"", ""detect-node"": ""2.1.0"", ""diff"": ""5.1.0"", ""duplexer"": ""0.1.2"", ""eastasianwidth"": ""0.2.0"", ""ee-first"": ""1.1.1"", ""emoji-regex"": ""9.2.2"", ""enabled"": ""2.0.0"", ""encodeurl"": ""1.0.2"", ""end-of-stream"": ""1.4.4"", ""error-ex"": ""1.3.2"", ""es6-error"": ""4.1.1"", ""escalade"": ""3.1.1"", ""escape-html"": ""1.0.3"", ""escape-string-regexp"": ""1.0.5"", ""etag"": ""1.8.1"", ""event-target-shim"": ""5.0.1"", ""events"": ""3.3.0"", ""expand-template"": ""2.0.3"", ""express"": ""4.18.2"", ""fast-deep-equal"": ""3.1.3"", ""fast-fifo"": ""1.3.2"", ""fd-slicer"": ""1.1.0"", ""fecha"": ""4.2.3"", ""figures"": ""3.2.0"", ""finalhandler"": ""1.2.0"", ""find-up"": ""5.0.0"", ""fn.name"": ""1.1.0"", ""follow-redirects"": ""1.15.3"", ""foreground-child"": ""3.1.1"", ""form-data"": ""4.0.0"", ""forwarded"": ""0.2.0"", ""freckle"": ""0.0.2"", ""fresh"": ""0.5.2"", ""fs-constants"": ""1.0.0"", ""fs.realpath"": ""1.0.0"", ""ftp-response-parser"": ""1.0.1"", ""function-bind"": ""1.1.2"", ""gauge"": ""5.0.1"", ""get-caller-file"": ""2.0.5"", ""get-intrinsic"": ""1.2.2"", ""get-stream"": ""6.0.1"", ""github-from-package"": ""0.0.0"", ""glob"": ""10.3.10"", ""gopd"": ""1.0.1"", ""graceful-fs"": ""4.2.11"", ""handle-thing"": ""2.0.1"", ""handlebars"": ""4.7.8"", ""has-flag"": ""4.0.0"", ""has-property-descriptors"": ""1.0.1"", ""has-proto"": ""1.0.1"", ""has-symbols"": ""1.0.3"", ""has-unicode"": ""2.0.1"", ""hasown"": ""2.0.0"", ""hosted-git-info"": ""2.8.9"", ""hpack.js"": ""2.1.6"", ""http-deceiver"": ""1.2.7"", ""http-errors"": ""2.0.0"", ""http-status-codes"": ""2.3.0"", ""iconv-lite"": ""0.4.24"", ""ieee754"": ""1.2.1"", ""inflight"": ""1.0.6"", ""inherits"": ""2.0.4"", ""ini"": ""1.3.8"", ""ipaddr.js"": ""1.9.1"", ""is-arrayish"": ""0.2.1"", ""is-core-module"": ""2.13.1"", ""is-fullwidth-code-point"": ""3.0.0"", ""is-interactive"": ""1.0.0"", ""is-stream"": ""2.0.1"", ""is-unicode-supported"": ""0.1.0"", ""isarray"": ""1.0.0"", ""isexe"": ""2.0.0"", ""jackspeak"": ""2.3.6"", ""js-tokens"": ""4.0.0"", ""jsftp"": ""2.1.3"", ""json-parse-even-better-errors"": ""2.3.1"", ""json-schema"": ""0.4.0"", ""json-schema-traverse"": ""1.0.0"", ""json5"": ""2.2.3"", ""jsonc-parser"": ""3.2.0"", ""klaw"": ""4.1.0"", ""kuler"": ""2.0.0"", ""lazystream"": ""1.0.1"", ""lilconfig"": ""2.1.0"", ""lines-and-columns"": ""1.2.4"", ""locate-path"": ""6.0.0"", ""lockfile"": ""1.0.4"", ""lodash"": ""4.17.21"", ""lodash.get"": ""4.4.2"", ""log-symbols"": ""4.1.0"", ""logform"": ""2.6.0"", ""lru-cache"": ""10.0.1"", ""lunr"": ""2.3.9"", ""make-error"": ""1.3.6"", ""marked"": ""4.3.0"", ""media-typer"": ""0.3.0"", ""merge-descriptors"": ""1.0.1"", ""method-override"": ""3.0.0"", ""methods"": ""1.1.2"", ""mime"": ""1.6.0"", ""mime-db"": ""1.52.0"", ""mime-types"": ""2.1.35"", ""mimic-fn"": ""2.1.0"", ""mimic-response"": ""3.1.0"", ""minimalistic-assert"": ""1.0.1"", ""minimatch"": ""5.1.6"", ""minimist"": ""1.2.8"", ""minipass"": ""7.0.4"", ""mkdirp"": ""0.5.6"", ""mkdirp-classic"": ""0.5.3"", ""moment"": ""2.29.4"", ""morgan"": ""1.10.0"", ""ms"": ""2.1.3"", ""mv"": ""2.1.1"", ""napi-build-utils"": ""1.0.2"", ""ncp"": ""2.0.0"", ""negotiator"": ""0.6.3"", ""neo-async"": ""2.6.2"", ""node-abi"": ""3.52.0"", ""node-addon-api"": ""6.1.0"", ""normalize-package-data"": ""2.5.0"", ""normalize-path"": ""3.0.0"", ""npmlog"": ""7.0.1"", ""object-inspect"": ""1.13.1"", ""obuf"": ""1.1.2"", ""on-finished"": ""2.4.1"", ""on-headers"": ""1.0.2"", ""once"": ""1.4.0"", ""one-time"": ""1.0.0"", ""onetime"": ""5.1.2"", ""opencv-bindings"": ""4.5.5"", ""optimist"": ""0.6.1"", ""ora"": ""5.4.1"", ""p-limit"": ""3.1.0"", ""p-locate"": ""5.0.0"", ""package-changed"": ""3.0.0"", ""parse-json"": ""5.2.0"", ""parse-listing"": ""1.1.3"", ""parseurl"": ""1.3.3"", ""path-exists"": ""4.0.0"", ""path-is-absolute"": ""1.0.1"", ""path-key"": ""3.1.1"", ""path-parse"": ""1.0.7"", ""path-scurry"": ""1.10.1"", ""path-to-regexp"": ""6.2.1"", ""pend"": ""1.2.0"", ""pip"": ""0.0.1"", ""pkg-dir"": ""5.0.0"", ""plist"": ""3.1.0"", ""pluralize"": ""8.0.0"", ""prebuild-install"": ""7.1.1"", ""process"": ""0.11.10"", ""process-nextick-args"": ""2.0.1"", ""proxy-addr"": ""2.0.7"", ""proxy-from-env"": ""1.1.0"", ""pump"": ""3.0.0"", ""punycode"": ""2.3.1"", ""qs"": ""6.11.0"", ""queue-tick"": ""1.0.1"", ""range-parser"": ""1.2.1"", ""raw-body"": ""2.5.2"", ""rc"": ""1.2.8"", ""read-pkg"": ""5.2.0"", ""readable-stream"": ""3.6.2"", ""readdir-glob"": ""1.1.3"", ""require-directory"": ""2.1.1"", ""require-from-string"": ""2.0.2"", ""resolve"": ""1.22.8"", ""resolve-from"": ""5.0.0"", ""restore-cursor"": ""3.1.0"", ""rimraf"": ""2.4.5"", ""safe-buffer"": ""5.1.2"", ""safe-stable-stringify"": ""2.4.3"", ""safer-buffer"": ""2.1.2"", ""sanitize-filename"": ""1.6.3"", ""select-hose"": ""2.0.0"", ""semver"": ""7.5.4"", ""send"": ""0.18.0"", ""serve-favicon"": ""2.5.0"", ""serve-static"": ""1.15.0"", ""set-blocking"": ""2.0.0"", ""set-function-length"": ""1.1.1"", ""setprototypeof"": ""1.2.0"", ""sharp"": ""0.32.6"", ""shebang-command"": ""2.0.0"", ""shebang-regex"": ""3.0.0"", ""shell-quote"": ""1.8.1"", ""shiki"": ""0.14.7"", ""side-channel"": ""1.0.4"", ""signal-exit"": ""4.1.0"", ""simple-concat"": ""1.0.1"", ""simple-get"": ""4.0.1"", ""simple-swizzle"": ""0.2.2"", ""source-map"": ""0.6.1"", ""source-map-support"": ""0.5.21"", ""spdx-correct"": ""3.2.0"", ""spdx-exceptions"": ""2.3.0"", ""spdx-expression-parse"": ""3.0.1"", ""spdx-license-ids"": ""3.0.16"", ""spdy"": ""4.0.2"", ""spdy-transport"": ""3.0.0"", ""stack-trace"": ""0.0.10"", ""statuses"": ""2.0.1"", ""stream-buffers"": ""2.2.0"", ""stream-combiner"": ""0.2.2"", ""streamx"": ""2.15.6"", ""string-width"": ""5.1.2"", ""string-width-cjs"": ""npm:string-width@4.2.3"", ""string_decoder"": ""1.1.1"", ""strip-ansi"": ""7.1.0"", ""strip-ansi-cjs"": ""npm:strip-ansi@6.0.1"", ""strip-json-comments"": ""2.0.1"", ""supports-color"": ""8.1.1"", ""supports-preserve-symlinks-flag"": ""1.0.0"", ""tar-fs"": ""3.0.4"", ""tar-stream"": ""3.1.6"", ""teen_process"": ""2.0.101"", ""text-hex"": ""1.0.0"", ""through"": ""2.3.8"", ""toidentifier"": ""1.0.1"", ""triple-beam"": ""1.4.1"", ""truncate-utf8-bytes"": ""1.0.2"", ""ts-node"": ""9.1.1"", ""tslib"": ""2.6.2"", ""tunnel-agent"": ""0.6.0"", ""type-fest"": ""3.13.1"", ""type-is"": ""1.6.18"", ""typedoc"": ""0.23.28"", ""typedoc-plugin-markdown"": ""3.14.0"", ""typedoc-plugin-resolve-crossmodule-references"": ""0.3.3"", ""typescript"": ""5.0.4"", ""uglify-js"": ""3.17.4"", ""undici-types"": ""5.26.5"", ""unorm"": ""1.6.0"", ""unpipe"": ""1.0.0"", ""uri-js"": ""4.4.1"", ""utf8-byte-length"": ""1.0.4"", ""util-deprecate"": ""1.0.2"", ""utils-merge"": ""1.0.1"", ""uuid"": ""9.0.1"", ""validate-npm-package-license"": ""3.0.4"", ""validate.js"": ""0.13.1"", ""vary"": ""1.1.2"", ""vscode-oniguruma"": ""1.7.0"", ""vscode-textmate"": ""8.0.0"", ""wbuf"": ""1.7.3"", ""wcwidth"": ""1.0.1"", ""which"": ""4.0.0"", ""wide-align"": ""1.1.5"", ""winston"": ""3.11.0"", ""winston-transport"": ""4.6.0"", ""wordwrap"": ""1.0.0"", ""wrap-ansi"": ""7.0.0"", ""wrap-ansi-cjs"": ""npm:wrap-ansi@7.0.0"", ""wrappy"": ""1.0.2"", ""xmlbuilder"": ""15.1.1"", ""y18n"": ""5.0.8"", ""yallist"": ""4.0.0"", ""yaml"": ""2.3.4"", ""yargs"": ""17.7.2"", ""yargs-parser"": ""21.1.1"", ""yauzl"": ""2.10.0"", ""yn"": ""3.1.1"", ""yocto-queue"": ""0.1.0"", ""zip-stream"": ""5.0.1""}",1,0,{},"{""appium"": ""^2.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,True,False,False,False,False,False,True,True,True,2,"{""total_duration"": """", ""checks"": []}",Other,2023-12-11 14:10:40,main,Test scripts for the Open edX mobile applications,818,5,True,False,False,False,False,False,False,2025-08-29 14:34:13,Apache License 2.0,0,False,0,0,0,0,0,627277,1015,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://nodejs.org/en/', 'https://appium.io/docs/en/latest/quickstart/', 'https://www.oracle.com/europe/java/technologies/downloads/', 'https://developer.android.com/tools', 'https://github.com/openedx/openedx-app-test', 'https://www.python.org/downloads/', 'https://stackoverflow.com/questions/6587507/how-to-install-pip-with-python-3', 'https://www.browserstack.com/list-of-browsers-and-platforms/automate']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-dev-utils,,,,False,2026-06-01,False,False,False,False,3,0,,0,{},3,0,{},"{""chokidar"": ""^5.0.0"", ""cors"": ""^2.8.6"", ""express"": ""^5.2.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""0 minutes 21 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 21 seconds""}]}",Other,2026-01-26 14:12:43,main,,43,3,True,False,False,False,False,False,False,2026-05-30 15:25:12,GNU AGPLv3,0,False,0,0,0,6203,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://github.com/openedx/frontend-base/'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/code-annotations,,,,True,2026-06-01,True,True,False,False,96,0,[],0,,0,0,,,7,"[""click==8.4.1"", ""stevedore==5.8.0"", ""pyyaml==6.0.3"", ""jinja2==3.1.6"", ""markupsafe==3.0.3"", ""python-slugify==8.0.4"", ""text-unidecode==1.3""]",96,"[""pytest-cov==7.1.0"", ""charset-normalizer==3.4.7"", ""diff-cover==10.2.1"", ""docutils==0.21.2"", ""asgiref==3.11.1"", ""keyring==25.7.0"", ""code-annotations==3.0.0"", ""idna==3.16"", ""six==1.17.0"", ""cachetools==7.1.4"", ""pyproject-hooks==1.2.0"", ""sphinx-book-theme==1.2.0"", ""nh3==0.3.5"", ""tomlkit==0.15.0"", ""secretstorage==3.5.0"", ""urllib3==2.7.0"", ""imagesize==2.0.0"", ""markdown-it-py==4.2.0"", ""packaging==26.2"", ""jeepney==0.9.0"", ""pycparser==3.0"", ""click-log==0.4.0"", ""beautifulsoup4==4.14.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""more-itertools==11.1.0"", ""typing-extensions==4.15.0"", ""alabaster==1.0.0"", ""python-slugify==8.0.4"", ""text-unidecode==1.3"", ""click==8.4.1"", ""stevedore==5.8.0"", ""pylint-plugin-utils==0.9.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""id==1.6.1"", ""pydata-sphinx-theme==0.16.1"", ""jinja2==3.1.6"", ""sphinxcontrib-serializinghtml==2.0.0"", ""distlib==0.4.0"", ""snowballstemmer==3.1.0"", ""chardet==7.4.3"", ""accessible-pygments==0.0.5"", ""sqlparse==0.5.5"", ""astroid==4.0.4"", ""colorama==0.4.6"", ""pylint-celery==0.3"", ""babel==2.18.0"", ""python-discovery==1.3.1"", ""pyyaml==6.0.3"", ""requests-toolbelt==1.0.0"", ""virtualenv==21.3.3"", ""jaraco-classes==3.4.0"", ""pip==26.1.1"", ""django==5.2.14"", ""filelock==3.29.0"", ""tomli-w==1.2.0"", ""pylint-django==2.7.0"", ""restructuredtext-lint==2.0.2"", ""twine==6.2.0"", ""pyproject-api==1.10.0"", ""pydocstyle==6.3.0"", ""edx-lint==6.1.0"", ""build==1.5.0"", ""pycodestyle==2.14.0"", ""cryptography==48.0.0"", ""roman-numerals==4.1.0"", ""setuptools==82.0.1"", ""soupsieve==2.8.4"", ""sphinx==9.1.0"", ""doc8==2.0.0"", ""iniconfig==2.3.0"", ""coverage[toml]==7.14.0"", ""tox==4.54.0"", ""pygments==2.20.0"", ""jaraco-context==6.1.2"", ""certifi==2026.5.20"", ""readme-renderer==44.0"", ""pylint==4.0.5"", ""requests==2.34.2"", ""pytest==9.0.3"", ""mccabe==0.7.0"", ""markupsafe==3.0.3"", ""rich==15.0.0"", ""pip-tools==7.5.3"", ""mdurl==0.1.2"", ""rfc3986==2.0.0"", ""jaraco-functools==4.5.0"", ""sphinxcontrib-qthelp==2.0.0"", ""dill==0.4.1"", ""cffi==2.0.0"", ""platformdirs==4.9.6"", ""isort==8.0.1"", ""mock==5.2.0"", ""wheel==0.47.0"", ""pluggy==1.6.0""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,16,"{""total_duration"": ""7891 minutes 25 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2018-11-16 20:22:19,master,"Extensible tools for parsing annotations in codebases, powers edx PII checker.",607,12,True,False,False,False,False,False,False,2026-06-01 00:41:55,Apache License 2.0,2,True,0,0,0,2841,3281,163378,0,True,True,False,False,True,False,False,,openedx,2,[],True,"['https://code-annotations.readthedocs.org', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/code-annotations/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/code-annotations/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help']",True,True,False,True,.readthedocs.yml,2,False,,,,False,True,False,True,,False,code-annotations,"['3', '3.12']",https://github.com/openedx/code-annotations,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-ora,,,,False,2026-06-01,True,True,False,False,48,0,,0,{},38,10,"{""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.5.1"", ""glob"": ""7.2.3"", ""husky"": ""7.0.4"", ""jest"": ""^30.0.0"", ""ts-jest"": ""^29.4.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-lib-special-exams"": ""^3.4.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@edx/tinymce-language-selector"": ""1.1.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/paragon"": ""^23.4.2"", ""@reduxjs/toolkit"": ""^1.9.7"", ""@tanstack/react-query"": ""^4.29.25"", ""@tanstack/react-query-devtools"": ""^4.35.3"", ""@tinymce/tinymce-react"": ""3.14.0"", ""@zip.js/zip.js"": ""^2.7.62"", ""axios"": ""^1.5.1"", ""classnames"": ""^2.3.2"", ""core-js"": ""3.49.0"", ""file-saver"": ""^2.0.5"", ""filesize"": ""^8.0.6"", ""jest-when"": ""^3.6.0"", ""moment"": ""^2.29.4"", ""pdfjs-dist"": ""^3.11.174"", ""prop-types"": ""15.8.1"", ""query-string"": ""^8.1.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-pdf"": ""^7.4.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""^2.13.9"", ""redux-logger"": ""^3.0.6"", ""regenerator-runtime"": ""0.14.1"", ""tinymce"": ""5.10.9"", ""uuid"": ""^9.0.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,True,True,True,True,24,"{""total_duration"": ""23658 minutes 32 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""3 minutes 40 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2023-07-12 21:42:38,master,Open Response Assessment MFE,4068,23,True,False,False,False,False,False,False,2026-05-28 20:02:44,GNU GPLv3,11,True,0,0,1027,596023,1591,983,0,False,False,False,False,False,False,False,,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora: 404', 'https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml/badge.svg: 404']",True,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-app-ora.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/overhangio/tutor-mfe/blob/release/tutormfe/plugin.py', 'https://docs.openedx.org/en/latest/site_ops/how-tos/add-waffle-flag-for-user.html', 'https://discuss.openedx.org', 'https://github.com/edx/frontend-app-ora/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-ora.svg', 'https://github.com/edx/frontend-app-ora/blob/master/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-ora/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-ora?branch=master']",True,True,False,False,,,True,2026-04-06,2024-02-05,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-chem,,,,True,2026-06-01,False,False,False,False,39,0,[],0,,0,0,,,9,"[""regex==2026.2.28"", ""numpy==2.4.2"", ""tqdm==4.67.3"", ""joblib==1.5.3"", ""click==8.3.1"", ""markupsafe==3.0.3"", ""scipy==1.17.1"", ""pyparsing==3.3.2"", ""nltk==3.9.3""]",39,"[""pyproject-hooks==1.2.0"", ""pygments==2.19.2"", ""astroid==4.0.4"", ""pylint==4.0.5"", ""packaging==26.0"", ""python-discovery==1.1.1"", ""numpy==2.4.2"", ""markupsafe==3.0.3"", ""click==8.3.1"", ""tomlkit==0.14.0"", ""pyparsing==3.3.2"", ""wheel==0.46.3"", ""iniconfig==2.3.0"", ""build==1.4.0"", ""coverage[toml]==7.13.4"", ""mccabe==0.7.0"", ""cachetools==7.0.3"", ""tomli-w==1.2.0"", ""tqdm==4.67.3"", ""joblib==1.5.3"", ""pip-tools==7.5.3"", ""setuptools==82.0.0"", ""pip==26.0.1"", ""pytest-cov==7.0.0"", ""pycodestyle==2.14.0"", ""scipy==1.17.1"", ""pluggy==1.6.0"", ""nltk==3.9.3"", ""filelock==3.25.0"", ""regex==2026.2.28"", ""distlib==0.4.0"", ""tox==4.49.0"", ""dill==0.4.1"", ""colorama==0.4.6"", ""isort==8.0.1"", ""pytest==9.0.2"", ""platformdirs==4.9.4"", ""pyproject-api==1.10.0"", ""virtualenv==21.1.0""]",0,[],0,[],0,[],False,,True,False,True,False,False,False,True,True,True,False,True,False,False,True,False,True,True,False,True,True,True,27,"{""total_duration"": ""1 minutes 2 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}]}",Other,2019-05-07 16:58:24,master,,120,5,True,False,False,False,False,False,False,2026-05-30 15:29:42,GNU AGPLv3,2,True,0,384,0,0,1281,61200,0,False,False,False,False,False,False,False,,openedx,2,[],False,"['https://github.com/openedx/edx-platform', 'https://github.com/openedx/openedx-chem/blob/master/LICENSE']",True,True,False,False,,,False,,,,False,False,False,True,,False,chem,"['3', '3.12']",https://github.com/openedx/openedx-chem,True,True,True,False,False,False,False,False,False,[],[],"['python3-dev', 'gfortran', 'libblas-dev', 'liblapack-dev']",[] -openedx/edx-cookiecutters,,,,True,2026-06-01,True,True,False,False,101,0,[],0,,0,0,,,38,"[""code-annotations==2.2.0"", ""mccabe==0.7.0"", ""arrow==1.3.0"", ""markdown-it-py==3.0.0"", ""pbr==6.1.1"", ""text-unidecode==1.3"", ""jinja2==3.1.6"", ""requests==2.32.3"", ""mdurl==0.1.2"", ""pylint-django==2.6.1"", ""certifi==2025.1.31"", ""pyyaml==6.0.2"", ""chardet==5.2.0"", ""stevedore==5.4.1"", ""platformdirs==4.3.7"", ""click==8.1.8"", ""python-dateutil==2.9.0.post0"", ""cookiecutter==2.6.0"", ""types-python-dateutil==2.9.0.20241206"", ""binaryornot==0.4.4"", ""idna==3.10"", ""six==1.17.0"", ""python-slugify==8.0.4"", ""click-log==0.4.0"", ""setuptools==78.1.0"", ""pylint-plugin-utils==0.8.2"", ""charset-normalizer==3.4.1"", ""rich==14.0.0"", ""urllib3==2.2.3"", ""edx-lint==5.6.0"", ""pygments==2.19.1"", ""pylint-celery==0.3"", ""markupsafe==3.0.2"", ""dill==0.3.9"", ""tomlkit==0.13.2"", ""isort==6.0.1"", ""astroid==3.3.9"", ""pylint==3.3.6""]",101,"[""sh==2.2.2"", ""pytest-cookies==0.7.0"", ""mccabe==0.7.0"", ""pyproject-api==1.9.0"", ""pbr==6.1.1"", ""certifi==2025.1.31"", ""build==1.2.2.post1"", ""python-dateutil==2.9.0.post0"", ""sqlparse==0.5.3"", ""types-python-dateutil==2.9.0.20241206"", ""more-itertools==10.6.0"", ""docutils==0.21.2"", ""urllib3==2.2.3"", ""pygments==2.19.1"", ""jaraco-context==6.0.1"", ""markupsafe==3.0.2"", ""sphinxcontrib-jsmath==1.0.1"", ""isort==6.0.1"", ""astroid==3.3.9"", ""nh3==0.2.21"", ""virtualenv==20.29.3"", ""pycparser==2.22"", ""babel==2.17.0"", ""code-annotations==2.2.0"", ""readme-renderer==44.0"", ""sphinx==8.2.3"", ""text-unidecode==1.3"", ""jinja2==3.1.6"", ""alabaster==1.0.0"", ""packaging==24.2"", ""rfc3986==2.0.0"", ""requests-toolbelt==1.0.0"", ""beautifulsoup4==4.13.3"", ""soupsieve==2.6"", ""pydocstyle==6.3.0"", ""six==1.17.0"", ""wheel==0.45.1"", ""python-slugify==8.0.4"", ""jaraco-classes==3.4.0"", ""charset-normalizer==3.4.1"", ""filelock==3.18.0"", ""pyproject-hooks==1.2.0"", ""pylint-celery==0.3"", ""dill==0.3.9"", ""roman-numerals-py==3.1.0"", ""tomlkit==0.13.2"", ""cachetools==5.5.2"", ""sphinxcontrib-jquery==4.1"", ""sphinxcontrib-applehelp==2.0.0"", ""snowballstemmer==2.2.0"", ""pytest==8.3.5"", ""restructuredtext-lint==1.4.0"", ""doc8==0.11.2"", ""id==1.5.0"", ""typing-extensions==4.13.0"", ""mdurl==0.1.2"", ""tox==4.25.0"", ""sphinx-book-theme==1.1.4"", ""sphinx-rtd-theme==3.0.2"", ""stevedore==5.4.1"", ""platformdirs==4.3.7"", ""django-model-utils==5.0.0"", ""pluggy==1.5.0"", ""jeepney==0.9.0"", ""click==8.1.8"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pydata-sphinx-theme==0.15.4"", ""jaraco-functools==4.1.0"", ""click-log==0.4.0"", ""pip-tools==7.4.1"", ""setuptools==78.1.0"", ""edx-lint==5.6.0"", ""imagesize==1.4.1"", ""distlib==0.3.9"", ""pylint==3.3.6"", ""pip==24.2"", ""keyring==25.6.0"", ""sphinxcontrib-qthelp==2.0.0"", ""arrow==1.3.0"", ""markdown-it-py==3.0.0"", ""accessible-pygments==0.0.5"", ""secretstorage==3.3.3"", ""pylint-django==2.6.1"", ""pyyaml==6.0.2"", ""chardet==5.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""cookiecutter==2.6.0"", ""colorama==0.4.6"", ""twine==6.1.0"", ""binaryornot==0.4.4"", ""idna==3.10"", ""pycodestyle==2.13.0"", ""pylint-plugin-utils==0.8.2"", ""asgiref==3.8.1"", ""sphinxcontrib-devhelp==2.0.0"", ""rich==14.0.0"", ""cffi==1.17.1"", ""iniconfig==2.1.0"", ""cryptography==44.0.2"", ""django==4.2.20"", ""requests==2.32.3""]",2,"[""pylint-django"", ""code-annotations""]",3,"[""django-model-utils"", ""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,False,True,True,False,False,True,True,True,True,True,True,False,True,True,False,False,True,False,True,True,True,19,"{""total_duration"": ""18714 minutes 23 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, py)"", ""duration"": ""5 minutes 26 seconds""}, {""name"": ""run_ida_tests (ubuntu-latest, 3.12)"", ""duration"": ""4 minutes 3 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2020-04-29 19:18:59,master,"Open edx public templates for apps, libraries and services.",896,34,True,False,False,False,False,False,False,2026-05-15 04:57:10,Apache License 2.0,11,True,179,5400,1070,1097,32634,99502,5540,False,True,False,False,True,False,False,,openedx,5,[],True,"['https://discuss.openedx.org', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://tox.readthedocs.io/en/latest/']",True,True,False,False,,,False,,,,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-discussions,,,,False,2026-06-01,True,True,False,False,41,0,,0,{},29,12,"{""@edx/browserslist-config"": ""1.5.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""14.3.1"", ""@testing-library/user-event"": ""13.5.0"", ""axios"": ""^0.30.0"", ""axios-mock-adapter"": ""1.22.0"", ""babel-plugin-react-intl"": ""8.2.25"", ""eslint-plugin-simple-import-sort"": ""7.0.0"", ""glob"": ""7.2.3"", ""jest"": ""29.7.0"", ""rosie"": ""2.1.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@reduxjs/toolkit"": ""1.9.7"", ""@tinymce/tinymce-react"": ""5.1.1"", ""babel-polyfill"": ""6.26.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.47.0"", ""dompurify"": ""^2.4.3"", ""formik"": ""2.4.9"", ""lodash.snakecase"": ""4.1.1"", ""prop-types"": ""15.8.1"", ""raw-loader"": ""4.0.2"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-google-recaptcha"": ""^3.1.0"", ""react-google-recaptcha-v3"": ""^1.11.0"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.18.0"", ""react-router-dom"": ""6.18.0"", ""redux"": ""4.2.1"", ""regenerator-runtime"": ""0.14.1"", ""timeago.js"": ""4.0.2"", ""tinymce"": ""5.10.9"", ""yup"": ""0.32.11""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,73,"{""total_duration"": ""15781 minutes 14 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""3 minutes 27 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2020-08-11 23:04:15,master,A React-based micro frontend for the Open edX discussion forums.,8932,107,True,False,False,False,False,False,False,2026-05-29 20:32:11,GNU AGPLv3,17,True,0,0,6378,909185,2014,0,0,False,False,False,False,True,False,False,@edx/frontend-app-discussions,openedx,0,"['https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404']",True,"['https://codecov.io/gh/openedx/frontend-app-discussions/branch/master/graph/badge.svg?token=3z7XvuzTq3', 'https://codecov.io/gh/openedx/frontend-app-discussions', 'https://img.shields.io/badge/license-AGPL-informational', 'https://github.com/openedx/frontend-app-discussions/blob/master/LICENSE', 'https://github.com/openedx/devstack', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-discussions.git', 'https://github.com/openedx/frontend-plugin-framework', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-discussions/issues', 'https://openedx.org/getting-help', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html', 'https://github.com/openedx/frontend-app-discussions/blob/master/.github/pull_request_template.md', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/frontend-app-discussions/blob/master/docs/decisions/0002-feature-based-application-organization.rst']",True,True,False,False,,,True,2026-03-30,2024-01-08,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/edx-submissions,,,,True,2026-06-01,True,True,False,False,106,0,[],0,,0,0,,,10,"[""asgiref==3.11.1"", ""jsonfield==3.2.0"", ""pyyaml==6.0.3"", ""django-model-utils==5.0.0"", ""sqlparse==0.5.5"", ""six==1.17.0"", ""edx-django-release-util==1.5.0"", ""django==5.2.14"", ""djangorestframework==3.17.1"", ""pytz==2026.2""]",106,"[""tox==4.53.1"", ""tomli-w==1.2.0"", ""pylint==4.0.5"", ""pylint-django==2.7.0"", ""edx-django-release-util==1.5.0"", ""astroid==4.0.4"", ""edx-django-utils==8.0.1"", ""faker==40.15.0"", ""pyproject-hooks==1.2.0"", ""coverage[toml]==7.14.0"", ""dnspython==2.8.0"", ""colorama==0.4.6"", ""pluggy==1.6.0"", ""requests==2.34.0"", ""mock==5.2.0"", ""soupsieve==2.8"", ""packaging==26.2"", ""filelock==3.29.0"", ""urllib3==2.7.0"", ""edx-ccx-keys==2.0.2"", ""pytest-django==4.12.0"", ""annotated-doc==0.0.4"", ""factory-boy==3.3.3"", ""ddt==1.7.2"", ""sphinxcontrib-devhelp==2.0.0"", ""babel==2.18.0"", ""docutils==0.22.4"", ""wheel==0.47.0"", ""cachetools==7.1.1"", ""coveralls==4.1.0"", ""djangorestframework==3.17.1"", ""freezegun==1.5.5"", ""dill==0.4.1"", ""sqlparse==0.5.5"", ""click-log==0.4.0"", ""pycparser==3.0"", ""setuptools==82.0.1"", ""edx-lint==6.1.0"", ""virtualenv==21.3.2"", ""distlib==0.4.0"", ""pyproject-api==1.10.0"", ""django==5.2.14"", ""shellingham==1.5.4"", ""sphinxcontrib-qthelp==2.0.0"", ""edx-opaque-keys[django]==4.0.0"", ""pytest==9.0.3"", ""build==1.5.0"", ""sphinx-book-theme==1.2.0"", ""markdown-it-py==4.2.0"", ""pip-tools==7.5.3"", ""markupsafe==3.0.3"", ""psutil==7.2.2"", ""certifi==2026.4.22"", ""django-crum==0.7.9"", ""six==1.17.0"", ""imagesize==2.0.0"", ""pymongo==4.17.0"", ""iniconfig==2.3.0"", ""pip==26.1.1"", ""sphinx==9.1.0"", ""typing-extensions==4.15.0"", ""roman-numerals==4.1.0"", ""python-discovery==1.3.0"", ""asgiref==3.11.1"", ""fastavro==1.12.2"", ""pockets==0.9.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""text-unidecode==1.3"", ""idna==3.15"", ""pylint-celery==0.3"", ""mccabe==0.7.0"", ""pynacl==1.6.2"", ""accessible-pygments==0.0.5"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-applehelp==2.0.0"", ""django-waffle==5.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-napoleon==0.7"", ""openedx-events==10.2.0"", ""pygments==2.20.0"", ""jinja2==3.1.6"", ""rich==15.0.0"", ""code-annotations==3.0.0"", ""pycodestyle==2.14.0"", ""python-slugify==8.0.4"", ""isort==8.0.1"", ""tomlkit==0.15.0"", ""typer==0.25.1"", ""charset-normalizer==3.4.7"", ""snowballstemmer==3.0.1"", ""pylint-plugin-utils==0.9.0"", ""python-dateutil==2.9.0.post0"", ""beautifulsoup4==4.14.3"", ""stevedore==5.7.0"", ""alabaster==1.0.0"", ""attrs==26.1.0"", ""platformdirs==4.9.6"", ""pytz==2026.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pytest-cov==7.1.0"", ""cffi==2.0.0"", ""jsonfield==3.2.0"", ""mdurl==0.1.2"", ""pyyaml==6.0.3"", ""click==8.3.3"", ""django-model-utils==5.0.0""]",8,"[""pytest-django"", ""factory-boy"", ""code-annotations"", ""django-waffle"", ""pylint-django"", ""edx-django-release-util"", ""djangorestframework"", ""edx-django-utils""]",11,"[""pytest-django"", ""django-crum"", ""django-model-utils"", ""factory-boy"", ""code-annotations"", ""django-waffle"", ""pylint-django"", ""edx-django-release-util"", ""jsonfield"", ""djangorestframework"", ""edx-django-utils""]",4,"[""code-annotations"", ""edx-django-utils"", ""edx-django-release-util"", ""django-waffle""]",True,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,16,"{""total_duration"": ""1 minutes 23 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52-drf315)"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42-drf315)"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42-drflatest)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 53 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2014-06-05 18:19:35,master,API for creating submissions and scores,699,38,True,False,False,False,False,False,False,2026-05-26 17:26:36,GNU AGPLv3,2,True,0,0,705,0,4634,337220,0,False,False,False,False,True,False,False,,openedx,4,"['https://docs.openedx.org/projects/edx-submissions: 404', 'https://openedx.org/getting-help: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://discuss.openedx.org', 'https://github.com/openedx/edx-submissions/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/edx-submissions', 'https://img.shields.io/pypi/v/edx-submissions.svg', 'https://pypi.python.org/pypi/edx-submissions/', 'https://github.com/openedx/edx-submissions/actions/workflows/ci.yml/badge.svg?branch=master', 'https://github.com/openedx/edx-submissions/actions/workflows/ci.yml?branch=master', 'https://codecov.io/github/openedx/edx-submissions/coverage.svg?branch=master', 'https://codecov.io/github/openedx/edx-submissions?branch=master', 'https://readthedocs.org/projects/edx-submissions/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-submissions.svg', 'https://img.shields.io/github/license/openedx/edx-submissions.svg', 'https://github.com/openedx/edx-submissions/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-submissions,"['3', '3.12']",http://github.com/openedx/edx-submissions.git,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/taxonomy-connector,,,,True,2026-06-01,True,True,False,False,146,0,[],0,,0,0,,,110,"[""boto3==1.43.6"", ""tomli-w==1.2.0"", ""djangorestframework==3.17.1"", ""factory-boy==3.3.3"", ""cachetools==7.1.1"", ""edx-opaque-keys[django]==4.0.0"", ""chardet==7.4.3"", ""lxml-html-clean==0.4.4"", ""lxml[html-clean]==6.1.0"", ""django-waffle==5.0.0"", ""billiard==4.2.4"", ""pytest==9.0.3"", ""edx-lint==6.1.0"", ""edx-django-utils==8.0.1"", ""prompt-toolkit==3.0.52"", ""six==1.17.0"", ""click-log==0.4.0"", ""amqp==5.3.1"", ""edx-rest-api-client==7.0.0"", ""django-solo==2.5.1"", ""edx-ccx-keys==2.0.2"", ""pymongo==4.17.0"", ""fastavro==1.12.2"", ""soupsieve==2.8.3"", ""iniconfig==2.3.0"", ""pycparser==3.0"", ""botocore==1.43.6"", ""responses==0.26.0"", ""packaging==26.2"", ""distlib==0.4.0"", ""click-didyoumean==0.3.1"", ""click-plugins==1.1.1.2"", ""certifi==2026.4.22"", ""pycodestyle==2.14.0"", ""vine==5.1.0"", ""idna==3.14"", ""attrs==26.1.0"", ""pytz==2026.2"", ""virtualenv==21.3.1"", ""ddt==1.7.2"", ""pylint-plugin-utils==0.9.0"", ""click-repl==0.3.0"", ""click==8.3.3"", ""isort==8.0.1"", ""mock==5.2.0"", ""pylint-django==2.7.0"", ""faker==40.15.0"", ""django-object-actions==5.0.1"", ""stevedore==5.7.0"", ""diff-cover==10.2.0"", ""tox==4.53.1"", ""testfixtures==11.0.0"", ""tomlkit==0.15.0"", ""django-ses==4.7.2"", ""code-annotations==3.0.0"", ""colorama==0.4.6"", ""jmespath==1.1.0"", ""python-discovery==1.3.0"", ""asgiref==3.11.1"", ""cffi==2.0.0"", ""kombu==5.6.2"", ""wcwidth==0.7.0"", ""pynacl==1.6.2"", ""pyproject-api==1.10.0"", ""edx-i18n-tools==2.0.0"", ""pylint==4.0.5"", ""algoliasearch==1.20.0"", ""filelock==3.29.0"", ""pluggy==1.6.0"", ""wheel==0.47.0"", ""jinja2==3.1.6"", ""openedx-events==11.2.0"", ""django-model-utils==5.0.0"", ""pytest-cov==7.1.0"", ""s3transfer==0.17.0"", ""coverage[toml]==7.14.0"", ""charset-normalizer==3.4.7"", ""path==16.16.0"", ""pytest-django==4.12.0"", ""pylint-celery==0.3"", ""dill==0.4.1"", ""pydocstyle==6.3.0"", ""pip-tools==7.5.3"", ""pyjwt==2.12.1"", ""markupsafe==3.0.3"", ""typing-extensions==4.15.0"", ""psutil==7.2.2"", ""django-crum==0.7.9"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""sqlparse==0.5.5"", ""polib==1.2.0"", ""astroid==4.0.4"", ""python-slugify==8.0.4"", ""urllib3==2.7.0"", ""django-filter==25.2"", ""python-dateutil==2.9.0.post0"", ""django==5.2.14"", ""dnspython==2.8.0"", ""celery==5.6.3"", ""beautifulsoup4==4.14.3"", ""snowballstemmer==3.0.1"", ""build==1.5.0"", ""tzdata==2026.2"", ""pyyaml==6.0.3"", ""pyproject-hooks==1.2.0"", ""pygments==2.20.0"", ""requests==2.33.1"", ""platformdirs==4.9.6"", ""tzlocal==5.3.1""]",146,"[""boto3==1.43.6"", ""tomli-w==1.2.0"", ""djangorestframework==3.17.1"", ""factory-boy==3.3.3"", ""cachetools==7.1.1"", ""babel==2.18.0"", ""edx-opaque-keys[django]==4.0.0"", ""sphinx==9.1.0"", ""chardet==7.4.3"", ""lxml-html-clean==0.4.4"", ""lxml[html-clean]==6.1.0"", ""django-waffle==5.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""imagesize==2.0.0"", ""billiard==4.2.4"", ""pytest==9.0.3"", ""edx-lint==6.1.0"", ""edx-django-utils==8.0.1"", ""prompt-toolkit==3.0.52"", ""six==1.17.0"", ""click-log==0.4.0"", ""doc8==2.0.0"", ""amqp==5.3.1"", ""edx-rest-api-client==7.0.0"", ""secretstorage==3.5.0"", ""django-solo==2.5.1"", ""edx-ccx-keys==2.0.2"", ""pymongo==4.17.0"", ""fastavro==1.12.2"", ""jeepney==0.9.0"", ""soupsieve==2.8.3"", ""iniconfig==2.3.0"", ""jaraco-functools==4.4.0"", ""pycparser==3.0"", ""botocore==1.43.6"", ""responses==0.26.0"", ""packaging==26.2"", ""pydata-sphinx-theme==0.16.1"", ""distlib==0.4.0"", ""click-didyoumean==0.3.1"", ""click-plugins==1.1.1.2"", ""certifi==2026.4.22"", ""pycodestyle==2.14.0"", ""sphinx-book-theme==1.2.0"", ""vine==5.1.0"", ""idna==3.14"", ""attrs==26.1.0"", ""pytz==2026.2"", ""more-itertools==11.0.2"", ""virtualenv==21.3.1"", ""roman-numerals==4.1.0"", ""ddt==1.7.2"", ""pylint-plugin-utils==0.9.0"", ""click-repl==0.3.0"", ""click==8.3.3"", ""jaraco-classes==3.4.0"", ""isort==8.0.1"", ""mock==5.2.0"", ""pylint-django==2.7.0"", ""faker==40.15.0"", ""django-object-actions==5.0.1"", ""sphinxcontrib-jsmath==1.0.1"", ""cryptography==48.0.0"", ""stevedore==5.7.0"", ""diff-cover==10.2.0"", ""tox==4.53.1"", ""testfixtures==11.0.0"", ""tomlkit==0.15.0"", ""alabaster==1.0.0"", ""django-ses==4.7.2"", ""mdurl==0.1.2"", ""code-annotations==3.0.0"", ""colorama==0.4.6"", ""jmespath==1.1.0"", ""python-discovery==1.3.0"", ""asgiref==3.11.1"", ""cffi==2.0.0"", ""requests-toolbelt==1.0.0"", ""markdown-it-py==4.2.0"", ""kombu==5.6.2"", ""wcwidth==0.7.0"", ""pynacl==1.6.2"", ""pyproject-api==1.10.0"", ""edx-i18n-tools==2.0.0"", ""pylint==4.0.5"", ""algoliasearch==1.20.0"", ""filelock==3.29.0"", ""pluggy==1.6.0"", ""keyring==25.7.0"", ""twine==6.2.0"", ""wheel==0.47.0"", ""rich==15.0.0"", ""pip==26.1.1"", ""jinja2==3.1.6"", ""openedx-events==11.2.0"", ""setuptools==82.0.1"", ""nh3==0.3.5"", ""django-model-utils==5.0.0"", ""pytest-cov==7.1.0"", ""s3transfer==0.17.0"", ""coverage[toml]==7.14.0"", ""charset-normalizer==3.4.7"", ""path==16.16.0"", ""pytest-django==4.12.0"", ""pylint-celery==0.3"", ""dill==0.4.1"", ""docutils==0.21.2"", ""pydocstyle==6.3.0"", ""pip-tools==7.5.3"", ""accessible-pygments==0.0.5"", ""restructuredtext-lint==2.0.2"", ""pyjwt==2.12.1"", ""markupsafe==3.0.3"", ""typing-extensions==4.15.0"", ""jaraco-context==6.1.2"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""psutil==7.2.2"", ""django-crum==0.7.9"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""sqlparse==0.5.5"", ""polib==1.2.0"", ""astroid==4.0.4"", ""python-slugify==8.0.4"", ""urllib3==2.7.0"", ""readme-renderer==44.0"", ""sphinxcontrib-applehelp==2.0.0"", ""django-filter==25.2"", ""python-dateutil==2.9.0.post0"", ""rfc3986==2.0.0"", ""django==5.2.14"", ""dnspython==2.8.0"", ""celery==5.6.3"", ""beautifulsoup4==4.14.3"", ""snowballstemmer==3.0.1"", ""build==1.5.0"", ""tzdata==2026.2"", ""pyyaml==6.0.3"", ""id==1.6.1"", ""pyproject-hooks==1.2.0"", ""pygments==2.20.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""requests==2.33.1"", ""platformdirs==4.9.6"", ""tzlocal==5.3.1""]",12,"[""edx-django-utils"", ""edx-i18n-tools"", ""django-waffle"", ""pylint-django"", ""django-object-actions"", ""code-annotations"", ""edx-rest-api-client"", ""pytest-django"", ""django-filter"", ""factory-boy"", ""django-solo"", ""djangorestframework""]",15,"[""edx-django-utils"", ""edx-i18n-tools"", ""django-ses"", ""django-waffle"", ""pylint-django"", ""django-object-actions"", ""django-crum"", ""code-annotations"", ""edx-rest-api-client"", ""pytest-django"", ""django-filter"", ""factory-boy"", ""django-solo"", ""django-model-utils"", ""djangorestframework""]",7,"[""edx-django-utils"", ""edx-i18n-tools"", ""django-waffle"", ""code-annotations"", ""edx-rest-api-client"", ""django-filter"", ""django-solo""]",False,,True,False,True,True,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,36,"{""total_duration"": ""1989 minutes 56 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 33 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 57 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 44 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii-annotations)"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2020-08-28 15:55:21,master,A python package that communicates with 3rd party taxonomy vendors,1038,18,True,False,False,False,False,False,False,2026-06-01 00:43:21,GNU AGPLv3,15,True,983,0,3100,1016,3852,650835,0,True,True,False,False,True,False,False,,openedx,2,[],True,"['https://img.shields.io/pypi/v/taxonomy-connector.svg', 'https://pypi.org/project/taxonomy-connector/', 'http://codecov.io/github/openedx/taxonomy-connector/coverage.svg?branch=master', 'http://codecov.io/github/openedx/taxonomy-connector?branch=master', 'https://github.com/openedx/taxonomy-connector/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/taxonomy-connector/actions?query=workflow%3A%22Python+CI%22', 'https://open.edx.org/getting-help']",True,True,False,False,,,False,,,,False,True,False,True,,False,taxonomy-connector,"['3', '3.12']",https://github.com/openedx/taxonomy-connector,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/codejail-includes,,,,True,2026-06-01,True,True,False,False,93,0,[],0,,0,0,,,0,[],93,"[""iniconfig==2.3.0"", ""requests==2.32.5"", ""urllib3==2.6.3"", ""pycodestyle==2.14.0"", ""sphinxcontrib-qthelp==2.0.0"", ""readme-renderer==44.0"", ""charset-normalizer==3.4.5"", ""setuptools==82.0.0"", ""pylint-celery==0.3"", ""secretstorage==3.5.0"", ""pydata-sphinx-theme==0.15.4"", ""python-slugify==8.0.4"", ""pylint==4.0.5"", ""sphinxcontrib-jsmath==1.0.1"", ""roman-numerals==4.1.0"", ""rich==14.3.3"", ""snowballstemmer==3.0.1"", ""id==1.6.1"", ""idna==3.11"", ""edx-lint==5.6.0"", ""twine==6.2.0"", ""imagesize==2.0.0"", ""restructuredtext-lint==2.0.2"", ""accessible-pygments==0.0.5"", ""code-annotations==2.3.2"", ""markupsafe==3.0.3"", ""filelock==3.25.0"", ""doc8==2.0.0"", ""isort==8.0.1"", ""diff-cover==10.2.0"", ""docutils==0.21.2"", ""mdurl==0.1.2"", ""cffi==2.0.0"", ""jeepney==0.9.0"", ""tox==4.48.1"", ""tomlkit==0.14.0"", ""rfc3986==2.0.0"", ""keyring==25.7.0"", ""colorama==0.4.6"", ""pydocstyle==6.3.0"", ""pluggy==1.6.0"", ""requests-toolbelt==1.0.0"", ""docutils==0.22.4"", ""pyproject-hooks==1.2.0"", ""soupsieve==2.8.3"", ""sphinxcontrib-applehelp==2.0.0"", ""jaraco-classes==3.4.0"", ""python-discovery==1.1.0"", ""certifi==2026.2.25"", ""chardet==7.0.1"", ""pyyaml==6.0.3"", ""pylint-plugin-utils==0.9.0"", ""pytest==9.0.2"", ""cachetools==7.0.3"", ""distlib==0.4.0"", ""sphinx-book-theme==1.1.4"", ""pip-tools==7.5.3"", ""pip==26.0.1"", ""astroid==4.0.4"", ""typing-extensions==4.15.0"", ""more-itertools==10.8.0"", ""pygments==2.19.2"", ""babel==2.18.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""alabaster==1.0.0"", ""coverage[toml]==7.13.4"", ""virtualenv==21.1.0"", ""sphinx==9.1.0"", ""pyproject-api==1.10.0"", ""cryptography==46.0.5"", ""jaraco-context==6.1.0"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""sphinxcontrib-devhelp==2.0.0"", ""wheel==0.46.3"", ""jinja2==3.1.6"", ""pycparser==3.0"", ""click==8.3.1"", ""packaging==26.0"", ""six==1.17.0"", ""dill==0.4.1"", ""sphinxcontrib-serializinghtml==2.0.0"", ""nh3==0.3.3"", ""tomli-w==1.2.0"", ""pytest-cov==7.0.0"", ""markdown-it-py==4.0.0"", ""stevedore==5.7.0"", ""platformdirs==4.9.4"", ""build==1.4.0"", ""click-log==0.4.0"", ""beautifulsoup4==4.14.3"", ""pylint-django==2.7.0"", ""jaraco-functools==4.4.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,7,"{""total_duration"": ""0 minutes 28 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, default)"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2022-05-16 18:54:49,main,A package that is included during sandboxed codejail operations.,91,7,True,False,False,False,False,False,False,2026-05-30 15:03:44,GNU AGPLv3,5,True,0,0,0,0,2602,55185,0,True,True,False,False,False,False,False,,openedx,0,"['https://openedx-slack-invite.herokuapp.com/: 404', 'https://github.com/openedx/sandboxcodejail-includes/workflows/Python%20CI/badge.svg?branch=main: 404']",True,"['https://openedx.atlassian.net/browse/BOM-2579', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/codejail-includes.svg', 'https://pypi.python.org/pypi/codejail-includes/', 'https://github.com/openedx/codejail-includes/actions', 'https://img.shields.io/github/license/openedx/sandbox-packages.svg', 'https://github.com/openedx/codejail-includes/blob/main/LICENSE']",True,True,False,False,,,False,,,,False,False,False,True,,False,codejail-includes,"['3', '3.12']",https://github.com/openedx/codejail-includes,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/api-doc-tools,,,,True,2026-06-01,True,True,False,False,107,0,[],0,,0,0,,,11,"[""djangorestframework==3.16.1"", ""setuptools==82.0.0"", ""django==5.2.12"", ""uritemplate==4.2.0"", ""drf-yasg==1.21.15"", ""packaging==26.0"", ""inflection==0.5.1"", ""pytz==2026.1.post1"", ""pyyaml==6.0.3"", ""asgiref==3.11.1"", ""sqlparse==0.5.5""]",107,"[""pycparser==3.0"", ""lxml-html-clean==0.4.4"", ""lxml[html-clean]==6.0.2"", ""sphinx==9.1.0"", ""astroid==4.0.4"", ""pylint==4.0.5"", ""twine==6.2.0"", ""pip-tools==7.5.3"", ""pylint-django==2.7.0"", ""djangorestframework==3.16.1"", ""setuptools==82.0.0"", ""virtualenv==21.1.0"", ""rich==14.3.3"", ""tox==4.48.1"", ""pip==26.0.1"", ""isort==8.0.1"", ""sphinx-book-theme==1.1.4"", ""pygments==2.19.2"", ""doc8==2.0.0"", ""tomli-w==1.2.0"", ""mccabe==0.7.0"", ""uritemplate==4.2.0"", ""six==1.17.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""accessible-pygments==0.0.5"", ""secretstorage==3.5.0"", ""distlib==0.4.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pyyaml==6.0.3"", ""imagesize==2.0.0"", ""readme-renderer==44.0"", ""build==1.4.0"", ""edx-i18n-tools==1.9.0"", ""pylint-plugin-utils==0.9.0"", ""code-annotations==2.3.2"", ""polib==1.2.0"", ""platformdirs==4.9.4"", ""pyproject-api==1.10.0"", ""packaging==26.0"", ""jaraco-classes==3.4.0"", ""docutils==0.22.4"", ""snowballstemmer==3.0.1"", ""wheel==0.46.3"", ""pydata-sphinx-theme==0.15.4"", ""pycodestyle==2.14.0"", ""mdurl==0.1.2"", ""restructuredtext-lint==2.0.2"", ""beautifulsoup4==4.14.3"", ""jaraco-context==6.1.0"", ""asgiref==3.11.1"", ""inflection==0.5.1"", ""jinja2==3.1.6"", ""rfc3986==2.0.0"", ""more-itertools==10.8.0"", ""drf-yasg==1.21.15"", ""markdown-it-py==4.0.0"", ""requests==2.32.5"", ""keyring==25.7.0"", ""coverage[toml]==7.13.4"", ""roman-numerals==4.1.0"", ""tomlkit==0.14.0"", ""colorama==0.4.6"", ""charset-normalizer==3.4.5"", ""edx-lint==5.6.0"", ""typing-extensions==4.15.0"", ""stevedore==5.7.0"", ""cachetools==7.0.3"", ""filelock==3.25.0"", ""id==1.6.1"", ""dill==0.4.1"", ""sphinxcontrib-jsmath==1.0.1"", ""pytest==9.0.2"", ""python-discovery==1.1.0"", ""sqlparse==0.5.5"", ""alabaster==1.0.0"", ""nh3==0.3.3"", ""cryptography==46.0.5"", ""jeepney==0.9.0"", ""pytest-django==4.12.0"", ""pylint-celery==0.3"", ""django==5.2.12"", ""pluggy==1.6.0"", ""pydocstyle==6.3.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pyproject-hooks==1.2.0"", ""jaraco-functools==4.4.0"", ""certifi==2026.2.25"", ""docutils==0.21.2"", ""pytest-cov==7.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""requests-toolbelt==1.0.0"", ""click==8.3.1"", ""cffi==2.0.0"", ""urllib3==2.6.3"", ""chardet==7.0.1"", ""click-log==0.4.0"", ""iniconfig==2.3.0"", ""text-unidecode==1.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""idna==3.11"", ""diff-cover==10.2.0"", ""path==16.16.0"", ""babel==2.18.0"", ""soupsieve==2.8.3"", ""pytz==2026.1.post1"", ""python-slugify==8.0.4"", ""markupsafe==3.0.3""]",5,"[""pylint-django"", ""pytest-django"", ""edx-i18n-tools"", ""djangorestframework"", ""code-annotations""]",6,"[""pylint-django"", ""pytest-django"", ""edx-i18n-tools"", ""djangorestframework"", ""code-annotations"", ""drf-yasg""]",2,"[""code-annotations"", ""edx-i18n-tools""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,24,"{""total_duration"": ""0 minutes 40 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""0 minutes 40 seconds""}]}",Other,2019-10-29 19:55:09,master,Tools for writing and generating API documentation for edX REST APIs,431,16,True,False,False,False,False,False,False,2026-05-30 13:47:14,Apache License 2.0,12,True,0,0,0,0,5751,46803,0,True,True,False,False,True,False,False,,openedx,3,[],True,"['https://www.django-rest-framework.org/', 'https://github.com/axnsan12/drf-yasg', 'https://swagger.io/docs/specification/about/', 'https://open.edx.org/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-api-doc-tools.svg', 'https://pypi.python.org/pypi/edx-api-doc-tools/', 'https://github.com/openedx/api-doc-tools/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/api-doc-tools/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/api-doc-tools/coverage.svg?branch=master', 'http://codecov.io/github/edx/api-doc-tools?branch=master', 'https://readthedocs.org/projects/edx-api-doc-tools/badge/?version=latest', 'http://edx-api-doc-tools.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-api-doc-tools.svg', 'https://img.shields.io/github/license/edx/api-doc-tools.svg', 'https://github.com/openedx/api-doc-tools/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-api-doc-tools,"['3', '3.12']",https://github.com/openedx/api-doc-tools,True,True,True,False,False,False,False,False,False,[],[],,[] -openedx/django-require,,,,False,2026-06-01,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,True,False,True,False,False,False,False,True,True,True,False,False,False,False,False,True,True,False,True,True,True,2,"{""total_duration"": ""1 minutes 4 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 0 seconds""}]}",Other,2022-09-07 14:36:46,master,Legacy fork of a Django staticfiles post-processor for optimizing with RequireJS.,37199,4,True,False,False,False,True,False,False,2026-05-30 14:54:07,Apache License 2.0,0,True,0,0,0,1307550,0,31119,0,False,False,False,False,False,False,False,,openedx,0,"['http://twitter.com/etianen: 520', 'http://www.google.com/profiles/david.etianen: 404']",False,"['https://img.shields.io/pypi/v/openedx-django-require.svg', 'https://pypi.python.org/project/openedx-django-require/', 'https://github.com/openedx/django-require/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/django-require/actions', 'https://codecov.io/github/openedx/django-require/coverage.svg?branch=main', 'https://codecov.io/github/openedx/django-require?branch=main', 'http://requirejs.org/', 'https://github.com/openedx/edx-platform', 'https://github.com/edx/django-require', 'https://github.com/vtemian/django-require', 'https://github.com/etianen/django-require', 'https://github.com/openedx/django-require/releases/tag/final-bsd-3c-contribution', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/django-require', 'https://github.com/requirejs/almond', 'http://django-storages.readthedocs.org/en/latest/', 'https://github.com/etianen/django-require-s3', 'https://github.com/collab-project/django-require-license', 'http://github.com/etianen/django-require', 'http://groups.google.com/group/django-require', 'http://www.etianen.com/']",True,True,False,False,,,False,,,,False,False,False,False,,False,openedx-django-require,"['3.11', '3.12']",https://github.com/etianen/django-require,True,False,True,False,False,False,False,False,False,[],[],,[] -openedx/openedx-app-foundation-ios,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2024-10-07 11:30:41,main,,74,5,True,False,False,False,False,False,False,2026-05-30 15:29:28,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://github.com/openedx/openedx-app-foundation-ios.git'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/frontend-app-learning,,,,False,2026-06-01,True,True,False,False,49,0,,0,{},38,11,"{""@openedx/frontend-build"": ""^14.6.6"", ""@pact-foundation/pact"": ""^13.0.0"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""14.6.1"", ""axios-mock-adapter"": ""2.1.0"", ""bundlewatch"": ""^0.4.0"", ""eslint-import-resolver-webpack"": ""^0.13.9"", ""jest-when"": ""^3.6.0"", ""rosie"": ""2.1.1"", ""ts-jest"": ""29.1.4""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/browserslist-config"": ""1.5.1"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-lib-special-exams"": ""^4.0.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""^0.1.4"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@popperjs/core"": ""2.11.8"", ""@reduxjs/toolkit"": ""1.9.7"", ""buffer"": ""^6.0.3"", ""classnames"": ""2.5.1"", ""copy-webpack-plugin"": ""^12.0.0"", ""joi"": ""^17.11.0"", ""js-cookie"": ""3.0.5"", ""lodash"": ""^4.17.21"", ""lodash.camelcase"": ""4.3.0"", ""postcss-loader"": ""^8.1.1"", ""prop-types"": ""15.8.1"", ""query-string"": ""^7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""react-share"": ""4.4.1"", ""redux"": ""4.2.1"", ""reselect"": ""4.1.8"", ""sass"": ""^1.79.3"", ""sass-loader"": ""^16.0.2"", ""source-map-loader"": ""^5.0.0"", ""truncate-html"": ""1.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,False,True,True,91,"{""total_duration"": ""4882 minutes 18 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2019-04-30 20:28:43,master,"Front-end for the Open edX course experience, implemented using React and Paragon.",20771,324,True,False,False,False,False,False,False,2026-05-18 01:18:11,GNU AGPLv3,48,False,128,0,752,1288456,2076,0,0,False,False,False,False,False,False,False,@edx/frontend-app-learning,openedx,0,"['http://local.openedx.io: HTTPConnectionPool(host=\'local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://support.edx.org/hc/en-us/articles/206503858-How-do-I-verify-my-identity: 404', 'https://twitter.com/openedx: 403']",False,"['https://codecov.io/gh/edx/frontend-app-learning/branch/master/graph/badge.svg?token=3z7XvuzTq3', 'https://codecov.io/gh/edx/frontend-app-learning', 'https://img.shields.io/badge/license-AGPL-informational', 'https://github.com/openedx/frontend-app-account/blob/master/LICENSE', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-learning.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-build', 'https://openedx.github.io/frontend-platform/', 'https://github.com/openedx/frontend-plugin-framework', 'https://openedx.atlassian.net/browse/TNL-8678', 'https://support.edx.org/hc/en-us/articles/360000038428-Entering-math-expressions-in-assignments-or-the-calculator', 'https://support.edx.org/hc/en-us/articles/206502008-What-is-a-verified-certificate', 'https://github.com/openedx/frontend-app-learning/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://discuss.openedx.org', 'https://openedx.org/r/how-to-contribute', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2022-03-29,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/docs.openedx.org,,,,True,2026-06-01,True,True,False,False,59,0,[],0,,0,0,,,53,"[""idna==3.16"", ""websockets==16.0"", ""colorama==0.4.6"", ""roman-numerals==4.1.0"", ""sphinx==9.1.0"", ""typing-extensions==4.15.0"", ""mdurl==0.1.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""uvicorn==0.47.0"", ""sphinxext-rediraffe==0.3.0"", ""linuxdoc==20260504"", ""mdit-py-plugins==0.6.1"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""accessible-pygments==0.0.5"", ""soupsieve==2.8.3"", ""fspath==20230629"", ""beautifulsoup4==4.14.3"", ""myst-parser==5.1.0"", ""h11==0.16.0"", ""click==8.4.1"", ""imagesize==2.0.0"", ""watchfiles==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""markdown-it-py==4.2.0"", ""certifi==2026.5.20"", ""packaging==26.2"", ""snowballstemmer==3.0.1"", ""anyio==4.13.0"", ""charset-normalizer==3.4.7"", ""alabaster==1.0.0"", ""markupsafe==3.0.3"", ""six==1.17.0"", ""sphinx-book-theme==1.2.0"", ""sphinx-tags==0.4"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-youtube==1.5.0"", ""sphinxcontrib-images==1.0.1"", ""sphinx-notfound-page==1.1.0"", ""requests==2.34.2"", ""sphinx-design==0.7.0"", ""sphinx-autobuild==2025.8.25"", ""pygments==2.20.0"", ""pyyaml==6.0.3"", ""jinja2==3.1.6"", ""sphinx-copybutton==0.5.2"", ""starlette==1.1.0"", ""sphinxemoji==0.3.2"", ""urllib3==2.7.0"", ""babel==2.18.0"", ""docutils==0.22.4""]",59,"[""pip==26.1.1"", ""idna==3.16"", ""websockets==16.0"", ""colorama==0.4.6"", ""roman-numerals==4.1.0"", ""sphinx==9.1.0"", ""typing-extensions==4.15.0"", ""pip-tools==7.5.3"", ""mdurl==0.1.2"", ""wheel==0.47.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-qthelp==2.0.0"", ""uvicorn==0.47.0"", ""sphinxext-rediraffe==0.3.0"", ""linuxdoc==20260504"", ""mdit-py-plugins==0.6.1"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""accessible-pygments==0.0.5"", ""pyproject-hooks==1.2.0"", ""soupsieve==2.8.3"", ""fspath==20230629"", ""beautifulsoup4==4.14.3"", ""myst-parser==5.1.0"", ""h11==0.16.0"", ""click==8.4.1"", ""imagesize==2.0.0"", ""watchfiles==1.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""markdown-it-py==4.2.0"", ""certifi==2026.5.20"", ""build==1.5.0"", ""setuptools==82.0.1"", ""packaging==26.2"", ""snowballstemmer==3.0.1"", ""anyio==4.13.0"", ""charset-normalizer==3.4.7"", ""alabaster==1.0.0"", ""markupsafe==3.0.3"", ""six==1.17.0"", ""sphinx-book-theme==1.2.0"", ""sphinx-tags==0.4"", ""pydata-sphinx-theme==0.16.1"", ""sphinxcontrib-youtube==1.5.0"", ""sphinxcontrib-images==1.0.1"", ""sphinx-notfound-page==1.1.0"", ""requests==2.34.2"", ""sphinx-design==0.7.0"", ""sphinx-autobuild==2025.8.25"", ""pygments==2.20.0"", ""pyyaml==6.0.3"", ""jinja2==3.1.6"", ""sphinx-copybutton==0.5.2"", ""starlette==1.1.0"", ""sphinxemoji==0.3.2"", ""urllib3==2.7.0"", ""babel==2.18.0"", ""docutils==0.22.4""]",0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,False,True,False,False,False,True,False,False,False,False,True,True,True,14,"{""total_duration"": ""2089 minutes 17 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 41 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2022-03-14 18:35:37,main,Open edX Official Documentation,188468,86,True,False,False,False,False,False,False,2026-05-31 01:11:47,Other,7,False,2585,0,1648,27894,1875,19600,0,True,False,False,False,False,False,False,,openedx,0,['https://en.wikipedia.org/wiki/ReStructuredText: 403'],False,"['https://docs.openedx.org/en/latest/documentors/how-tos/report_problem_with_docs.html', 'https://docs.openedx.org/en/latest/documentors/quickstarts/first_documentation_pr.html', 'https://docs.openedx.org/en/latest/documentors/quickstarts/update_doc_via_github.html', 'https://docs.openedx.org/en/latest/documentors/quickstarts/quick_start_add_doc.html', 'https://docs.openedx.org/en/latest/documentors/index.html', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://docs.openedx.org/', 'https://github.com/openedx/docs.openedx.org', 'https://www.sphinx-doc.org/', 'https://docs.github.com/en/get-started/using-github/github-flow', 'https://docs.openedx.org/en/latest/documentors/how-tos/develop_docs_locally.html']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/cypress-e2e-tests,,,,False,2026-06-01,True,True,False,False,19,0,,0,{},0,19,"{""@babel/core"": ""^7.29.0"", ""@babel/eslint-parser"": ""^7.28.6"", ""@cypress/grep"": ""^6.0.0"", ""@edx/eslint-config"": ""^4.4.0"", ""cypress"": ""^15.12.0"", ""cypress-failed-log"": ""^2.5.0"", ""cypress-file-upload"": ""^5.0.8"", ""cypress-mochawesome-reporter"": ""^4.0.0"", ""cypress-wait-until"": ""^3.0.1"", ""eslint"": ""^8.57.1"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-plugin-cypress"": ""^2.15.2"", ""eslint-plugin-import"": ""^2.32.0"", ""eslint-plugin-jsx-a11y"": ""^6.10.2"", ""eslint-plugin-react"": ""^7.37.5"", ""eslint-plugin-react-hooks"": ""^4.6.2"", ""mochawesome"": ""^7.1.3"", ""mochawesome-merge"": ""^5.1.1"", ""mochawesome-report-generator"": ""^6.2.0""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,True,False,False,False,False,False,False,True,True,True,29,"{""total_duration"": ""3507 minutes 54 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2018-12-11 15:37:22,master,Cypress E2E Tests for Open edX applications,902,31,True,False,False,False,False,False,False,2026-05-28 02:59:20,GNU AGPLv3,6,True,0,283,0,144481,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://www.cypress.io/', 'https://docs.cypress.io/guides/overview/why-cypress.html', 'https://docs.cypress.io/examples/examples/tutorials.html']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],[],[] -openedx/wg-data,,,,False,2026-06-01,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": ""0 minutes 0 seconds"", ""checks"": [{""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2021-10-28 14:02:24,main,Tracking work and progress of the Open edX Data Working Group,20,3,True,False,False,False,False,False,False,2025-10-30 15:18:44,,1,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] -openedx/openedx-atlas,,,,False,2026-06-01,True,True,False,False,0,0,,0,{},0,0,{},{},0,,0,,0,[],0,[],0,[],False,,True,True,True,False,False,False,True,True,True,True,False,True,False,False,False,True,False,False,True,True,True,2,"{""total_duration"": ""2 minutes 57 seconds"", ""checks"": [{""name"": ""ubuntu-latest-git-2.25.1"", ""duration"": ""2 minutes 57 seconds""}, {""name"": ""ubuntu-22.04-git-2.30.2"", ""duration"": ""2 minutes 52 seconds""}, {""name"": ""ubuntu-22.04-git-2.40.1"", ""duration"": ""2 minutes 49 seconds""}, {""name"": ""shellspec-linux"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""ubuntu-22.04-git-default"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""shellspec-mac"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""ubuntu-latest-git-default"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 21 seconds""}]}",Other,2022-10-19 15:23:27,main,An Open edX CLI tool for moving translation files from openedx-translations,117,13,True,False,False,False,False,False,False,2026-05-29 19:30:13,GNU AGPLv3,1,False,0,0,0,0,1612,1779,56592,False,False,False,False,True,False,False,@edx/openedx-atlas,openedx,0,['https://www.npmjs.com/package/@edx/openedx-atlas: 403'],True,"['https://pypi.org/project/openedx-atlas/', 'https://github.com/openedx/openedx-atlas/releases/latest/', 'https://github.com/openedx/openedx-atlas/blob/main/atlas', 'https://github.com/openedx/openedx-atlas/releases/latest/download/atlas', 'https://github.com/shellspec/shellspec', 'https://github.com/koalaman/shellcheck', 'https://github.com/ko1nksm/getoptions', 'https://semver.org/', 'https://github.com/semantic-release/semantic-release/', 'https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+start+contributing+to+the+Open+edX+code+base', 'https://open.edx.org/getting-help']",True,True,False,False,,,True,,,0,False,False,False,False,,False,openedx-atlas,[],https://github.com/openedx/openedx-atlas,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/tutor-contrib-platform-notifications,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2025-09-25 17:27:16,main,A Tutor plugin to manage configuration and plugin slots for the Notifications tray feature.,49,7,True,False,False,False,False,False,False,2026-05-31 19:03:12,GNU AGPLv3,0,False,0,0,0,0,1098,4344,0,False,False,False,False,True,False,False,,openedx,0,['https://github.com/openedx/tutor-contrib-notifications: 504'],False,"['https://docs.tutor.edly.io', 'https://docs.openedx.org/en/latest/learners/sfd_notifications/index.html']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-components-tinymce-advanced-plugins,,,,False,2026-06-08,False,False,False,False,7,0,,0,{},1,6,"{""@openedx/frontend-build"": ""14.6.3"", ""@babel/preset-env"": ""^7.22.0"", ""babel-jest"": ""^29.5.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""^29.5.0"", ""jest-environment-jsdom"": ""^29.5.0""}","{""tinymce"": ""^5.10.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": ""1 minutes 0 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""1 minutes 0 seconds""}]}",Other,2023-08-08 21:27:45,main,,433,7,True,False,False,False,False,False,False,2026-05-19 11:22:23,GNU AGPLv3,0,True,0,0,0,9990,3027,0,266,False,False,False,False,True,False,False,,openedx,0,"['https://www.npmjs.com/package/frontend-components-tinymce-advanced-plugins: 403', 'https://github.com/frontend-components-tinymce-advanced-plugins/blob/master/LICENSE: 404']",False,"['https://img.shields.io/npm/v/frontend-components-tinymce-advanced-plugins.svg', 'https://img.shields.io/npm/dt/frontend-components-tinymce-advanced-plugins.svg', 'https://img.shields.io/npm/l/frontend-components-tinymce-advanced-plugins.svg']",True,True,False,False,,,True,2026-03-30,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-calc,,,,True,2026-06-08,True,True,False,False,64,0,[],0,,0,0,,,6,"[""mpmath==1.3.0"", ""lxml==6.0.2"", ""pyparsing==3.3.2"", ""numpy==2.4.2"", ""markupsafe==3.0.3"", ""sympy==1.14.0""]",64,"[""tomlkit==0.14.0"", ""code-annotations==2.3.2"", ""charset-normalizer==3.4.5"", ""pip==26.0.1"", ""pip-tools==7.5.3"", ""mccabe==0.7.0"", ""astroid==4.0.4"", ""pylint-celery==0.3"", ""annotated-doc==0.0.4"", ""numpy==2.4.2"", ""coverage==7.13.4"", ""packaging==26.0"", ""certifi==2026.2.25"", ""pip==24.2"", ""rich==14.3.3"", ""dill==0.4.1"", ""sympy==1.14.0"", ""python-slugify==8.0.4"", ""coveralls==4.1.0"", ""text-unidecode==1.3"", ""platformdirs==4.9.4"", ""wheel==0.45.1"", ""distlib==0.4.0"", ""six==1.17.0"", ""filelock==3.25.0"", ""pyyaml==6.0.3"", ""virtualenv==21.1.0"", ""markupsafe==3.0.3"", ""jinja2==3.1.6"", ""setuptools==78.1.0"", ""shellingham==1.5.4"", ""cachetools==7.0.3"", ""pylint==4.0.5"", ""markdown-it-py==4.0.0"", ""setuptools==82.0.0"", ""tox==4.49.0"", ""python-discovery==1.1.1"", ""pyproject-hooks==1.2.0"", ""isort==8.0.1"", ""idna==3.11"", ""pylint-django==2.7.0"", ""pytest==9.0.2"", ""stevedore==5.7.0"", ""pylint-plugin-utils==0.9.0"", ""wheel==0.46.3"", ""iniconfig==2.3.0"", ""build==1.4.0"", ""edx-lint==5.6.0"", ""tomli-w==1.2.0"", ""coverage[toml]==7.13.4"", ""click==8.3.1"", ""colorama==0.4.6"", ""mpmath==1.3.0"", ""lxml==6.0.2"", ""pycodestyle==2.14.0"", ""pyproject-api==1.10.0"", ""mdurl==0.1.2"", ""pygments==2.19.2"", ""urllib3==2.6.3"", ""typer==0.24.1"", ""requests==2.32.5"", ""pyparsing==3.3.2"", ""pluggy==1.6.0"", ""click-log==0.4.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",True,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,14,"{""total_duration"": ""2175 minutes 30 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, py)"", ""duration"": ""0 minutes 46 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2019-04-19 21:38:24,master,,235,5,True,False,False,False,False,False,False,2026-06-08 03:45:09,GNU AGPLv3,2,True,0,372,0,0,1345,108019,0,False,False,False,False,True,False,False,,openedx,2,"['https://docs.openedx.org/projects/: 404', 'https://docs.openedx.org/projects/openedx-calc: 404', 'https://github.com/openedx/openedx-calc/blob/main/LICENSE.txt: 404']",True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://discuss.openedx.org', 'https://github.com/openedx/openedx-calc/issues', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://github.com/openedx/edx-platform', 'https://github.com/openedx/openedx-calc/blob/master/LICENSE', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/openedx-calc', 'https://img.shields.io/pypi/v/openedx-calc.svg', 'https://pypi.python.org/pypi/openedx-calc/', 'https://github.com/openedx/openedx-calc/workflows/Python%20CI/badge.svg?branch=main', 'https://github.com/openedx/openedx-calc/actions', 'https://codecov.io/github/openedx/openedx-calc/coverage.svg?branch=main', 'https://codecov.io/github/openedx/openedx-calc?branch=main', 'https://readthedocs.org/projects/openedx-calc/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/openedx-calc.svg', 'https://img.shields.io/github/license/openedx/openedx-calc.svg', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,False,,,False,,,,False,False,False,True,,False,openedx-calc,"['3', '3.12']",https://github.com/openedx/openedx-calc,True,True,True,False,False,False,False,False,False,[],[],"['gfortran', 'python3-dev', 'liblapack-dev', 'libblas-dev']",[] +openedx/openedx-demo-course,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,27,"{""total_duration"": ""24686 minutes 53 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""source_and_tars_match"", ""duration"": ""0 minutes 6 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2013-09-30 15:54:46,master,A demonstration course that can be imported into an Open edX instance,185403,74,True,False,False,False,False,False,False,2026-05-15 15:55:38,GNU AGPLv3,0,True,226293,0,3278834,246757,1717,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://apps.training.openedx.io/catalog/courses/course-v1', 'https://training.openedx.io', 'http://creativecommons.org/licenses/by-nc-sa/3.0/us/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-ora-grading,,,,False,2026-06-08,False,False,False,False,60,0,,0,{},47,13,"{""@edx/browserslist-config"": ""^1.3.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""axios-mock-adapter"": ""^1.20.0"", ""fetch-mock"": ""^9.11.0"", ""identity-obj-proxy"": ""^3.0.0"", ""jest"": ""29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-expect-message"": ""^1.0.2"", ""react-dev-utils"": ""^12.0.1"", ""react-test-renderer"": ""^18.3.1"", ""redux-mock-store"": ""^1.5.5""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.6.0"", ""@fortawesome/fontawesome-svg-core"": ""^1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""^5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""^5.15.4"", ""@fortawesome/react-fontawesome"": ""^0.2.0"", ""@openedx/paragon"": ""^23.4.5"", ""@redux-beacon/segment"": ""^1.1.0"", ""@redux-devtools/extension"": ""3.0.0"", ""@reduxjs/toolkit"": ""^1.6.1"", ""@testing-library/user-event"": ""^14.0.0"", ""@zip.js/zip.js"": ""^2.4.6"", ""axios"": ""^0.28.0"", ""better-react-mathjax"": ""^2.0.3"", ""classnames"": ""^2.3.1"", ""core-js"": ""3.35.1"", ""dompurify"": ""^2.3.1"", ""email-prop-type"": ""^3.0.1"", ""file-saver"": ""^2.0.5"", ""filesize"": ""^8.0.6"", ""font-awesome"": ""4.7.0"", ""history"": ""5.3.0"", ""html-react-parser"": ""^1.3.0"", ""lodash"": ""^4.17.21"", ""moment"": ""^2.29.3"", ""prop-types"": ""15.8.1"", ""query-string"": ""7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""^6.1.0"", ""react-intl"": ""6.4.7"", ""react-pdf"": ""^7.0.0"", ""react-redux"": ""^7.2.9"", ""react-router"": ""6.21.3"", ""react-router-dom"": ""6.21.3"", ""react-router-redux"": ""^5.0.0-alpha.9"", ""redux"": ""4.2.1"", ""redux-beacon"": ""^2.1.0"", ""redux-logger"": ""3.0.6"", ""redux-thunk"": ""2.4.2"", ""regenerator-runtime"": ""^0.14.0"", ""reselect"": ""^4.0.0"", ""util"": ""^0.12.4"", ""whatwg-fetch"": ""^3.6.2""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,29,"{""total_duration"": ""2 minutes 52 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""2 minutes 52 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2021-09-16 22:57:46,master,"Open Response Assessment - Enhanced Staff Grader - Allows graders to easily review, evaluate and grade ORAs",6224,67,True,False,False,False,False,False,False,2026-05-29 22:27:46,GNU AGPLv3,6,True,0,0,399,500997,2063,0,0,False,False,False,False,True,False,False,@edx/frontend-app-ora-grading,openedx,0,"['https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/ora_staff_grader: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora-grading: 404', 'https://github.com/openedx/frontend-app-ora-grading/blob/master/LICENSE: 504']",False,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/openedx/frontend-plugin-framework', 'https://github.com/nvm-sh/nvm', 'https://openedx.github.io/frontend-platform/', 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-ora-grading/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-ora-grading.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-ora-grading/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-ora-grading?branch=master']",True,True,False,False,,,True,2026-04-02,2025-04-09,5,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-webhooks-data-schema,,,,True,2026-06-08,False,False,False,False,74,0,[],0,,0,0,,,2,"[""pyyaml==6.0.2"", ""schema==0.7.7""]",74,"[""urllib3==2.2.3"", ""pylint-celery==0.3"", ""schema==0.7.7"", ""colorama==0.4.6"", ""pyproject-hooks==1.2.0"", ""sphinx==8.2.3"", ""sphinxcontrib-jsmath==1.0.1"", ""readme-renderer==44.0"", ""code-annotations==2.3.0"", ""platformdirs==4.3.7"", ""edx-lint==5.6.0"", ""pip==24.2"", ""dill==0.4.0"", ""click-log==0.4.0"", ""idna==3.10"", ""diff-cover==9.2.4"", ""text-unidecode==1.3"", ""chardet==5.2.0"", ""stevedore==5.4.1"", ""certifi==2025.4.26"", ""astroid==3.3.9"", ""docutils==0.21.2"", ""requests==2.32.3"", ""soupsieve==2.7"", ""six==1.17.0"", ""babel==2.17.0"", ""nh3==0.2.21"", ""pluggy==1.5.0"", ""pbr==6.1.1"", ""accessible-pygments==0.0.5"", ""virtualenv==20.30.0"", ""charset-normalizer==3.4.1"", ""snowballstemmer==2.2.0"", ""click==8.1.8"", ""pytest-cov==6.1.1"", ""pytest==8.3.5"", ""sphinxcontrib-devhelp==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""filelock==3.18.0"", ""pylint-plugin-utils==0.8.2"", ""sphinxcontrib-htmlhelp==2.1.0"", ""tomlkit==0.13.2"", ""tox==4.25.0"", ""pylint==3.3.6"", ""pip-tools==7.4.1"", ""pygments==2.19.1"", ""mccabe==0.7.0"", ""pyyaml==6.0.2"", ""markupsafe==3.0.2"", ""setuptools==80.1.0"", ""beautifulsoup4==4.13.4"", ""doc8==1.1.2"", ""distlib==0.3.9"", ""imagesize==1.4.1"", ""jinja2==3.1.6"", ""build==1.2.2.post1"", ""wheel==0.45.1"", ""roman-numerals-py==3.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""alabaster==1.0.0"", ""coverage[toml]==7.8.0"", ""pyproject-api==1.9.0"", ""packaging==25.0"", ""cachetools==5.5.2"", ""sphinx-book-theme==1.1.4"", ""typing-extensions==4.13.2"", ""iniconfig==2.1.0"", ""isort==6.0.1"", ""restructuredtext-lint==1.4.0"", ""sphinxcontrib-applehelp==2.0.0"", ""pycodestyle==2.13.0"", ""pydata-sphinx-theme==0.15.4"", ""python-slugify==8.0.4"", ""pylint-django==2.6.1""]",2,"[""code-annotations"", ""pylint-django""]",2,"[""code-annotations"", ""pylint-django""]",1,"[""code-annotations""]",False,,False,True,True,False,False,True,True,True,True,False,True,False,True,True,True,True,False,False,True,True,True,5,"{""total_duration"": """", ""checks"": []}",Other,2020-08-07 11:03:24,main,Schema validators for the data in the (private) openedx/openedx-webhooks-data repo,113,6,True,False,False,False,False,False,False,2025-07-30 09:30:08,Apache License 2.0,1,False,0,0,0,0,2391,11098,0,True,True,False,False,True,False,False,,openedx,5,[],True,"['https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help']",True,True,False,False,,,False,,,,False,False,False,True,,False,repo-tools-data-schema,"['3', '3.11', '3.12']",https://github.com/openedx/repo-tools-data-schema,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/enterprise-integrated-channels,,,,True,2026-06-08,False,False,False,False,172,0,[],0,,0,0,,,70,"[""billiard==4.2.4"", ""celery==5.6.3"", ""click-didyoumean==0.3.1"", ""certifi==2026.4.22"", ""jsonfield==3.2.0"", ""sqlparse==0.5.5"", ""unicodecsv==0.14.1"", ""django==5.2.14"", ""tomlkit==0.15.0"", ""django-simple-history==3.11.0"", ""click-plugins==1.1.1.2"", ""prompt-toolkit==3.0.52"", ""tzdata==2026.2"", ""snowflake-connector-python==4.4.0"", ""pyjwt[crypto]==2.12.1"", ""pynacl==1.6.2"", ""vine==5.1.0"", ""slumber==0.7.1"", ""cryptography==48.0.0"", ""djangorestframework==3.17.1"", ""pymongo==4.17.0"", ""django-crum==0.7.9"", ""asn1crypto==1.5.1"", ""botocore==1.43.6"", ""django-model-utils==5.0.0"", ""typing-extensions==4.15.0"", ""jmespath==1.1.0"", ""dnspython==2.8.0"", ""django-oauth-toolkit==3.2.0"", ""charset-normalizer==3.4.7"", ""kombu==5.6.2"", ""requests==2.33.1"", ""edx-drf-extensions==10.6.0"", ""cffi==2.0.0"", ""edx-rbac==3.0.0"", ""filelock==3.29.0"", ""platformdirs==4.9.6"", ""pyopenssl==26.2.0"", ""wcwidth==0.7.0"", ""asgiref==3.11.1"", ""openedx-atlas==0.7.0"", ""django-waffle==5.0.0"", ""jwcrypto==1.5.7"", ""amqp==5.3.1"", ""semantic-version==2.10.0"", ""edx-tincan-py35==2.0.0"", ""edx-rest-api-client==7.0.0"", ""s3transfer==0.17.0"", ""tzlocal==5.3.1"", ""django-fernet-fields-v2==0.9"", ""pycparser==3.0"", ""click==8.3.3"", ""python-dateutil==2.9.0.post0"", ""stevedore==5.7.0"", ""idna==3.14"", ""django-object-actions==5.0.1"", ""click-repl==0.3.0"", ""oauthlib==3.3.1"", ""psutil==7.2.2"", ""six==1.17.0"", ""sortedcontainers==2.4.0"", ""boto3==1.43.6"", ""urllib3==2.7.0"", ""django-config-models==3.0.0"", ""pytz==2026.2"", ""drf-jwt==1.19.2"", ""packaging==26.2"", ""edx-django-utils==8.0.1"", ""edx-opaque-keys[django]==4.0.0"", ""aniso8601==10.0.1""]",172,"[""importlib-metadata==9.0.0"", ""pydata-sphinx-theme==0.16.1"", ""celery==5.6.3"", ""sqlparse==0.5.5"", ""pluggy==1.6.0"", ""tomlkit==0.15.0"", ""jeepney==0.9.0"", ""tzdata==2026.2"", ""snowflake-connector-python==4.4.0"", ""pip-tools==7.5.3"", ""pylint==4.0.5"", ""vine==5.1.0"", ""markdown-it-py==4.2.0"", ""django-crum==0.7.9"", ""babel==2.18.0"", ""pycodestyle==2.14.0"", ""requests-toolbelt==1.0.0"", ""django-model-utils==5.0.0"", ""wheel==0.47.0"", ""dnspython==2.8.0"", ""snowballstemmer==3.0.1"", ""beautifulsoup4==4.14.3"", ""restructuredtext-lint==2.0.2"", ""charset-normalizer==3.4.7"", ""python-slugify==8.0.4"", ""tox==4.53.1"", ""pylint-celery==0.3"", ""responses==0.26.0"", ""edx-drf-extensions==10.6.0"", ""cffi==2.0.0"", ""platformdirs==4.9.6"", ""roman-numerals==4.1.0"", ""polib==1.2.0"", ""social-auth-core==4.9.1"", ""fastavro==1.12.2"", ""jaraco-functools==4.4.0"", ""django-fernet-fields-v2==0.9"", ""id==1.6.1"", ""pip==26.1.1"", ""pyproject-api==1.10.0"", ""ddt==1.3.1"", ""colorama==0.4.6"", ""pytest-cov==7.1.0"", ""django-object-actions==5.0.1"", ""build==1.5.0"", ""pytz==2026.2"", ""text-unidecode==1.3"", ""python-dateutil==2.9.0.post0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""isort==8.0.1"", ""jsonfield==3.2.0"", ""twine==6.2.0"", ""django==5.2.14"", ""factory-boy==3.3.3"", ""click-plugins==1.1.1.2"", ""docutils==0.21.2"", ""pygments==2.20.0"", ""code-annotations==2.3.2"", ""testfixtures==11.0.0"", ""djangorestframework==3.17.1"", ""asn1crypto==1.5.1"", ""typing-extensions==4.15.0"", ""jmespath==1.1.0"", ""django-oauth-toolkit==3.2.0"", ""rfc3986==2.0.0"", ""coverage[toml]==7.14.0"", ""kombu==5.6.2"", ""dill==0.4.1"", ""freezegun==1.5.5"", ""python3-openid==3.2.0"", ""sphinxcontrib-applehelp==2.0.0"", ""asgiref==3.11.1"", ""iniconfig==2.3.0"", ""openedx-atlas==0.7.0"", ""amqp==5.3.1"", ""tomli-w==1.2.0"", ""click-log==0.4.0"", ""pytest==9.0.3"", ""rich==15.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""click-repl==0.3.0"", ""boto3==1.43.6"", ""django-config-models==3.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""aniso8601==10.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""billiard==4.2.4"", ""backports-tarfile==1.2.0"", ""unicodecsv==0.14.1"", ""django-simple-history==3.11.0"", ""alabaster==1.0.0"", ""pyjwt[crypto]==2.12.1"", ""pynacl==1.6.2"", ""cachetools==7.1.1"", ""edx-i18n-tools==2.0.0"", ""slumber==0.7.1"", ""cryptography==48.0.0"", ""imagesize==2.0.0"", ""pylint-plugin-utils==0.9.0"", ""pymongo==4.17.0"", ""pydocstyle==6.3.0"", ""chardet==7.4.3"", ""botocore==1.43.6"", ""django-countries==8.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""requests==2.33.1"", ""pyopenssl==26.2.0"", ""edx-rbac==3.0.0"", ""jaraco-context==6.1.2"", ""python-discovery==1.3.0"", ""jwcrypto==1.5.7"", ""semantic-version==2.10.0"", ""edx-rest-api-client==7.0.0"", ""s3transfer==0.17.0"", ""attrs==26.1.0"", ""openedx-events==10.5.0"", ""edx-ccx-keys==2.0.2"", ""jinja2==3.1.6"", ""diff-cover==10.2.0"", ""sphinx==9.0.4"", ""secretstorage==3.5.0"", ""mccabe==0.7.0"", ""urllib3==2.7.0"", ""psutil==7.2.2"", ""six==1.17.0"", ""markupsafe==3.0.3"", ""sphinx-book-theme==1.2.0"", ""keyring==25.7.0"", ""zipp==3.23.1"", ""edx-django-utils==8.0.1"", ""readme-renderer==44.0"", ""edx-tincan-py35==2.0.0"", ""lxml[html-clean]==6.1.0"", ""edx-opaque-keys[django]==4.0.0"", ""tzlocal==5.3.1"", ""click-didyoumean==0.3.1"", ""certifi==2026.4.22"", ""prompt-toolkit==3.0.52"", ""defusedxml==0.7.1"", ""faker==40.15.0"", ""soupsieve==2.8.3"", ""distlib==0.4.0"", ""accessible-pygments==0.0.5"", ""nh3==0.3.5"", ""pytest-django==4.12.0"", ""pyyaml==6.0.3"", ""doc8==2.0.0"", ""wcwidth==0.7.0"", ""filelock==3.29.0"", ""path==16.16.0"", ""edx-lint==6.1.0"", ""django-waffle==5.0.0"", ""lxml-html-clean==0.4.4"", ""jaraco-classes==3.4.0"", ""social-auth-app-django==5.4.3"", ""pycparser==3.0"", ""setuptools==82.0.1"", ""pylint-django==2.7.0"", ""virtualenv==21.3.1"", ""click==8.3.3"", ""stevedore==5.7.0"", ""mdurl==0.1.2"", ""idna==3.14"", ""mock==5.2.0"", ""oauthlib==3.3.1"", ""sortedcontainers==2.4.0"", ""requests-oauthlib==2.0.0"", ""drf-jwt==1.19.2"", ""packaging==26.2"", ""pyproject-hooks==1.2.0"", ""astroid==4.0.4"", ""more-itertools==11.0.2""]",16,"[""django-config-models"", ""django-countries"", ""django-oauth-toolkit"", ""django-object-actions"", ""factory-boy"", ""edx-rbac"", ""edx-i18n-tools"", ""social-auth-app-django"", ""edx-django-utils"", ""django-waffle"", ""pytest-django"", ""edx-drf-extensions"", ""code-annotations"", ""edx-rest-api-client"", ""pylint-django"", ""djangorestframework""]",21,"[""django-countries"", ""pytest-django"", ""pylint-django"", ""django-oauth-toolkit"", ""django-model-utils"", ""edx-django-utils"", ""django-waffle"", ""code-annotations"", ""edx-rest-api-client"", ""django-object-actions"", ""django-crum"", ""drf-jwt"", ""edx-rbac"", ""edx-i18n-tools"", ""edx-drf-extensions"", ""djangorestframework"", ""django-simple-history"", ""django-config-models"", ""jsonfield"", ""factory-boy"", ""social-auth-app-django""]",11,"[""django-config-models"", ""django-countries"", ""django-oauth-toolkit"", ""edx-rbac"", ""edx-i18n-tools"", ""social-auth-app-django"", ""edx-django-utils"", ""django-waffle"", ""edx-drf-extensions"", ""code-annotations"", ""edx-rest-api-client""]",True,,True,True,True,True,False,True,True,True,True,False,False,False,True,True,True,True,True,False,True,True,True,7,"{""total_duration"": ""7906 minutes 40 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.11, django52)"", ""duration"": ""4 minutes 15 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""3 minutes 47 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 49 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, quality)"", ""duration"": ""1 minutes 42 seconds""}, {""name"": ""tests (ubuntu-latest, 3.11, pii_check)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 18 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}]}",Other,2024-10-29 13:52:13,main,,1059,16,True,False,False,False,False,False,False,2026-06-08 00:57:30,GNU AGPLv3,7,True,0,0,39984,0,5134,2262307,0,True,True,False,False,True,False,False,,openedx,1,"['https://github.com/openedx/enterprise-integrated-channels/issues: 504', 'https://github.com/openedx/enterprise-integrated-channels/workflows/Python%20CI/badge.svg?branch=main: 504', 'https://github.com/openedx/enterprise-integrated-channels/actions: 504', 'https://docs.openedx.org/projects/enterprise-integrated-channels: 404']",True,"['https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html', 'https://github.com/openedx/enterprise-integrated-channels/blob/main/channel_integrations/README.md', 'https://discuss.openedx.org', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/enterprise-integrated-channels', 'https://img.shields.io/pypi/v/enterprise-integrated-channels.svg', 'https://pypi.python.org/pypi/enterprise-integrated-channels/', 'https://codecov.io/github/openedx/enterprise-integrated-channels/coverage.svg?branch=main', 'https://codecov.io/github/openedx/enterprise-integrated-channels?branch=main', 'https://readthedocs.org/projects/enterprise-integrated-channels/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/enterprise-integrated-channels.svg', 'https://img.shields.io/github/license/openedx/enterprise-integrated-channels.svg', 'https://github.com/openedx/enterprise-integrated-channels/blob/main/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,enterprise-integrated-channels,"['3', '3.11']",https://github.com/openedx/enterprise-integrated-channels,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/edx-organizations,,,,True,2026-06-08,True,True,False,False,37,0,[],0,,0,0,,,31,"[""cryptography==48.0.0"", ""idna==3.17"", ""typing-extensions==4.15.0"", ""dnspython==2.8.0"", ""asgiref==3.11.1"", ""django==5.2.14"", ""djangorestframework==3.17.1"", ""semantic-version==2.10.0"", ""pillow==12.2.0"", ""pycparser==3.0"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""click==8.4.1"", ""certifi==2026.5.20"", ""edx-opaque-keys==4.0.0"", ""charset-normalizer==3.4.7"", ""requests==2.34.2"", ""urllib3==2.7.0"", ""drf-jwt==1.19.2"", ""sqlparse==0.5.5"", ""django-simple-history==3.11.0"", ""pymongo==4.17.0"", ""stevedore==5.8.0"", ""edx-django-utils==8.0.1"", ""django-model-utils==5.0.0"", ""psutil==7.2.2"", ""pynacl==1.6.2"", ""setuptools==82.0.1"", ""edx-drf-extensions==10.6.0"", ""pyjwt[crypto]==2.13.0"", ""cffi==2.0.0""]",37,"[""cryptography==48.0.0"", ""idna==3.17"", ""typing-extensions==4.15.0"", ""wheel==0.47.0"", ""dnspython==2.8.0"", ""asgiref==3.11.1"", ""django==5.2.14"", ""djangorestframework==3.17.1"", ""packaging==26.2"", ""semantic-version==2.10.0"", ""pillow==12.2.0"", ""pycparser==3.0"", ""django-waffle==5.0.0"", ""django-crum==0.7.9"", ""click==8.4.1"", ""certifi==2026.5.20"", ""edx-opaque-keys==4.0.0"", ""pip==26.1.2"", ""charset-normalizer==3.4.7"", ""requests==2.34.2"", ""urllib3==2.7.0"", ""drf-jwt==1.19.2"", ""sqlparse==0.5.5"", ""pip-tools==7.5.3"", ""django-simple-history==3.11.0"", ""pymongo==4.17.0"", ""build==1.5.0"", ""pyproject-hooks==1.2.0"", ""stevedore==5.8.0"", ""edx-django-utils==8.0.1"", ""django-model-utils==5.0.0"", ""psutil==7.2.2"", ""pynacl==1.6.2"", ""setuptools==82.0.1"", ""edx-drf-extensions==10.6.0"", ""pyjwt[crypto]==2.13.0"", ""cffi==2.0.0""]",5,"[""edx-drf-extensions"", ""edx-opaque-keys"", ""djangorestframework"", ""edx-django-utils"", ""django-waffle""]",9,"[""drf-jwt"", ""edx-drf-extensions"", ""django-simple-history"", ""edx-opaque-keys"", ""djangorestframework"", ""django-model-utils"", ""django-crum"", ""edx-django-utils"", ""django-waffle""]",4,"[""edx-opaque-keys"", ""edx-django-utils"", ""edx-drf-extensions"", ""django-waffle""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,8,"{""total_duration"": ""9501 minutes 17 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 9 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 6 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 1 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 54 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2015-07-14 19:39:03,master,,503,36,True,False,False,False,False,False,False,2026-06-08 05:14:33,GNU AGPLv3,3,True,0,0,0,0,1206,133892,0,False,True,False,False,True,False,False,,openedx,4,[],False,"['https://github.com/openedx/edx-organizations/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-organizations/actions?query=workflow%3A%22Python+CI%22', 'https://coveralls.io/repos/github/edx/edx-organizations/badge.svg?branch=master', 'https://coveralls.io/github/edx/edx-organizations?branch=master', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,edx-organizations,"['3', '3.12']",https://github.com/openedx/edx-organizations,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/tutor-contrib-aspects-sample,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,False,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1 minutes 8 seconds"", ""checks"": [{""name"": ""tests (3.12)"", ""duration"": ""1 minutes 7 seconds""}, {""name"": ""tests (3.9)"", ""duration"": ""0 minutes 40 seconds""}]}",Other,2026-01-28 18:40:12,main,,32,1,True,False,False,False,False,False,False,2026-05-15 14:25:45,GNU AGPLv3,1,False,0,0,0,0,1084,7373,0,False,False,False,False,True,False,False,,openedx,0,['https://github.com/saraburns1/tutor-contrib-aspects-sample: 504'],False,"['https://docs.tutor.edly.io', 'https://superset.apache.org/docs', 'https://www.getdbt.com/docs/', 'https://clickhouse.com/docs', 'https://docs.tutor.overhang.io', 'https://event-routing-backends.readthedocs.io/en/latest/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/credentials-themes,,,,True,2026-06-08,True,True,False,False,33,0,[],0,{},0,16,"{""@edx/brand"": ""npm:@edx/elm-theme@^1.11.1"", ""@openedx/paragon"": ""^23.14.2"", ""bi-app-sass"": ""1.1.0"", ""css-loader"": ""7.1.4"", ""file-loader"": ""6.2.0"", ""font-awesome"": ""4.7.0"", ""imports-loader"": ""5.0.0"", ""jquery"": ""3.7.1"", ""mini-css-extract-plugin"": ""2.10.2"", ""popper.js"": ""1.16.1"", ""sass"": ""1.99.0"", ""sass-loader"": ""16.0.7"", ""style-loader"": ""4.0.0"", ""url-loader"": ""4.1.1"", ""webpack"": ""5.106.0"", ""webpack-cli"": ""6.0.1""}",{},9,"[""lxml-html-clean==0.4.3"", ""lxml[html-clean]==6.0.2"", ""path==16.16.0"", ""edx-i18n-tools==1.9.0"", ""sqlparse==0.5.3"", ""asgiref==3.10.0"", ""django==4.2.25"", ""polib==1.2.0"", ""pyyaml==6.0.3""]",17,"[""build==1.3.0"", ""setuptools==80.9.0"", ""lxml-html-clean==0.4.3"", ""lxml[html-clean]==6.0.2"", ""pip==25.2"", ""pyproject-hooks==1.2.0"", ""path==16.16.0"", ""click==8.3.0"", ""edx-i18n-tools==1.9.0"", ""packaging==25.0"", ""pip-tools==7.5.1"", ""sqlparse==0.5.3"", ""wheel==0.45.1"", ""asgiref==3.10.0"", ""django==4.2.25"", ""polib==1.2.0"", ""pyyaml==6.0.3""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",1,"[""edx-i18n-tools""]",False,,False,False,True,False,False,False,True,True,True,True,True,True,False,True,False,True,False,True,False,True,True,8,"{""total_duration"": ""4366 minutes 53 seconds"", ""checks"": [{""name"": ""tests (3.12, 4.2)"", ""duration"": ""0 minutes 49 seconds""}, {""name"": ""tests (3.12, 5.2)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""Autotag commit"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2017-04-12 17:59:59,master,Themes for the edX Credentials Service,4601,9,True,False,False,False,False,False,False,2026-06-02 19:29:52,GNU AGPLv3,7,True,3514374,0,13462,2477,2742,6319,0,False,False,False,False,True,False,False,,openedx,0,[],False,['https://docs.Djangoproject.com/en/1.11/topics/i18n/translation/'],True,True,False,False,,,True,2026-04-10,2025-11-21,4,False,False,False,False,,False,edx_credentials_themes,['3.12'],https://github.com/openedx/credentials-themes,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-learner-portal-enterprise,,,,False,2026-06-08,True,True,False,False,73,0,,0,{},47,26,"{""@edx/browserslist-config"": ""^1.5.0"", ""@edx/typescript-config"": ""^1.1.0"", ""@faker-js/faker"": ""^8.4.1"", ""@openedx/frontend-build"": ""^14.6.0"", ""@tanstack/eslint-plugin-query"": ""^4.38.0"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^5.17.0"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/react"": ""^18.3.20"", ""acorn"": ""^8.14.0"", ""axios"": ""^1.12.0"", ""axios-mock-adapter"": ""^1.22.0"", ""jest-canvas-mock"": ""^2.5.2"", ""jest-environment-jsdom"": ""^29.7.0"", ""jest-fetch-mock"": ""^3.0.3"", ""jest-when"": ""^3.7.0"", ""js-yaml"": ""^4.1.0"", ""match-media-mock"": ""^0.1.1"", ""mockdate"": ""^3.0.5"", ""openapi-typescript"": ""^6.7.6"", ""prettier"": ""^2.8.8"", ""react-test-renderer"": ""^18.3.1"", ""resize-observer-polyfill"": ""^1.5.1"", ""rosie"": ""^2.1.1"", ""ts-loader"": ""^9.5.2""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-enterprise-catalog-search"": ""^11.0.2"", ""@edx/frontend-enterprise-hotjar"": ""^7.2.0"", ""@edx/frontend-enterprise-logistration"": ""^9.2.1"", ""@edx/frontend-enterprise-utils"": ""^10.0.0"", ""@edx/frontend-platform"": ""^8.5.1"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@loadable/component"": ""^5.16.4"", ""@lukemorales/query-key-factory"": ""^1.3.4"", ""@openedx/frontend-slot-footer"": ""^1.2.1"", ""@openedx/paragon"": ""^22.17.0"", ""@tanstack/react-query"": ""^5.74.9"", ""@tanstack/react-query-devtools"": ""^5.74.9"", ""accessible-nprogress"": ""^2.1.2"", ""algoliasearch"": ""^4.24.0"", ""classnames"": ""^2.5.1"", ""color"": ""^3.2.1"", ""dayjs"": ""^1.11.13"", ""dompurify"": ""^2.5.4"", ""formik"": ""^2.4.6"", ""history"": ""^4.10.1"", ""iso-639-1"": ""^2.1.15"", ""jest-localstorage-mock"": ""^2.4.26"", ""lodash-es"": ""^4.17.21"", ""plotly.js-dist"": ""^2.35.3"", ""prop-types"": ""^15.8.1"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-error-boundary"": ""^4.1.2"", ""react-helmet"": ""^6.1.0"", ""react-instantsearch-dom"": ""^6.40.4"", ""react-parallax"": ""^3.5.2"", ""react-redux"": ""^7.2.9"", ""react-router"": ""^6.29.0"", ""react-router-dom"": ""^6.29.0"", ""react-router-hash-link"": ""^2.4.3"", ""react-scroll"": ""^1.9.3"", ""react-string-replace"": ""^1.1.1"", ""react-transition-group"": ""^4.4.5"", ""redux"": ""^4.2.1"", ""type-fest"": ""^3.13.1"", ""universal-cookie"": ""^4.0.4"", ""uuid"": ""^9.0.1"", ""video.js"": ""^8.22.0"", ""videojs-vjstranscribe"": ""^1.0.3"", ""videojs-youtube"": ""^3.0.1""}",0,,0,,0,[],0,[],0,[],False,,False,True,True,False,False,False,True,True,True,True,True,True,False,False,False,False,False,False,False,False,True,140,"{""total_duration"": ""310 minutes 51 seconds"", ""checks"": [{""name"": ""generate"", ""duration"": ""1 minutes 10 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2019-09-23 14:57:34,master,Enterprise Learner Portal,22296,29,True,False,False,False,False,False,False,2026-06-08 05:46:34,GNU AGPLv3,44,True,0,0,1436,2510906,1848,0,0,False,False,False,False,True,False,False,,openedx,0,"['https://github.com/openedx/frontend-app-learner-portal-enterprise/actions/workflows/ci.yml/badge.svg: 504', 'https://github.com/openedx/frontend-app-learner-portal-enterpise.git: 404', 'http://localhostL8734/: HTTPConnectionPool(host=\'localhostl8734\', port=80): Max retries exceeded with url: / (Caused by NameResolutionError(""HTTPConnection(host=\'localhostl8734\', port=80): Failed to resolve \'localhostl8734\' ([Errno -3] Temporary failure in name resolution)""))', 'https://github.com/openedx/edx-enterprise/blob/master/enterprise/management/commands/seed_enterprise_devstack_data.py: 504', 'https://github.com/openedx/edx-platform/blob/0e2b612c1fb4f3e385f3004801aa5b5ed0221eda/lms/envs/devstack.py: 504', 'https://github.com/openedx/devstack: 504']",False,"['https://openedx.atlassian.net/wiki/spaces/ENG/pages/12550298/Developer+Onboarding', 'https://go.microsoft.com/fwlink/?linkid=830387', 'https://openedx.atlassian.net/wiki/spaces/SOL/pages/997654609/Hitchhiker+s+Engineer+s+Guide+to+the+Enterprise+Ecosystem', 'https://reactjs.org/', 'https://openedx.org/r/how-to-contribute', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-learner-portal-enterprise/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-02,2025-02-24,1,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/django-pyfs,,,,True,2026-06-08,True,True,False,False,92,0,[],0,,0,0,,,32,"[""wheel==0.46.3"", ""asgiref==3.11.1"", ""python-dateutil==2.9.0.post0"", ""packaging==26.0"", ""cachetools==7.0.5"", ""fs==2.4.16"", ""jmespath==1.1.0"", ""distlib==0.4.0"", ""click==8.3.1"", ""botocore==1.42.68"", ""urllib3==2.6.3"", ""build==1.4.0"", ""platformdirs==4.9.4"", ""fs-s3fs==1.1.1"", ""tox==4.49.1"", ""colorama==0.4.6"", ""pip==26.0.1"", ""s3transfer==0.16.0"", ""filelock==3.25.2"", ""pluggy==1.6.0"", ""sqlparse==0.5.5"", ""tomli-w==1.2.0"", ""python-discovery==1.1.3"", ""six==1.17.0"", ""pyproject-hooks==1.2.0"", ""appdirs==1.4.4"", ""setuptools==81.0.0"", ""pip-tools==7.5.3"", ""pyproject-api==1.10.0"", ""virtualenv==21.2.0"", ""django==5.2.12"", ""boto3==1.42.68""]",92,"[""asgiref==3.11.1"", ""cryptography==46.0.5"", ""pylint-plugin-utils==0.9.0"", ""snowballstemmer==3.0.1"", ""rfc3986==2.0.0"", ""urllib3==2.6.3"", ""pycodestyle==2.14.0"", ""platformdirs==4.9.4"", ""mock==5.2.0"", ""colorama==0.4.6"", ""pydocstyle==6.3.0"", ""requests==2.32.5"", ""zipp==3.23.0"", ""jinja2==3.1.6"", ""python-slugify==8.0.4"", ""iniconfig==2.3.0"", ""moto==4.2.14"", ""python-discovery==1.1.3"", ""jaraco-functools==4.4.0"", ""jeepney==0.9.0"", ""appdirs==1.4.4"", ""setuptools==81.0.0"", ""pip-tools==7.5.3"", ""responses==0.26.0"", ""wheel==0.46.3"", ""more-itertools==10.8.0"", ""docutils==0.22.4"", ""python-dateutil==2.9.0.post0"", ""cachetools==7.0.5"", ""jmespath==1.1.0"", ""click==8.3.1"", ""nh3==0.3.3"", ""stevedore==5.7.0"", ""id==1.6.1"", ""pylint-django==2.7.0"", ""pylint==4.0.5"", ""pygments==2.19.2"", ""werkzeug==3.1.6"", ""charset-normalizer==3.4.6"", ""jaraco-classes==3.4.0"", ""jaraco-context==6.1.1"", ""pycparser==3.0"", ""click-log==0.4.0"", ""virtualenv==21.2.0"", ""django==5.2.12"", ""boto3==1.42.68"", ""coverage[toml]==7.13.4"", ""tomlkit==0.14.0"", ""importlib-metadata==8.7.1"", ""distlib==0.4.0"", ""markdown-it-py==4.0.0"", ""botocore==1.42.68"", ""certifi==2026.2.25"", ""mdurl==0.1.2"", ""tox==4.49.1"", ""pytest-cov==7.0.0"", ""edx-lint==6.0.0"", ""isort==8.0.1"", ""xmltodict==1.0.4"", ""filelock==3.25.2"", ""pypng==0.20220715.0"", ""keyring==25.7.0"", ""pyyaml==6.0.3"", ""sqlparse==0.5.5"", ""tomli-w==1.2.0"", ""astroid==4.0.4"", ""pylint-celery==0.3"", ""six==1.17.0"", ""mccabe==0.7.0"", ""dill==0.4.1"", ""twine==6.2.0"", ""pyproject-api==1.10.0"", ""backports-tarfile==1.2.0"", ""markupsafe==3.0.3"", ""text-unidecode==1.3"", ""pytest==9.0.2"", ""packaging==26.0"", ""cffi==2.0.0"", ""fs==2.4.16"", ""readme-renderer==44.0"", ""secretstorage==3.5.0"", ""requests-toolbelt==1.0.0"", ""build==1.4.0"", ""fs-s3fs==1.1.1"", ""pip==26.0.1"", ""s3transfer==0.16.0"", ""pluggy==1.6.0"", ""pyproject-hooks==1.2.0"", ""rich==14.3.3"", ""idna==3.11"", ""code-annotations==2.3.2"", ""pytest-django==4.12.0""]",3,"[""pytest-django"", ""pylint-django"", ""code-annotations""]",3,"[""pytest-django"", ""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,15,"{""total_duration"": ""2383 minutes 34 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2015-09-21 15:53:54,master,A Django module which extends pyfilesystem with several methods to make it convenient for web use. ,279,13,True,False,False,False,False,False,False,2026-06-08 02:22:42,Apache License 2.0,5,True,0,0,0,0,2697,38658,0,True,True,False,False,True,False,False,,openedx,5,['https://github.com/openedx/django-pyfs/blob/master/LICENSE.txt: 404'],False,"['https://img.shields.io/pypi/v/openedx-django-pyfs.svg', 'https://pypi.python.org/pypi/openedx-django-pyfs/', 'https://github.com/openedx/django-pyfs/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/django-pyfs/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/openedx/django-pyfs/coverage.svg?branch=master', 'http://codecov.io/github/openedx/django-pyfs?branch=master', 'https://img.shields.io/pypi/pyversions/openedx-django-pyfs.svg', 'https://pypi.python.org/pypi/openedx-django-pyfs', 'https://img.shields.io/github/license/openedx/django-pyfs.svg']",True,True,False,False,,,False,,,,False,True,False,True,,False,openedx-django-pyfs,"['3', '3.12']",https://github.com/openedx/django-pyfs,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/pr_watcher_notifier,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,False,False,False,True,False,False,False,True,True,True,7,"{""total_duration"": ""0 minutes 27 seconds"", ""checks"": [{""name"": ""Run Tests (3.12)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""Run Tests (3.11)"", ""duration"": ""0 minutes 25 seconds""}]}",Other,2020-04-06 17:49:34,master,A flask web application to handle pull request webhook events and send notification when watched files are changed,78,3,True,False,False,False,True,False,False,2026-05-30 15:32:44,GNU AGPLv3,0,True,0,0,0,0,618,27452,453,False,False,False,False,True,False,False,,openedx,0,['https://pythonhosted.org/Flask-Mail/: 404'],False,"['https://developer.github.com/webhooks/creating/', 'https://github.com/settings/tokens', 'https://github.com/lgp171188/custom_templates']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/sample-aspects-dbt,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,False,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": """", ""checks"": []}",Other,2026-01-28 16:24:46,main,Example of how to create a custom dbt package to work with Aspects,15,1,True,False,False,False,False,False,False,2026-05-13 12:09:41,,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://docs.getdbt.com/reference/resource-properties/unit-tests', 'https://discuss.openedx.org', 'https://docs.getdbt.com/docs/introduction', 'https://discourse.getdbt.com/', 'https://community.getdbt.com/', 'https://events.getdbt.com', 'https://blog.getdbt.com/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-proposals,,,,True,2026-06-08,True,True,False,False,45,0,[],0,,0,0,,,30,"[""snowballstemmer==3.1.0"", ""certifi==2026.5.20"", ""jinja2==3.1.6"", ""sphinxcontrib-devhelp==2.0.0"", ""urllib3==2.7.0"", ""docutils==0.22.4"", ""sphinx-copybutton==0.5.2"", ""imagesize==2.0.0"", ""accessible-pygments==0.0.5"", ""sphinxcontrib-serializinghtml==2.0.0"", ""beautifulsoup4==4.14.3"", ""roman-numerals==4.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""typing-extensions==4.15.0"", ""pydata-sphinx-theme==0.16.1"", ""markupsafe==3.0.3"", ""packaging==26.2"", ""pygments==2.20.0"", ""soupsieve==2.8.4"", ""sphinxext-rediraffe==0.3.0"", ""alabaster==1.0.0"", ""sphinx==9.1.0"", ""charset-normalizer==3.4.7"", ""babel==2.18.0"", ""requests==2.34.2"", ""idna==3.17"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinx-book-theme==1.2.0""]",45,"[""snowballstemmer==3.1.0"", ""anyio==4.13.0"", ""certifi==2026.5.20"", ""jinja2==3.1.6"", ""sphinxcontrib-devhelp==2.0.0"", ""urllib3==2.7.0"", ""docutils==0.22.4"", ""sphinx-copybutton==0.5.2"", ""watchfiles==1.2.0"", ""imagesize==2.0.0"", ""accessible-pygments==0.0.5"", ""sphinxcontrib-serializinghtml==2.0.0"", ""sphinx-autobuild==2025.8.25"", ""beautifulsoup4==4.14.3"", ""roman-numerals==4.1.0"", ""sphinxcontrib-applehelp==2.0.0"", ""typing-extensions==4.15.0"", ""starlette==1.2.1"", ""uvicorn==0.48.0"", ""click==8.4.1"", ""pydata-sphinx-theme==0.16.1"", ""markupsafe==3.0.3"", ""packaging==26.2"", ""pygments==2.20.0"", ""soupsieve==2.8.4"", ""sphinxext-rediraffe==0.3.0"", ""build==1.5.0"", ""alabaster==1.0.0"", ""colorama==0.4.6"", ""websockets==16.0"", ""setuptools==82.0.1"", ""charset-normalizer==3.4.7"", ""sphinx==9.1.0"", ""pip-tools==7.5.3"", ""babel==2.18.0"", ""pip==26.1.2"", ""requests==2.34.2"", ""wheel==0.47.0"", ""idna==3.17"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinxcontrib-jsmath==1.0.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pyproject-hooks==1.2.0"", ""sphinx-book-theme==1.2.0"", ""h11==0.16.0""]",0,[],0,[],0,[],True,,False,False,True,False,False,False,True,True,True,True,True,False,False,True,False,False,False,False,True,True,True,30,"{""total_duration"": ""0 minutes 15 seconds"", ""checks"": [{""name"": ""check_for_moved_files (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 15 seconds""}]}",Other,2016-03-31 15:36:33,master,"Proposals for Open edX architecture, best practices and processes ",10413,44,True,False,False,False,False,False,False,2026-06-03 16:32:01,Other,1,True,0,0,0,0,9128,12442,0,False,False,False,False,False,False,False,,openedx,2,"['https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403', 'https://github.com/openedx/openedx-proposals/blob/main/LICENSE.txt: 404']",False,"['https://docs.openedx.org/projects/openedx-proposals/', 'https://openedx.slack.com/archives/C1L370YTZ', 'https://discuss.openedx.org/c/announcements/17', 'https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html', 'https://docs.openedx.org/en/latest/developers/quickstarts/first_openedx_pr.html', 'http://graphviz.org/', 'https://discuss.openedx.org/', 'https://backstage.openedx.org/catalog/default/component/openedx-proposals', 'https://img.shields.io/badge/License-CC_BY--SA_4.0-lightgrey.svg', 'https://readthedocs.org/projects/openedx-proposals/badge/?version=latest', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/github/contributors/openedx/openedx-proposals.svg']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-platform,,,,False,2026-06-08,False,False,False,False,39,0,,0,{},19,20,"{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.2"", ""@edx/browserslist-config"": ""1.5.0"", ""@openedx/frontend-build"": ""^14.3.0"", ""@openedx/paragon"": ""^23.3.0"", ""@testing-library/dom"": ""10.4.0"", ""@testing-library/jest-dom"": ""6.6.3"", ""@testing-library/react"": ""16.2.0"", ""@testing-library/user-event"": ""14.6.1"", ""@types/node"": ""^25.6.0"", ""axios-mock-adapter"": ""^1.22.0"", ""jest-environment-jsdom"": ""29.7.0"", ""jest-localstorage-mock"": ""^2.4.26"", ""jsdoc"": ""^4.0.0"", ""nodemon"": ""3.1.11"", ""prop-types"": ""15.8.1"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-redux"": ""^8.1.1"", ""react-router-dom"": ""^6.6.1"", ""redux"": ""4.2.1""}","{""@cospired/i18n-iso-languages"": ""4.2.0"", ""@formatjs/intl-pluralrules"": ""4.3.3"", ""@formatjs/intl-relativetimeformat"": ""10.0.1"", ""axios"": ""1.15.0"", ""axios-cache-interceptor"": ""1.11.4"", ""form-urlencoded"": ""4.1.4"", ""glob"": ""7.2.3"", ""history"": ""4.10.1"", ""i18n-iso-countries"": ""4.3.1"", ""jwt-decode"": ""3.1.2"", ""localforage"": ""1.10.0"", ""localforage-memoryStorageDriver"": ""0.9.2"", ""lodash.camelcase"": ""4.3.0"", ""lodash.memoize"": ""4.1.2"", ""lodash.merge"": ""4.6.2"", ""lodash.snakecase"": ""4.1.1"", ""pubsub-js"": ""1.9.5"", ""react-intl"": ""6.8.9"", ""universal-cookie"": ""4.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,True,True,False,False,False,False,False,False,True,True,True,52,"{""total_duration"": ""26616 minutes 40 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""1 minutes 53 seconds""}, {""name"": ""Release"", ""duration"": ""1 minutes 25 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}]}",Other,2019-11-06 21:04:09,master,A framework for Open edX micro-frontend applications.,37464,89,True,False,False,False,False,False,False,2026-06-08 00:46:43,GNU AGPLv3,24,True,0,0,237,340243,1837,0,0,False,False,False,False,False,False,False,@edx/frontend-platform,openedx,0,"['https://www.npmjs.com/package/@edx/frontend-platform: 403', 'http://local.openedx.io: HTTPConnectionPool(host=\'local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://en.wikipedia.org/wiki/Convention_over_configuration: 403', 'https://edx.github.io/frontend-platform/module-Initialization.html: 404', 'https://edx.github.io/frontend-platform/module-Config.html: 404', 'https://custom.example.com/educators/index.html: HTTPSConnectionPool(host=\'custom.example.com\', port=443): Max retries exceeded with url: /educators/index.html (Caused by NameResolutionError(""HTTPSConnection(host=\'custom.example.com\', port=443): Failed to resolve \'custom.example.com\' ([Errno -5] No address associated with hostname)""))']",False,"['https://github.com/openedx/frontend-platform/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-platform/actions/workflows/ci.yml', 'https://img.shields.io/codecov/c/github/edx/frontend-platform', 'https://codecov.io/gh/edx/frontend-platform', 'https://img.shields.io/npm/v/@edx/frontend-platform.svg', 'https://img.shields.io/npm/dt/@edx/frontend-platform.svg', 'https://img.shields.io/npm/l/@edx/frontend-platform.svg', 'https://github.com/openedx/frontend-platform/blob/master/LICENSE', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg', 'https://github.com/semantic-release/semantic-release', 'https://openedx.github.io/frontend-platform/', 'https://docs.openedx.org/en/latest/educators/index.html', 'https://creativecommons.org/licenses', 'https://www.tldrlegal.com/license/creative-commons-attribution-cc', 'https://github.com/openedx/frontend-build']",True,True,False,False,,,True,2026-04-10,2023-05-29,13,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/stylelint-config-edx,,,,False,2026-06-08,False,False,False,False,12,0,,0,{},4,8,"{""@edx/eslint-config"": ""^3.0.0"", ""eslint"": ""^8.14.0"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-import-resolver-webpack"": ""^0.13.9"", ""eslint-plugin-import"": ""^2.26.0"", ""eslint-plugin-jsx-a11y"": ""^6.5.1"", ""eslint-plugin-react"": ""^7.29.4"", ""eslint-plugin-react-hooks"": ""^4.5.0""}","{""stylelint"": ""^15.6.0"", ""stylelint-config-recommended-scss"": ""^11.0.0"", ""stylelint-config-standard"": ""^33.0.0"", ""stylelint-scss"": ""^4.1.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,False,True,5,"{""total_duration"": ""0 minutes 28 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2017-09-07 20:28:44,master,Stylelint configs for edX Sass files,341,7,True,False,False,False,False,False,False,2026-05-20 13:18:41,Apache License 2.0,3,True,0,0,0,359,0,0,0,False,False,False,False,False,False,False,@edx/stylelint-config-edx,openedx,0,"['https://stylelint.io/user-guide/configuration/: 404', 'https://www.npmjs.com/package/stylelint-config-recommended-scss: 403', 'https://stylelint.io/user-guide/rules/function-comma-newline-after/: 404', 'https://stylelint.io/user-guide/rules/function-parentheses-newline-inside/: 404', 'https://stylelint.io/user-guide/rules/max-empty-lines/: 404']",False,"['https://github.com/openedx/stylelint-config-edx/workflows/Node%20CI/badge.svg?branch=master', 'https://github.com/openedx/stylelint-config-edx/actions?query=workflow%3A%22Node+CI%22', 'https://github.com/openedx/stylelint-config-edx/blob/master/LICENSE']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/sample-plugin,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1 minutes 51 seconds"", ""checks"": [{""name"": ""release"", ""duration"": ""1 minutes 14 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, django60)"", ""duration"": ""0 minutes 32 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 27 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""run_backend_tests / tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 14 seconds""}, {""name"": ""publish_to_pypi"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""publish_to_npm"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""publish_tutor_plugin_to_pypi"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2025-03-21 17:45:40,main,,973,4,True,False,False,False,False,False,False,2026-05-30 15:33:13,,2,False,0,0,873,6338,11956,87306,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/openedx/openedx-tutor-plugins/tree/main/plugins/tutor-contrib-paragon: 504'],False,"['https://docs.openedx.org/projects/edx-django-utils/en/latest/plugins/how_tos/how_to_create_a_plugin_app.html', 'https://docs.openedx.org/projects/openedx-events/en/latest/', 'https://docs.openedx.org/projects/openedx-filters/en/latest/', 'https://docs.openedx.org/en/latest/site_ops/how-tos/use-frontend-plugin-slots.html', 'https://github.com/openedx/paragon', 'https://docs.tutor.edly.io/', 'https://docs.tutor.edly.io/install.html', 'https://github.com/overhangio/tutor-mfe', 'https://cdn.jsdelivr.net/gh/openedx/sample-plugin@main/brand-sample/dist/light.min.css', 'https://openedx.org/slack', 'https://discuss.openedx.org', 'https://github.com/openedx/sample-plugin/issues']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-core,,,,True,2026-06-08,True,True,False,False,155,0,[],0,,0,0,,,52,"[""idna==3.18"", ""drf-jwt==1.19.2"", ""typing-extensions==4.15.0"", ""kombu==5.6.2"", ""edx-opaque-keys[django]==4.0.0"", ""pyjwt[crypto]==2.13.0"", ""sqlparse==0.5.5"", ""wcwidth==0.8.0"", ""click-repl==0.3.0"", ""cryptography==48.0.0"", ""django-model-utils==5.0.0"", ""cffi==2.0.0"", ""edx-ccx-keys==2.0.2"", ""python-dateutil==2.9.0.post0"", ""pymongo==4.17.0"", ""django-simple-history==3.11.0"", ""pynacl==1.6.2"", ""tzdata==2026.2"", ""django==5.2.15"", ""django-crum==0.7.9"", ""edx-organizations==8.0.0"", ""pillow==12.2.0"", ""charset-normalizer==3.4.7"", ""certifi==2026.5.20"", ""semantic-version==2.10.0"", ""billiard==4.2.4"", ""vine==5.1.0"", ""click-plugins==1.1.1.2"", ""tomlkit==0.15.0"", ""tzlocal==5.3.1"", ""psutil==7.2.2"", ""rules==3.5"", ""dnspython==2.8.0"", ""djangorestframework==3.17.1"", ""pycparser==3.0"", ""urllib3==2.7.0"", ""asgiref==3.11.1"", ""django-waffle==5.0.0"", ""click-didyoumean==0.3.1"", ""openedx-events==11.2.0"", ""click==8.4.1"", ""celery==5.6.3"", ""six==1.17.0"", ""edx-drf-extensions==10.6.0"", ""prompt-toolkit==3.0.52"", ""edx-django-utils==8.0.1"", ""amqp==5.3.1"", ""packaging==26.2"", ""fastavro==1.12.2"", ""attrs==26.1.0"", ""stevedore==5.8.0"", ""requests==2.34.2""]",155,"[""lxml-html-clean==0.4.5"", ""typing-extensions==4.15.0"", ""kombu==5.6.2"", ""sqlparse==0.5.5"", ""python-discovery==1.4.0"", ""cachetools==7.1.4"", ""pprintpp==0.4.0"", ""pydocstyle==6.3.0"", ""coverage[toml]==7.14.1"", ""tzdata==2026.2"", ""nh3==0.3.5"", ""pyproject-hooks==1.2.0"", ""alabaster==1.0.0"", ""tomli-w==1.2.0"", ""jaraco-functools==4.5.0"", ""vine==5.1.0"", ""doc8==2.0.0"", ""ast-serialize==0.5.0"", ""markupsafe==3.0.3"", ""pyproject-api==1.10.1"", ""jinja2==3.1.6"", ""id==1.6.1"", ""build==1.5.0"", ""librt==0.11.0"", ""restructuredtext-lint==2.0.2"", ""django-stubs==6.0.5"", ""mysqlclient==2.2.8"", ""mypy-extensions==1.1.0"", ""openedx-events==11.2.0"", ""click==8.4.1"", ""celery==5.6.3"", ""six==1.17.0"", ""prompt-toolkit==3.0.52"", ""edx-i18n-tools==2.0.0"", ""text-unidecode==1.3"", ""fastavro==1.12.2"", ""wheel==0.47.0"", ""snowballstemmer==3.1.1"", ""stevedore==5.8.0"", ""drf-jwt==1.19.2"", ""imagesize==2.0.0"", ""jaraco-context==6.1.2"", ""click-repl==0.3.0"", ""docutils==0.21.2"", ""cryptography==48.0.0"", ""sphinxcontrib-django==2.5"", ""lxml[html-clean]==6.1.1"", ""django-stubs-ext==6.0.5"", ""python-dateutil==2.9.0.post0"", ""pip-tools==7.5.3"", ""pyyaml==6.0.3"", ""readme-renderer==44.0"", ""setuptools==82.0.1"", ""django-crum==0.7.9"", ""sphinx==9.1.0"", ""sphinx-book-theme==1.2.0"", ""pip==26.1.2"", ""filelock==3.29.1"", ""code-annotations==3.0.0"", ""pillow==12.2.0"", ""mccabe==0.7.0"", ""chardet==7.4.3"", ""roman-numerals==4.1.0"", ""charset-normalizer==3.4.7"", ""certifi==2026.5.20"", ""docutils==0.23"", ""rules==3.5"", ""dnspython==2.8.0"", ""markdown-it-py==4.2.0"", ""pycparser==3.0"", ""pytest==9.0.3"", ""rich==15.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""isort==8.0.1"", ""pylint-django==2.7.0"", ""pygments==2.20.0"", ""import-linter==2.11"", ""path==16.16.0"", ""pytest-django==4.12.0"", ""accessible-pygments==0.0.5"", ""packaging==26.2"", ""pydata-sphinx-theme==0.16.1"", ""attrs==26.1.0"", ""polib==1.2.0"", ""sphinxcontrib-qthelp==2.0.0"", ""tox==4.55.1"", ""pyjwt[crypto]==2.13.0"", ""djangorestframework-stubs==3.17.0"", ""jaraco-classes==3.4.0"", ""django-model-utils==5.0.0"", ""cffi==2.0.0"", ""edx-ccx-keys==2.0.2"", ""django-simple-history==3.11.0"", ""python-slugify==8.0.4"", ""ddt==1.7.2"", ""mypy==2.1.0"", ""freezegun==1.5.5"", ""sphinxcontrib-applehelp==2.0.0"", ""more-itertools==11.1.0"", ""virtualenv==21.4.2"", ""tomlkit==0.15.0"", ""iniconfig==2.3.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""djangorestframework==3.17.1"", ""babel==2.18.0"", ""sphinxcontrib-devhelp==2.0.0"", ""distlib==0.4.1"", ""beautifulsoup4==4.15.0"", ""click-didyoumean==0.3.1"", ""dill==0.4.1"", ""pathspec==1.1.1"", ""twine==6.2.0"", ""edx-drf-extensions==10.6.0"", ""pylint-plugin-utils==0.9.0"", ""edx-django-utils==8.0.1"", ""amqp==5.3.1"", ""secretstorage==3.5.0"", ""soupsieve==2.8.4"", ""click-log==0.4.0"", ""requests==2.34.2"", ""edx-lint==6.1.0"", ""idna==3.18"", ""astroid==4.0.4"", ""platformdirs==4.10.0"", ""pylint-celery==0.3"", ""edx-opaque-keys[django]==4.0.0"", ""pycodestyle==2.14.0"", ""wcwidth==0.8.0"", ""rfc3986==2.0.0"", ""mock==5.2.0"", ""django-debug-toolbar==6.3.0"", ""mdurl==0.1.2"", ""colorama==0.4.6"", ""pymongo==4.17.0"", ""pynacl==1.6.2"", ""keyring==25.7.0"", ""sphinxcontrib-jsmath==1.0.1"", ""pytest-cov==7.1.0"", ""pylint==4.0.5"", ""django==5.2.15"", ""edx-organizations==8.0.0"", ""diff-cover==10.3.0"", ""semantic-version==2.10.0"", ""billiard==4.2.4"", ""click-plugins==1.1.1.2"", ""jeepney==0.9.0"", ""tzlocal==5.3.1"", ""psutil==7.2.2"", ""urllib3==2.7.0"", ""asgiref==3.11.1"", ""django-waffle==5.0.0"", ""grimp==3.14"", ""requests-toolbelt==1.0.0"", ""pluggy==1.6.0"", ""types-pyyaml==6.0.12.20260518""]",10,"[""edx-drf-extensions"", ""djangorestframework"", ""pytest-django"", ""code-annotations"", ""django-debug-toolbar"", ""pylint-django"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""edx-organizations""]",15,"[""edx-drf-extensions"", ""djangorestframework"", ""drf-jwt"", ""pytest-django"", ""rules"", ""django-model-utils"", ""code-annotations"", ""django-simple-history"", ""django-debug-toolbar"", ""pylint-django"", ""django-crum"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""edx-organizations""]",7,"[""edx-drf-extensions"", ""code-annotations"", ""django-debug-toolbar"", ""edx-i18n-tools"", ""django-waffle"", ""edx-django-utils"", ""edx-organizations""]",True,,True,True,True,True,False,False,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,13,"{""total_duration"": ""1 minutes 2 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, package, 8)"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Lint Python Imports"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 32 seconds""}]}",Other,2021-12-12 17:41:35,main,Foundational Django models and APIs for a teaching and learning platform.,2456,26,True,False,False,False,False,False,False,2026-06-08 06:49:47,GNU AGPLv3,11,True,0,0,0,0,4335,1654739,0,False,True,False,False,True,False,False,,openedx,0,"['https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0049-django-app-patterns.html: 404', 'https://github.com/openedx/openedx-core/blob/master/LICENSE.txt: 504']",True,"['https://2021.djangocon.us/talks/scaling-django-to-500-apps/', 'https://www.youtube.com/watch?v=yG3ZdxBb1oo', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/openedx-core.svg', 'https://pypi.python.org/pypi/openedx-core/', 'https://github.com/openedx/openedx-core/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/openedx-core/actions', 'https://codecov.io/github/edx/openedx-core/coverage.svg?branch=master', 'https://codecov.io/github/edx/openedx-core?branch=master', 'https://readthedocs.org/projects/openedx-core/badge/?version=latest', 'https://openedx-core.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/openedx-core.svg', 'https://img.shields.io/github/license/edx/openedx-core.svg']",True,True,False,True,.readthedocs.yml,2,False,,,,False,True,False,True,,False,openedx-core,"['3', '3.12']",https://github.com/openedx/openedx-core,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/aspects-dbt,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,False,False,False,False,False,False,False,True,True,True,19,"{""total_duration"": ""29772 minutes 32 seconds"", ""checks"": [{""name"": ""Deploy dbt docs to github pages"", ""duration"": ""4 minutes 33 seconds""}, {""name"": ""Check coverage & run tests"", ""duration"": ""2 minutes 36 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 28 seconds""}]}",Other,2023-05-24 17:11:54,main,The dbt project for Open edX Aspects!,9680,10,True,False,False,False,False,False,False,2026-06-08 05:22:57,Apache License 2.0,2,False,0,3569,0,0,281,0,0,False,False,False,False,False,False,False,,openedx,0,['https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-event-sink-clickhouse: 404'],True,"['https://openedx.github.io/aspects-dbt/', 'https://clickhouse.com', 'https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html', 'https://docs.getdbt.com/reference/resource-properties/unit-tests', 'https://discuss.openedx.org', 'https://github.com/openedx/aspects-dbt/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],"['ca-certificates', 'python-dev', 'ssh-client', '/tmp/*', 'dist-', '/var/tmp/*', 'gcc', 'make', 'libsasl2-dev', 'unixodbc-dev', 'software-properties-common', 'build-essential', 'clean', 'libpq-dev', 'git']",[] +openedx/frontend-plugin-notifications,,,,False,2026-06-08,False,False,False,False,24,0,,0,{},10,14,"{""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.3"", ""@testing-library/jest-dom"": ""^5.17.0"", ""@testing-library/react"": ""^14.3.1"", ""axios-mock-adapter"": ""^1.22.0"", ""glob"": ""^10.0.0"", ""husky"": ""^7.0.4"", ""jest"": ""^29.7.0"", ""jest-environment-jsdom"": ""^29.7.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""resize-observer-polyfill"": ""^1.5.1"", ""rosie"": ""^2.1.1"", ""semantic-release"": ""^25.0.0""}","{""@fortawesome/fontawesome-svg-core"": ""^6.6.0"", ""@fortawesome/free-brands-svg-icons"": ""^6.6.0"", ""@fortawesome/free-regular-svg-icons"": ""^6.6.0"", ""@fortawesome/free-solid-svg-icons"": ""^6.6.0"", ""@fortawesome/react-fontawesome"": ""^0.2.2"", ""classnames"": ""^2.5.1"", ""dompurify"": ""^3.1.7"", ""lodash"": ""^4.18.1"", ""timeago.js"": ""^4.0.2"", ""uuid"": ""^13.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,20,"{""total_duration"": """", ""checks"": []}",Other,2025-01-31 19:50:32,main,A collection of components meant to integrate Notifications into the platform UI. They are presently used in the HeaderNotificationsSlot.,1570,6,True,False,False,False,False,False,False,2026-06-08 00:48:32,GNU AGPLv3,2,True,0,0,498,69209,1858,0,0,False,False,False,False,False,False,False,@edx/frontend-plugin-notifications,openedx,0,"['https://github.com/edx/frontend-plugin-notifications/blob/main/LICENSE: 504', 'https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-notifications: 404']",False,"['https://img.shields.io/badge/license-AGPL-informational', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml/badge.svg', 'https://codecov.io/github/edx/frontend-plugin-notifications/coverage.svg?branch=main', 'https://codecov.io/github/edx/frontend-plugin-notifications?branch=main', 'https://github.com/openedx/frontend-component-header/tree/master/src/plugin-slots/HeaderNotificationsSlot', 'https://github.com/openedx/tutor-contrib-platform-notifications', 'https://openedx.org/r/how-to-contribute']",True,True,False,False,,,True,2026-04-10,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-django-sites-extensions,,,,True,2026-06-08,True,True,False,False,92,0,[],0,,0,0,,,3,"[""django==5.2.14"", ""sqlparse==0.5.5"", ""asgiref==3.11.1""]",92,"[""pluggy==1.6.0"", ""virtualenv==21.4.2"", ""mock==5.2.0"", ""tox==4.55.0"", ""packaging==26.2"", ""django==5.2.0"", ""sphinx==9.1.0"", ""django-dynamic-fixture==4.0.1"", ""tomlkit==0.15.0"", ""wheel==0.47.0"", ""keyring==25.7.0"", ""docutils==0.23"", ""python-discovery==1.4.0"", ""certifi==2026.5.20"", ""imagesize==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-devhelp==2.0.0"", ""pytest==9.0.3"", ""sphinx-rtd-theme==3.1.0"", ""mccabe==0.7.0"", ""code-annotations==3.0.0"", ""click-log==0.4.0"", ""pygments==2.20.0"", ""pytest-cov==7.1.0"", ""pytest-django==4.12.0"", ""coverage[toml]==7.14.1"", ""readme-renderer==44.0"", ""requests==2.34.2"", ""jaraco-functools==4.5.0"", ""pycparser==3.0"", ""twine==6.2.0"", ""mdurl==0.1.2"", ""click==8.4.1"", ""pycodestyle==2.14.0"", ""rich==15.0.0"", ""rfc3986==2.0.0"", ""isort==8.0.1"", ""pyproject-hooks==1.2.0"", ""nh3==0.3.5"", ""edx-lint==6.1.0"", ""idna==3.17"", ""text-unidecode==1.3"", ""asgiref==3.11.1"", ""babel==2.18.0"", ""sqlparse==0.5.5"", ""jaraco-classes==3.4.0"", ""charset-normalizer==3.4.7"", ""iniconfig==2.3.0"", ""filelock==3.29.0"", ""django==5.2.14"", ""sphinxcontrib-jsmath==1.0.1"", ""setuptools==82.0.1"", ""dill==0.4.1"", ""docutils==0.22.4"", ""id==1.6.1"", ""tomli-w==1.2.0"", ""pylint==4.0.5"", ""pyproject-api==1.10.1"", ""build==1.5.0"", ""roman-numerals==4.1.0"", ""distlib==0.4.0"", ""urllib3==2.7.0"", ""requests-toolbelt==1.0.0"", ""pylint-django==2.7.0"", ""pylint-celery==0.3"", ""alabaster==1.0.0"", ""asgiref==3.8.1"", ""pyyaml==6.0.3"", ""snowballstemmer==3.1.0"", ""jinja2==3.1.6"", ""pip-tools==7.5.3"", ""cachetools==7.1.4"", ""sphinxcontrib-qthelp==2.0.0"", ""six==1.17.0"", ""cryptography==48.0.0"", ""markdown-it-py==4.2.0"", ""platformdirs==4.10.0"", ""astroid==4.0.4"", ""more-itertools==11.1.0"", ""pylint-plugin-utils==0.9.0"", ""jaraco-context==6.1.2"", ""sphinxcontrib-jquery==4.1"", ""colorama==0.4.6"", ""python-slugify==8.0.4"", ""jeepney==0.9.0"", ""cffi==2.0.0"", ""pip==26.1.2"", ""markupsafe==3.0.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""secretstorage==3.5.0"", ""stevedore==5.8.0""]",3,"[""pylint-django"", ""code-annotations"", ""pytest-django""]",4,"[""pylint-django"", ""code-annotations"", ""django-dynamic-fixture"", ""pytest-django""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,False,True,True,False,True,True,True,7,"{""total_duration"": ""5083 minutes 45 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""0 minutes 59 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 45 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2016-03-18 13:46:22,master,,202,14,True,False,False,False,False,False,False,2026-06-08 00:22:57,GNU AGPLv3,2,True,0,0,0,0,1991,22308,0,False,True,False,False,True,False,False,,openedx,1,['https://docs.djangoproject.com/en/1.9/ref/contrib/sites/: 404'],False,"['http://code.edx.org/', 'https://github.com/openedx/edx-django-sites-extensions/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/edx-django-sites-extensions/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/edx-django-sites-extensions/coverage.svg?branch=master', 'http://codecov.io/github/edx/edx-django-sites-extensions?branch=master', 'https://edx-django-sites-extensions.readthedocs.org', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://groups.google.com/forum/']",True,False,False,False,,,False,,,,False,True,False,True,,False,edx-django-sites-extensions,['3.12'],https://github.com/openedx/edx-django-sites-extensions,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/eslint-config,,,,False,2026-06-08,False,False,False,False,9,0,,0,{},0,9,"{""@typescript-eslint/eslint-plugin"": ""^5.62.0"", ""@typescript-eslint/parser"": ""^5.62.0"", ""eslint"": ""8.56.0"", ""eslint-config-airbnb"": ""19.0.4"", ""eslint-config-airbnb-typescript"": ""^17.0.0"", ""eslint-plugin-import"": ""2.29.1"", ""eslint-plugin-jsx-a11y"": ""6.8.0"", ""eslint-plugin-react"": ""7.33.2"", ""eslint-plugin-react-hooks"": ""4.6.0""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,True,True,16,"{""total_duration"": ""0 minutes 23 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 23 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 11 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 7 seconds""}]}",Other,2020-01-30 18:27:54,master,,375,7,True,False,False,False,False,False,False,2026-06-02 19:45:28,GNU AGPLv3,13,True,0,0,0,3159,0,0,0,False,False,False,False,False,False,False,@edx/eslint-config,openedx,0,"['https://github.com/openedx/eslint-config/actions/workflows/release.yml/: 504', 'https://www.npmjs.com/package/@edx/eslint-config: 403', 'https://github.com/openedx/eslint-config/blob/master/LICENSE: 504', 'https://github.com/semantic-release/semantic-release: 504', 'https://www.npmjs.com/package/eslint-config-airbnb-typescript: 403']",False,"['https://github.com/openedx/eslint-config/actions/workflows/release.yml/badge.svg', 'https://img.shields.io/npm/v/@edx/eslint-config.svg', 'https://img.shields.io/npm/dt/@edx/eslint-config.svg', 'https://img.shields.io/npm/l/@edx/eslint-config.svg', 'https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg']",True,True,False,False,,,True,2025-12-08,2024-04-29,10,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-ai-extensions,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,True,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""4167 minutes 55 seconds"", ""checks"": [{""name"": ""Frontend Tests (ubuntu-latest, 20)"", ""duration"": ""2 minutes 10 seconds""}, {""name"": ""Backend Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 54 seconds""}, {""name"": ""Backend Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""Plugin / Docs Tests (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 55 seconds""}, {""name"": ""Backend Tests (ubuntu-latest, 3.12, pii_check)"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 55 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2025-07-29 15:04:02,main,An edx-platform plugin that will house tools and helpers for working with AI.,2825,10,True,False,False,False,False,False,False,2026-06-02 21:54:43,GNU AGPLv3,4,True,839,0,6200,389,5981,786584,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/openedx-ai-extensions.git: 504', 'https://docs.openedx.org/en/latest/developers/references/plugin_reference.html: 404', 'https://github.com/openedx/openedx-ai-extensions/issues: 504']",False,"['https://img.shields.io/badge/Status-Experimental-orange', 'https://img.shields.io/badge/License-AGPL%20v3-blue', 'https://img.shields.io/badge/Documentation-green', 'https://docs.openedx.org/projects/openedx-ai-extensions/en/latest/index.html', 'https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html', 'https://discuss.openedx.org', 'https://www.canva.com/design/DAGqjcS2mT4/nTHQIDIeZ89wqsBvh9GWKA/view', 'https://docs.litellm.ai/', 'https://drive.google.com/file/d/1sUj2xoldYFAvPoDuxqwG0XbIundGD0u2/view']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-instructor-dashboard,,,,False,2026-06-08,False,False,False,False,15,0,,0,{},4,11,"{""@edx/browserslist-config"": ""^1.5.0"", ""@testing-library/jest-dom"": ""^6.8.0"", ""@testing-library/react"": ""^16.3.0"", ""@testing-library/user-event"": ""^14.6.1"", ""@types/jest"": ""^30.0.0"", ""@types/react"": ""^18"", ""@types/react-dom"": ""^18"", ""jest"": ""^29"", ""nodemon"": ""^3.1.14"", ""tsc-alias"": ""^1.8.16"", ""turbo"": ""^2.9.2""}","{""@edx/openedx-atlas"": ""^0.7.0"", ""codemirror"": ""^6.0.2"", ""lodash"": ""^4.17.23"", ""react-helmet"": ""^6.1.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,False,False,True,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""1747 minutes 41 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""3 minutes 0 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2025-08-21 12:52:46,main,Instructor Dashboard pages in MFE-land,1243,14,True,False,False,False,False,False,False,2026-05-20 13:15:09,GNU AGPLv3,0,True,0,0,256,1408,1920,0,0,False,False,False,False,False,False,False,,openedx,0,"['http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://github.com/openedx/frontend-app-instructor-dashboard/blob/master/docs/decisions/0002-feature-based-application-organization.rst: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-instructor-dashboard: 404']",True,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-instructor-dashboard.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-instructor-dashboard/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-instructor-dashboard.svg', 'https://github.com/openedx/frontend-app-instructor-dashboard/blob/main/LICENSE', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://github.com/openedx/frontend-app-instructor-dashboard/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/frontend-app-instructor-dashboard/actions/workflows/ci.yml', 'https://codecov.io/github/openedx/frontend-app-instructor-dashboard/coverage.svg?branch=main', 'https://codecov.io/github/openedx/frontend-app-instructor-dashboard?branch=main']",True,True,False,False,,,True,,,0,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-notes-api,,,,True,2026-06-08,True,True,False,False,103,0,[],0,,0,0,,,57,"[""pynacl==1.6.2"", ""pyyaml==6.0.3"", ""setuptools==82.0.1"", ""drf-jwt==1.19.2"", ""stevedore==5.8.0"", ""pyjwt[crypto]==2.13.0"", ""elasticsearch==7.13.4"", ""idna==3.17"", ""pydantic==2.13.4"", ""pymongo==4.17.0"", ""drf-spectacular==0.29.0"", ""django-nine==0.2.7"", ""typing-extensions==4.15.0"", ""requests==2.34.2"", ""edx-opaque-keys==4.0.0"", ""packaging==26.2"", ""certifi==2026.5.20"", ""pydantic-core==2.46.4"", ""python-dateutil==2.9.0.post0"", ""urllib3==1.26.20"", ""jsonschema==4.26.0"", ""semantic-version==2.10.0"", ""django-cors-headers==4.9.0"", ""django-elasticsearch-dsl-drf==0.22.5"", ""sqlparse==0.5.5"", ""edx-drf-extensions==10.6.0"", ""django-crum==0.7.9"", ""attrs==26.1.0"", ""asgiref==3.11.1"", ""edx-django-release-util==1.5.0"", ""mysqlclient==2.2.8"", ""pycparser==3.0"", ""django-waffle==5.0.0"", ""referencing==0.37.0"", ""typing-inspection==0.4.2"", ""django==5.2.14"", ""jsonschema-specifications==2025.9.1"", ""six==1.17.0"", ""gunicorn==26.0.0"", ""dnspython==2.8.0"", ""charset-normalizer==3.4.7"", ""path-py==12.5.0"", ""meilisearch==0.41.0"", ""uritemplate==4.2.0"", ""annotated-types==0.7.0"", ""cffi==2.0.0"", ""psutil==7.2.2"", ""path==17.1.1"", ""click==8.4.1"", ""cryptography==48.0.0"", ""django-elasticsearch-dsl==7.4"", ""djangorestframework==3.17.1"", ""inflection==0.5.1"", ""elasticsearch-dsl==7.4.1"", ""edx-django-utils==8.0.1"", ""camel-converter[pydantic]==5.1.0"", ""rpds-py==2026.5.1""]",103,"[""factory-boy==3.3.3"", ""pyyaml==6.0.3"", ""ddt==1.7.2"", ""isort==8.0.1"", ""pymongo==4.17.0"", ""more-itertools==11.1.0"", ""django-nine==0.2.7"", ""pydantic-core==2.46.4"", ""python-dateutil==2.9.0.post0"", ""tomlkit==0.15.0"", ""python-discovery==1.4.0"", ""django-cors-headers==4.9.0"", ""sqlparse==0.5.5"", ""django-crum==0.7.9"", ""edx-django-release-util==1.5.0"", ""pytest-cov==7.1.0"", ""dill==0.4.1"", ""jinja2==3.1.6"", ""jsonschema-specifications==2025.9.1"", ""path-py==12.5.0"", ""meilisearch==0.41.0"", ""chardet==7.4.3"", ""annotated-types==0.7.0"", ""cffi==2.0.0"", ""psutil==7.2.2"", ""mccabe==0.7.0"", ""edx-django-utils==8.0.1"", ""edx-lint==6.1.0"", ""setuptools==82.0.1"", ""pyjwt[crypto]==2.13.0"", ""coverage[toml]==7.14.1"", ""typing-extensions==4.15.0"", ""cachetools==7.1.4"", ""requests==2.34.2"", ""pylint-plugin-utils==0.9.0"", ""django-elasticsearch-dsl-drf==0.22.5"", ""asgiref==3.11.1"", ""code-annotations==3.0.0"", ""pycparser==3.0"", ""pytest==9.0.3"", ""wheel==0.47.0"", ""build==1.5.0"", ""django-waffle==5.0.0"", ""pluggy==1.6.0"", ""pyproject-hooks==1.2.0"", ""six==1.17.0"", ""gunicorn==26.0.0"", ""dnspython==2.8.0"", ""click==8.4.1"", ""django-elasticsearch-dsl==7.4"", ""inflection==0.5.1"", ""virtualenv==21.4.2"", ""elasticsearch-dsl==7.4.1"", ""python-slugify==8.0.4"", ""drf-jwt==1.19.2"", ""pip==26.1.2"", ""pylint-celery==0.3"", ""filelock==3.29.0"", ""tomli-w==1.2.0"", ""drf-spectacular==0.29.0"", ""pygments==2.20.0"", ""jsonschema==4.26.0"", ""pip-tools==7.5.3"", ""astroid==4.0.4"", ""pyproject-api==1.10.1"", ""edx-drf-extensions==10.6.0"", ""mysqlclient==2.2.8"", ""pylint-django==2.7.0"", ""django==5.2.14"", ""pep8==1.7.1"", ""charset-normalizer==3.4.7"", ""tox==4.55.0"", ""iniconfig==2.3.0"", ""pynacl==1.6.2"", ""stevedore==5.8.0"", ""elasticsearch==7.13.4"", ""pytest-django==4.12.0"", ""idna==3.17"", ""pydantic==2.13.4"", ""markupsafe==3.0.3"", ""urllib3==1.26.20"", ""pycodestyle==2.14.0"", ""edx-opaque-keys==4.0.0"", ""diff-cover==10.3.0"", ""certifi==2026.5.20"", ""packaging==26.2"", ""platformdirs==4.10.0"", ""semantic-version==2.10.0"", ""attrs==26.1.0"", ""pylint==4.0.5"", ""referencing==0.37.0"", ""typing-inspection==0.4.2"", ""colorama==0.4.6"", ""click-log==0.4.0"", ""uritemplate==4.2.0"", ""path==17.1.1"", ""faker==40.19.1"", ""distlib==0.4.0"", ""rpds-py==2026.5.1"", ""cryptography==48.0.0"", ""text-unidecode==1.3"", ""djangorestframework==3.17.1"", ""camel-converter[pydantic]==5.1.0""]",11,"[""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils"", ""factory-boy"", ""code-annotations"", ""django-waffle"", ""edx-django-release-util"", ""pylint-django"", ""djangorestframework"", ""pytest-django"", ""django-cors-headers""]",16,"[""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils"", ""django-elasticsearch-dsl-drf"", ""factory-boy"", ""code-annotations"", ""django-crum"", ""django-nine"", ""django-elasticsearch-dsl"", ""django-waffle"", ""drf-jwt"", ""edx-django-release-util"", ""pylint-django"", ""djangorestframework"", ""pytest-django"", ""django-cors-headers""]",7,"[""edx-drf-extensions"", ""edx-opaque-keys"", ""edx-django-utils"", ""code-annotations"", ""django-waffle"", ""edx-django-release-util"", ""django-cors-headers""]",False,,True,False,True,True,False,False,True,True,True,True,False,False,True,True,False,False,True,False,True,True,True,91,"{""total_duration"": ""9627 minutes 23 seconds"", ""checks"": [{""name"": ""run_tests (3.12, quality)"", ""duration"": ""2 minutes 1 seconds""}, {""name"": ""run_tests (3.12, django52)"", ""duration"": ""2 minutes 1 seconds""}, {""name"": ""run_tests (3.12, pii_check)"", ""duration"": ""1 minutes 51 seconds""}, {""name"": ""run_tests (3.12, check_keywords)"", ""duration"": ""1 minutes 46 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""1 minutes 0 seconds""}, {""name"": ""check_migrations (3.12)"", ""duration"": ""0 minutes 54 seconds""}, {""name"": ""Analyze (python)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Trivy-Scan"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Trivy-Scan"", ""duration"": ""0 minutes 21 seconds""}]}",Other,2014-11-10 19:37:29,master,edx-notes-api,1073,63,True,False,False,False,False,False,False,2026-06-08 00:46:33,GNU AGPLv3,4,True,0,0,0,0,3592,130608,0,False,True,False,False,True,False,False,,openedx,2,['http://annotatorjs.org/: 403'],False,"['https://www.elastic.co/downloads/past-releases/elasticsearch-7-13-4', 'https://django-elasticsearch-dsl.readthedocs.io/', 'https://django-elasticsearch-dsl.readthedocs.io/en/latest/management.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code', 'https://groups.google.com/g/edx-code', 'https://github.com/openedx/edx-notes-api/actions/workflows/ci.yml/badge.svg', 'https://github.com/openedx/edx-notes-api/actions/workflows/ci.yml']",True,True,False,False,,,False,,,,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/training-courses,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,True,True,True,False,False,False,False,False,False,False,False,False,True,True,True,2,"{""total_duration"": ""0 minutes 11 seconds"", ""checks"": [{""name"": ""source_and_tars_match"", ""duration"": ""0 minutes 11 seconds""}]}",Other,2022-04-07 19:17:04,main,Repo for course content & Issues related to Open edX training courses,270180,6,True,False,False,False,False,False,False,2026-05-19 13:23:02,Other,0,True,0,0,8067554,0,2772,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://creativecommons.org/licenses/by-sa/4.0/', 'http://creativecommons.org/licenses/by-nc-sa/3.0/us/']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-test,,,,False,2026-06-08,False,False,False,False,1,0,,399,"{""@appium/base-driver"": ""9.4.3"", ""@appium/base-plugin"": ""2.2.24"", ""@appium/docutils"": ""0.4.13"", ""@appium/schema"": ""0.4.2"", ""@appium/support"": ""4.1.10"", ""@appium/tsconfig"": ""0.3.2"", ""@appium/typedoc-plugin-appium"": ""0.6.6"", ""@appium/types"": ""0.14.3"", ""@babel/code-frame"": ""7.23.5"", ""@babel/helper-validator-identifier"": ""7.22.20"", ""@babel/highlight"": ""7.23.4"", ""@colors/colors"": ""1.6.0"", ""@dabh/diagnostics"": ""2.0.3"", ""@isaacs/cliui"": ""8.0.2"", ""@pkgjs/parseargs"": ""0.11.0"", ""@sidvind/better-ajv-errors"": ""2.1.0"", ""@sliphua/lilconfig-ts-loader"": ""3.2.2"", ""@tsconfig/node14"": ""14.1.0"", ""@types/archiver"": ""6.0.2"", ""@types/argparse"": ""2.0.14"", ""@types/async-lock"": ""1.4.2"", ""@types/base64-stream"": ""1.0.5"", ""@types/bluebird"": ""3.5.42"", ""@types/body-parser"": ""1.19.5"", ""@types/connect"": ""3.4.38"", ""@types/express"": ""4.17.21"", ""@types/express-serve-static-core"": ""4.17.41"", ""@types/fancy-log"": ""2.0.2"", ""@types/find-root"": ""1.1.4"", ""@types/http-errors"": ""2.0.4"", ""@types/jsftp"": ""2.1.5"", ""@types/json-schema"": ""7.0.15"", ""@types/klaw"": ""3.0.6"", ""@types/lockfile"": ""1.0.4"", ""@types/lodash"": ""4.14.202"", ""@types/method-override"": ""0.0.35"", ""@types/mime"": ""1.3.5"", ""@types/mv"": ""2.1.4"", ""@types/ncp"": ""2.0.8"", ""@types/node"": ""20.10.5"", ""@types/normalize-package-data"": ""2.4.4"", ""@types/npmlog"": ""4.1.6"", ""@types/pluralize"": ""0.0.33"", ""@types/qs"": ""6.9.10"", ""@types/range-parser"": ""1.2.7"", ""@types/readdir-glob"": ""1.1.5"", ""@types/semver"": ""7.5.6"", ""@types/send"": ""0.17.4"", ""@types/serve-favicon"": ""2.5.7"", ""@types/serve-static"": ""1.15.5"", ""@types/shell-quote"": ""1.7.5"", ""@types/supports-color"": ""8.1.3"", ""@types/teen_process"": ""2.0.4"", ""@types/triple-beam"": ""1.3.5"", ""@types/uuid"": ""9.0.7"", ""@types/which"": ""3.0.1"", ""@types/wrap-ansi"": ""3.0.0"", ""@types/ws"": ""8.5.10"", ""@xmldom/xmldom"": ""0.8.10"", ""abort-controller"": ""3.0.0"", ""accepts"": ""1.3.8"", ""ajv"": ""8.12.0"", ""ajv-formats"": ""2.1.1"", ""ansi-regex"": ""6.0.1"", ""ansi-sequence-parser"": ""1.1.1"", ""ansi-styles"": ""6.2.1"", ""appium"": ""2.2.3"", ""aproba"": ""2.0.0"", ""archiver"": ""6.0.1"", ""archiver-utils"": ""4.0.1"", ""are-we-there-yet"": ""4.0.1"", ""arg"": ""4.1.3"", ""argparse"": ""2.0.1"", ""array-flatten"": ""1.1.1"", ""async"": ""3.2.5"", ""async-lock"": ""1.4.0"", ""asyncbox"": ""3.0.0"", ""asynckit"": ""0.4.0"", ""axios"": ""1.6.2"", ""b4a"": ""1.6.4"", ""balanced-match"": ""1.0.2"", ""base64-js"": ""1.5.1"", ""base64-stream"": ""1.0.0"", ""basic-auth"": ""2.0.1"", ""big-integer"": ""1.6.52"", ""bl"": ""4.1.0"", ""bluebird"": ""3.7.2"", ""body-parser"": ""1.20.2"", ""bplist-creator"": ""0.1.1"", ""bplist-parser"": ""0.3.2"", ""brace-expansion"": ""2.0.1"", ""buffer"": ""6.0.3"", ""buffer-crc32"": ""0.2.13"", ""buffer-from"": ""1.1.2"", ""bytes"": ""3.1.2"", ""call-bind"": ""1.0.5"", ""chalk"": ""4.1.2"", ""chownr"": ""1.1.4"", ""cli-cursor"": ""3.1.0"", ""cli-spinners"": ""2.9.2"", ""cliui"": ""8.0.1"", ""clone"": ""1.0.4"", ""color"": ""4.2.3"", ""color-convert"": ""2.0.1"", ""color-name"": ""1.1.4"", ""color-string"": ""1.9.1"", ""color-support"": ""1.1.3"", ""colorspace"": ""1.1.4"", ""combined-stream"": ""1.0.8"", ""commander"": ""6.2.1"", ""compress-commons"": ""5.0.1"", ""concat-map"": ""0.0.1"", ""consola"": ""2.15.3"", ""console-control-strings"": ""1.1.0"", ""content-disposition"": ""0.5.4"", ""content-type"": ""1.0.5"", ""cookie"": ""0.5.0"", ""cookie-signature"": ""1.0.6"", ""core-util-is"": ""1.0.3"", ""crc-32"": ""1.2.2"", ""crc32-stream"": ""5.0.0"", ""create-require"": ""1.1.1"", ""cross-env"": ""7.0.3"", ""cross-spawn"": ""7.0.3"", ""debug"": ""3.2.7"", ""decompress-response"": ""6.0.0"", ""deep-extend"": ""0.6.0"", ""defaults"": ""1.0.4"", ""define-data-property"": ""1.1.1"", ""delayed-stream"": ""1.0.0"", ""delegates"": ""1.0.0"", ""depd"": ""2.0.0"", ""destroy"": ""1.2.0"", ""detect-libc"": ""2.0.2"", ""detect-node"": ""2.1.0"", ""diff"": ""5.1.0"", ""duplexer"": ""0.1.2"", ""eastasianwidth"": ""0.2.0"", ""ee-first"": ""1.1.1"", ""emoji-regex"": ""9.2.2"", ""enabled"": ""2.0.0"", ""encodeurl"": ""1.0.2"", ""end-of-stream"": ""1.4.4"", ""error-ex"": ""1.3.2"", ""es6-error"": ""4.1.1"", ""escalade"": ""3.1.1"", ""escape-html"": ""1.0.3"", ""escape-string-regexp"": ""1.0.5"", ""etag"": ""1.8.1"", ""event-target-shim"": ""5.0.1"", ""events"": ""3.3.0"", ""expand-template"": ""2.0.3"", ""express"": ""4.18.2"", ""fast-deep-equal"": ""3.1.3"", ""fast-fifo"": ""1.3.2"", ""fd-slicer"": ""1.1.0"", ""fecha"": ""4.2.3"", ""figures"": ""3.2.0"", ""finalhandler"": ""1.2.0"", ""find-up"": ""5.0.0"", ""fn.name"": ""1.1.0"", ""follow-redirects"": ""1.15.3"", ""foreground-child"": ""3.1.1"", ""form-data"": ""4.0.0"", ""forwarded"": ""0.2.0"", ""freckle"": ""0.0.2"", ""fresh"": ""0.5.2"", ""fs-constants"": ""1.0.0"", ""fs.realpath"": ""1.0.0"", ""ftp-response-parser"": ""1.0.1"", ""function-bind"": ""1.1.2"", ""gauge"": ""5.0.1"", ""get-caller-file"": ""2.0.5"", ""get-intrinsic"": ""1.2.2"", ""get-stream"": ""6.0.1"", ""github-from-package"": ""0.0.0"", ""glob"": ""10.3.10"", ""gopd"": ""1.0.1"", ""graceful-fs"": ""4.2.11"", ""handle-thing"": ""2.0.1"", ""handlebars"": ""4.7.8"", ""has-flag"": ""4.0.0"", ""has-property-descriptors"": ""1.0.1"", ""has-proto"": ""1.0.1"", ""has-symbols"": ""1.0.3"", ""has-unicode"": ""2.0.1"", ""hasown"": ""2.0.0"", ""hosted-git-info"": ""2.8.9"", ""hpack.js"": ""2.1.6"", ""http-deceiver"": ""1.2.7"", ""http-errors"": ""2.0.0"", ""http-status-codes"": ""2.3.0"", ""iconv-lite"": ""0.4.24"", ""ieee754"": ""1.2.1"", ""inflight"": ""1.0.6"", ""inherits"": ""2.0.4"", ""ini"": ""1.3.8"", ""ipaddr.js"": ""1.9.1"", ""is-arrayish"": ""0.2.1"", ""is-core-module"": ""2.13.1"", ""is-fullwidth-code-point"": ""3.0.0"", ""is-interactive"": ""1.0.0"", ""is-stream"": ""2.0.1"", ""is-unicode-supported"": ""0.1.0"", ""isarray"": ""1.0.0"", ""isexe"": ""2.0.0"", ""jackspeak"": ""2.3.6"", ""js-tokens"": ""4.0.0"", ""jsftp"": ""2.1.3"", ""json-parse-even-better-errors"": ""2.3.1"", ""json-schema"": ""0.4.0"", ""json-schema-traverse"": ""1.0.0"", ""json5"": ""2.2.3"", ""jsonc-parser"": ""3.2.0"", ""klaw"": ""4.1.0"", ""kuler"": ""2.0.0"", ""lazystream"": ""1.0.1"", ""lilconfig"": ""2.1.0"", ""lines-and-columns"": ""1.2.4"", ""locate-path"": ""6.0.0"", ""lockfile"": ""1.0.4"", ""lodash"": ""4.17.21"", ""lodash.get"": ""4.4.2"", ""log-symbols"": ""4.1.0"", ""logform"": ""2.6.0"", ""lru-cache"": ""10.0.1"", ""lunr"": ""2.3.9"", ""make-error"": ""1.3.6"", ""marked"": ""4.3.0"", ""media-typer"": ""0.3.0"", ""merge-descriptors"": ""1.0.1"", ""method-override"": ""3.0.0"", ""methods"": ""1.1.2"", ""mime"": ""1.6.0"", ""mime-db"": ""1.52.0"", ""mime-types"": ""2.1.35"", ""mimic-fn"": ""2.1.0"", ""mimic-response"": ""3.1.0"", ""minimalistic-assert"": ""1.0.1"", ""minimatch"": ""5.1.6"", ""minimist"": ""1.2.8"", ""minipass"": ""7.0.4"", ""mkdirp"": ""0.5.6"", ""mkdirp-classic"": ""0.5.3"", ""moment"": ""2.29.4"", ""morgan"": ""1.10.0"", ""ms"": ""2.1.3"", ""mv"": ""2.1.1"", ""napi-build-utils"": ""1.0.2"", ""ncp"": ""2.0.0"", ""negotiator"": ""0.6.3"", ""neo-async"": ""2.6.2"", ""node-abi"": ""3.52.0"", ""node-addon-api"": ""6.1.0"", ""normalize-package-data"": ""2.5.0"", ""normalize-path"": ""3.0.0"", ""npmlog"": ""7.0.1"", ""object-inspect"": ""1.13.1"", ""obuf"": ""1.1.2"", ""on-finished"": ""2.4.1"", ""on-headers"": ""1.0.2"", ""once"": ""1.4.0"", ""one-time"": ""1.0.0"", ""onetime"": ""5.1.2"", ""opencv-bindings"": ""4.5.5"", ""optimist"": ""0.6.1"", ""ora"": ""5.4.1"", ""p-limit"": ""3.1.0"", ""p-locate"": ""5.0.0"", ""package-changed"": ""3.0.0"", ""parse-json"": ""5.2.0"", ""parse-listing"": ""1.1.3"", ""parseurl"": ""1.3.3"", ""path-exists"": ""4.0.0"", ""path-is-absolute"": ""1.0.1"", ""path-key"": ""3.1.1"", ""path-parse"": ""1.0.7"", ""path-scurry"": ""1.10.1"", ""path-to-regexp"": ""6.2.1"", ""pend"": ""1.2.0"", ""pip"": ""0.0.1"", ""pkg-dir"": ""5.0.0"", ""plist"": ""3.1.0"", ""pluralize"": ""8.0.0"", ""prebuild-install"": ""7.1.1"", ""process"": ""0.11.10"", ""process-nextick-args"": ""2.0.1"", ""proxy-addr"": ""2.0.7"", ""proxy-from-env"": ""1.1.0"", ""pump"": ""3.0.0"", ""punycode"": ""2.3.1"", ""qs"": ""6.11.0"", ""queue-tick"": ""1.0.1"", ""range-parser"": ""1.2.1"", ""raw-body"": ""2.5.2"", ""rc"": ""1.2.8"", ""read-pkg"": ""5.2.0"", ""readable-stream"": ""3.6.2"", ""readdir-glob"": ""1.1.3"", ""require-directory"": ""2.1.1"", ""require-from-string"": ""2.0.2"", ""resolve"": ""1.22.8"", ""resolve-from"": ""5.0.0"", ""restore-cursor"": ""3.1.0"", ""rimraf"": ""2.4.5"", ""safe-buffer"": ""5.1.2"", ""safe-stable-stringify"": ""2.4.3"", ""safer-buffer"": ""2.1.2"", ""sanitize-filename"": ""1.6.3"", ""select-hose"": ""2.0.0"", ""semver"": ""7.5.4"", ""send"": ""0.18.0"", ""serve-favicon"": ""2.5.0"", ""serve-static"": ""1.15.0"", ""set-blocking"": ""2.0.0"", ""set-function-length"": ""1.1.1"", ""setprototypeof"": ""1.2.0"", ""sharp"": ""0.32.6"", ""shebang-command"": ""2.0.0"", ""shebang-regex"": ""3.0.0"", ""shell-quote"": ""1.8.1"", ""shiki"": ""0.14.7"", ""side-channel"": ""1.0.4"", ""signal-exit"": ""4.1.0"", ""simple-concat"": ""1.0.1"", ""simple-get"": ""4.0.1"", ""simple-swizzle"": ""0.2.2"", ""source-map"": ""0.6.1"", ""source-map-support"": ""0.5.21"", ""spdx-correct"": ""3.2.0"", ""spdx-exceptions"": ""2.3.0"", ""spdx-expression-parse"": ""3.0.1"", ""spdx-license-ids"": ""3.0.16"", ""spdy"": ""4.0.2"", ""spdy-transport"": ""3.0.0"", ""stack-trace"": ""0.0.10"", ""statuses"": ""2.0.1"", ""stream-buffers"": ""2.2.0"", ""stream-combiner"": ""0.2.2"", ""streamx"": ""2.15.6"", ""string-width"": ""5.1.2"", ""string-width-cjs"": ""npm:string-width@4.2.3"", ""string_decoder"": ""1.1.1"", ""strip-ansi"": ""7.1.0"", ""strip-ansi-cjs"": ""npm:strip-ansi@6.0.1"", ""strip-json-comments"": ""2.0.1"", ""supports-color"": ""8.1.1"", ""supports-preserve-symlinks-flag"": ""1.0.0"", ""tar-fs"": ""3.0.4"", ""tar-stream"": ""3.1.6"", ""teen_process"": ""2.0.101"", ""text-hex"": ""1.0.0"", ""through"": ""2.3.8"", ""toidentifier"": ""1.0.1"", ""triple-beam"": ""1.4.1"", ""truncate-utf8-bytes"": ""1.0.2"", ""ts-node"": ""9.1.1"", ""tslib"": ""2.6.2"", ""tunnel-agent"": ""0.6.0"", ""type-fest"": ""3.13.1"", ""type-is"": ""1.6.18"", ""typedoc"": ""0.23.28"", ""typedoc-plugin-markdown"": ""3.14.0"", ""typedoc-plugin-resolve-crossmodule-references"": ""0.3.3"", ""typescript"": ""5.0.4"", ""uglify-js"": ""3.17.4"", ""undici-types"": ""5.26.5"", ""unorm"": ""1.6.0"", ""unpipe"": ""1.0.0"", ""uri-js"": ""4.4.1"", ""utf8-byte-length"": ""1.0.4"", ""util-deprecate"": ""1.0.2"", ""utils-merge"": ""1.0.1"", ""uuid"": ""9.0.1"", ""validate-npm-package-license"": ""3.0.4"", ""validate.js"": ""0.13.1"", ""vary"": ""1.1.2"", ""vscode-oniguruma"": ""1.7.0"", ""vscode-textmate"": ""8.0.0"", ""wbuf"": ""1.7.3"", ""wcwidth"": ""1.0.1"", ""which"": ""4.0.0"", ""wide-align"": ""1.1.5"", ""winston"": ""3.11.0"", ""winston-transport"": ""4.6.0"", ""wordwrap"": ""1.0.0"", ""wrap-ansi"": ""7.0.0"", ""wrap-ansi-cjs"": ""npm:wrap-ansi@7.0.0"", ""wrappy"": ""1.0.2"", ""xmlbuilder"": ""15.1.1"", ""y18n"": ""5.0.8"", ""yallist"": ""4.0.0"", ""yaml"": ""2.3.4"", ""yargs"": ""17.7.2"", ""yargs-parser"": ""21.1.1"", ""yauzl"": ""2.10.0"", ""yn"": ""3.1.1"", ""yocto-queue"": ""0.1.0"", ""zip-stream"": ""5.0.1""}",1,0,{},"{""appium"": ""^2.0.0""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,True,False,False,False,False,False,True,True,True,2,"{""total_duration"": """", ""checks"": []}",Other,2023-12-11 14:10:40,main,Test scripts for the Open edX mobile applications,818,5,True,False,False,False,False,False,False,2025-08-29 14:34:13,Apache License 2.0,0,False,0,0,0,0,0,627277,1015,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://nodejs.org/en/', 'https://appium.io/docs/en/latest/quickstart/', 'https://www.oracle.com/europe/java/technologies/downloads/', 'https://developer.android.com/tools', 'https://github.com/openedx/openedx-app-test', 'https://www.python.org/downloads/', 'https://stackoverflow.com/questions/6587507/how-to-install-pip-with-python-3', 'https://www.browserstack.com/list-of-browsers-and-platforms/automate']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-dev-utils,,,,False,2026-06-08,False,False,False,False,3,0,,0,{},3,0,{},"{""chokidar"": ""^5.0.0"", ""cors"": ""^2.8.6"", ""express"": ""^5.2.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,True,False,False,False,False,False,False,True,True,True,1,"{""total_duration"": ""0 minutes 21 seconds"", ""checks"": [{""name"": ""Release"", ""duration"": ""0 minutes 21 seconds""}]}",Other,2026-01-26 14:12:43,main,,43,3,True,False,False,False,False,False,False,2026-05-30 15:25:12,GNU AGPLv3,0,False,0,0,0,6203,0,0,0,False,False,False,False,False,False,False,,openedx,0,['https://github.com/openedx/frontend-base/: 504'],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/code-annotations,,,,True,2026-06-08,True,True,False,False,96,0,[],0,,0,0,,,7,"[""click==8.4.1"", ""python-slugify==8.0.4"", ""stevedore==5.8.0"", ""text-unidecode==1.3"", ""markupsafe==3.0.3"", ""pyyaml==6.0.3"", ""jinja2==3.1.6""]",96,"[""setuptools==82.0.1"", ""babel==2.18.0"", ""pygments==2.20.0"", ""charset-normalizer==3.4.7"", ""pycparser==3.0"", ""pip-tools==7.5.3"", ""diff-cover==10.3.0"", ""secretstorage==3.5.0"", ""edx-lint==6.1.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""twine==6.2.0"", ""jaraco-functools==4.5.0"", ""packaging==26.2"", ""jaraco-context==6.1.2"", ""iniconfig==2.3.0"", ""cryptography==48.0.0"", ""id==1.6.1"", ""django==5.2.14"", ""colorama==0.4.6"", ""cachetools==7.1.4"", ""sphinxcontrib-applehelp==2.0.0"", ""tox==4.55.0"", ""rich==15.0.0"", ""asgiref==3.11.1"", ""restructuredtext-lint==2.0.2"", ""sphinxcontrib-jsmath==1.0.1"", ""pylint-celery==0.3"", ""docutils==0.21.2"", ""pydocstyle==6.3.0"", ""isort==8.0.1"", ""doc8==2.0.0"", ""pylint==4.0.5"", ""sphinxcontrib-qthelp==2.0.0"", ""pip==26.1.2"", ""requests-toolbelt==1.0.0"", ""jinja2==3.1.6"", ""alabaster==1.0.0"", ""coverage[toml]==7.14.1"", ""soupsieve==2.8.4"", ""pyproject-hooks==1.2.0"", ""keyring==25.7.0"", ""tomlkit==0.15.0"", ""wheel==0.47.0"", ""markupsafe==3.0.3"", ""sphinxcontrib-htmlhelp==2.1.0"", ""imagesize==2.0.0"", ""distlib==0.4.0"", ""pytest-cov==7.1.0"", ""pyproject-api==1.10.1"", ""more-itertools==11.1.0"", ""code-annotations==3.0.0"", ""sphinx-book-theme==1.2.0"", ""sphinxcontrib-devhelp==2.0.0"", ""astroid==4.0.4"", ""roman-numerals==4.1.0"", ""idna==3.17"", ""pylint-plugin-utils==0.9.0"", ""stevedore==5.8.0"", ""platformdirs==4.10.0"", ""pyyaml==6.0.3"", ""readme-renderer==44.0"", ""dill==0.4.1"", ""chardet==7.4.3"", ""pylint-django==2.7.0"", ""requests==2.34.2"", ""nh3==0.3.5"", ""pydata-sphinx-theme==0.16.1"", ""click==8.4.1"", ""jaraco-classes==3.4.0"", ""build==1.5.0"", ""mock==5.2.0"", ""pycodestyle==2.14.0"", ""text-unidecode==1.3"", ""mdurl==0.1.2"", ""jeepney==0.9.0"", ""tomli-w==1.2.0"", ""snowballstemmer==3.1.0"", ""filelock==3.29.0"", ""typing-extensions==4.15.0"", ""markdown-it-py==4.2.0"", ""accessible-pygments==0.0.5"", ""rfc3986==2.0.0"", ""python-slugify==8.0.4"", ""pluggy==1.6.0"", ""click-log==0.4.0"", ""sphinx==9.1.0"", ""pytest==9.0.3"", ""certifi==2026.5.20"", ""urllib3==2.7.0"", ""virtualenv==21.4.2"", ""beautifulsoup4==4.14.3"", ""sqlparse==0.5.5"", ""python-discovery==1.4.0"", ""cffi==2.0.0"", ""mccabe==0.7.0"", ""six==1.17.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,16,"{""total_duration"": ""9279 minutes 33 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 11 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 43 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 52 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2018-11-16 20:22:19,master,"Extensible tools for parsing annotations in codebases, powers edx PII checker.",613,12,True,False,False,False,False,False,False,2026-06-08 00:42:06,Apache License 2.0,2,True,0,0,0,2841,3281,163378,0,True,True,False,False,True,False,False,,openedx,2,[],True,"['https://code-annotations.readthedocs.org', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://github.com/openedx/code-annotations/blob/master/.github/PULL_REQUEST_TEMPLATE.md', 'https://github.com/openedx/code-annotations/blob/master/.github/ISSUE_TEMPLATE.md', 'https://open.edx.org/getting-help']",True,True,False,True,.readthedocs.yml,2,False,,,,False,True,False,True,,False,code-annotations,"['3', '3.12']",https://github.com/openedx/code-annotations,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-ora,,,,False,2026-06-08,True,True,False,False,48,0,,0,{},38,10,"{""@edx/browserslist-config"": ""^1.1.1"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/dom"": ""^10.4.0"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""^14.5.1"", ""glob"": ""7.2.3"", ""husky"": ""7.0.4"", ""jest"": ""^30.0.0"", ""ts-jest"": ""^29.4.0""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-lib-special-exams"": ""^3.4.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@edx/tinymce-language-selector"": ""1.1.0"", ""@fortawesome/fontawesome-svg-core"": ""1.2.36"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""0.2.6"", ""@openedx/paragon"": ""^23.4.2"", ""@reduxjs/toolkit"": ""^1.9.7"", ""@tanstack/react-query"": ""^4.29.25"", ""@tanstack/react-query-devtools"": ""^4.35.3"", ""@tinymce/tinymce-react"": ""3.14.0"", ""@zip.js/zip.js"": ""^2.7.62"", ""axios"": ""^1.5.1"", ""classnames"": ""^2.3.2"", ""core-js"": ""3.49.0"", ""file-saver"": ""^2.0.5"", ""filesize"": ""^8.0.6"", ""jest-when"": ""^3.6.0"", ""moment"": ""^2.29.4"", ""pdfjs-dist"": ""^3.11.174"", ""prop-types"": ""15.8.1"", ""query-string"": ""^8.1.0"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-pdf"": ""^7.4.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.30.3"", ""react-router-dom"": ""6.30.3"", ""redux"": ""4.2.1"", ""redux-devtools-extension"": ""^2.13.9"", ""redux-logger"": ""^3.0.6"", ""regenerator-runtime"": ""0.14.1"", ""tinymce"": ""5.10.9"", ""uuid"": ""^9.0.1""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,True,True,True,True,24,"{""total_duration"": ""33737 minutes 54 seconds"", ""checks"": [{""name"": ""test"", ""duration"": ""3 minutes 40 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 26 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 23 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""update-browserslist / update-dep"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}]}",Other,2023-07-12 21:42:38,master,Open Response Assessment MFE,4067,23,True,False,False,False,False,False,False,2026-06-02 17:14:36,GNU GPLv3,11,True,0,0,1027,596023,1591,983,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/frontend-app-ora.git: 504', 'https://github.com/overhangio/tutor-mfe/blob/release/tutormfe/plugin.py: 504', 'http://apps.local.openedx.io: HTTPConnectionPool(host=\'apps.local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'apps.local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://github.com/edx/frontend-app-ora/issues: 504', 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora: 404', 'https://github.com/edx/frontend-app-ora/blob/master/LICENSE: 504', 'https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml/badge.svg: 504', 'https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml: 504']",True,"['https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file', 'https://github.com/nvm-sh/nvm', 'https://docs.openedx.org/en/latest/site_ops/how-tos/add-waffle-flag-for-user.html', 'https://discuss.openedx.org', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/getting-help', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://img.shields.io/github/license/openedx/frontend-app-ora.svg', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://codecov.io/github/openedx/frontend-app-ora/coverage.svg?branch=master', 'https://codecov.io/github/openedx/frontend-app-ora?branch=master']",True,True,False,False,,,True,2026-04-06,2024-02-05,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-chem,,,,True,2026-06-08,False,False,False,False,39,0,[],0,,0,0,,,9,"[""nltk==3.9.3"", ""scipy==1.17.1"", ""click==8.3.1"", ""tqdm==4.67.3"", ""numpy==2.4.2"", ""regex==2026.2.28"", ""joblib==1.5.3"", ""pyparsing==3.3.2"", ""markupsafe==3.0.3""]",39,"[""pip==26.0.1"", ""pyproject-api==1.10.0"", ""pytest-cov==7.0.0"", ""click==8.3.1"", ""colorama==0.4.6"", ""pluggy==1.6.0"", ""tomlkit==0.14.0"", ""scipy==1.17.1"", ""tox==4.49.0"", ""iniconfig==2.3.0"", ""isort==8.0.1"", ""tomli-w==1.2.0"", ""setuptools==82.0.0"", ""astroid==4.0.4"", ""python-discovery==1.1.1"", ""pygments==2.19.2"", ""wheel==0.46.3"", ""regex==2026.2.28"", ""joblib==1.5.3"", ""markupsafe==3.0.3"", ""dill==0.4.1"", ""tqdm==4.67.3"", ""platformdirs==4.9.4"", ""pip-tools==7.5.3"", ""numpy==2.4.2"", ""coverage[toml]==7.13.4"", ""cachetools==7.0.3"", ""pyproject-hooks==1.2.0"", ""mccabe==0.7.0"", ""packaging==26.0"", ""nltk==3.9.3"", ""distlib==0.4.0"", ""pylint==4.0.5"", ""virtualenv==21.1.0"", ""pycodestyle==2.14.0"", ""pytest==9.0.2"", ""build==1.4.0"", ""pyparsing==3.3.2"", ""filelock==3.25.0""]",0,[],0,[],0,[],False,,True,False,True,False,False,False,True,True,True,False,True,False,False,True,False,True,True,False,True,True,True,27,"{""total_duration"": ""1 minutes 2 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 2 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 53 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 31 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 30 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 26 seconds""}]}",Other,2019-05-07 16:58:24,master,,120,5,True,False,False,False,False,False,False,2026-05-30 15:29:42,GNU AGPLv3,2,True,0,384,0,0,1281,61200,0,False,False,False,False,False,False,False,,openedx,2,[],False,"['https://github.com/openedx/edx-platform', 'https://github.com/openedx/openedx-chem/blob/master/LICENSE']",True,True,False,False,,,False,,,,False,False,False,True,,False,chem,"['3', '3.12']",https://github.com/openedx/openedx-chem,True,True,True,False,False,False,False,False,False,[],[],"['libblas-dev', 'liblapack-dev', 'gfortran', 'python3-dev']",[] +openedx/edx-cookiecutters,,,,True,2026-06-08,True,True,False,False,101,0,[],0,,0,0,,,38,"[""text-unidecode==1.3"", ""tomlkit==0.13.2"", ""arrow==1.3.0"", ""platformdirs==4.3.7"", ""click==8.1.8"", ""rich==14.0.0"", ""python-slugify==8.0.4"", ""pyyaml==6.0.2"", ""stevedore==5.4.1"", ""binaryornot==0.4.4"", ""edx-lint==5.6.0"", ""pylint==3.3.6"", ""jinja2==3.1.6"", ""setuptools==78.1.0"", ""certifi==2025.1.31"", ""urllib3==2.2.3"", ""requests==2.32.3"", ""markupsafe==3.0.2"", ""idna==3.10"", ""six==1.17.0"", ""chardet==5.2.0"", ""mccabe==0.7.0"", ""pylint-plugin-utils==0.8.2"", ""pbr==6.1.1"", ""python-dateutil==2.9.0.post0"", ""dill==0.3.9"", ""isort==6.0.1"", ""cookiecutter==2.6.0"", ""markdown-it-py==3.0.0"", ""charset-normalizer==3.4.1"", ""pygments==2.19.1"", ""click-log==0.4.0"", ""astroid==3.3.9"", ""types-python-dateutil==2.9.0.20241206"", ""mdurl==0.1.2"", ""pylint-django==2.6.1"", ""code-annotations==2.2.0"", ""pylint-celery==0.3""]",101,"[""accessible-pygments==0.0.5"", ""text-unidecode==1.3"", ""doc8==0.11.2"", ""arrow==1.3.0"", ""twine==6.1.0"", ""nh3==0.2.21"", ""sphinx==8.2.3"", ""stevedore==5.4.1"", ""build==1.2.2.post1"", ""pyproject-hooks==1.2.0"", ""docutils==0.21.2"", ""jinja2==3.1.6"", ""setuptools==78.1.0"", ""alabaster==1.0.0"", ""certifi==2025.1.31"", ""pycodestyle==2.13.0"", ""filelock==3.18.0"", ""cryptography==44.0.2"", ""rfc3986==2.0.0"", ""jaraco-classes==3.4.0"", ""six==1.17.0"", ""imagesize==1.4.1"", ""mccabe==0.7.0"", ""cachetools==5.5.2"", ""soupsieve==2.6"", ""cookiecutter==2.6.0"", ""pygments==2.19.1"", ""babel==2.17.0"", ""asgiref==3.8.1"", ""sphinxcontrib-applehelp==2.0.0"", ""sphinxcontrib-jquery==4.1"", ""pylint-celery==0.3"", ""jaraco-functools==4.1.0"", ""distlib==0.3.9"", ""click==8.1.8"", ""python-slugify==8.0.4"", ""pycparser==2.22"", ""tox==4.25.0"", ""binaryornot==0.4.4"", ""pylint==3.3.6"", ""django-model-utils==5.0.0"", ""pydocstyle==6.3.0"", ""markupsafe==3.0.2"", ""jaraco-context==6.0.1"", ""idna==3.10"", ""snowballstemmer==2.2.0"", ""cffi==1.17.1"", ""python-dateutil==2.9.0.post0"", ""sqlparse==0.5.3"", ""click-log==0.4.0"", ""colorama==0.4.6"", ""restructuredtext-lint==1.4.0"", ""astroid==3.3.9"", ""jeepney==0.9.0"", ""pylint-django==2.6.1"", ""packaging==24.2"", ""sphinxcontrib-serializinghtml==2.0.0"", ""pydata-sphinx-theme==0.15.4"", ""sphinx-book-theme==1.1.4"", ""sh==2.2.2"", ""sphinxcontrib-qthelp==2.0.0"", ""wheel==0.45.1"", ""keyring==25.6.0"", ""pyyaml==6.0.2"", ""pyproject-api==1.9.0"", ""readme-renderer==44.0"", ""django==4.2.20"", ""urllib3==2.2.3"", ""pip-tools==7.4.1"", ""more-itertools==10.6.0"", ""virtualenv==20.29.3"", ""pylint-plugin-utils==0.8.2"", ""pbr==6.1.1"", ""pluggy==1.5.0"", ""dill==0.3.9"", ""isort==6.0.1"", ""sphinxcontrib-devhelp==2.0.0"", ""beautifulsoup4==4.13.3"", ""id==1.5.0"", ""charset-normalizer==3.4.1"", ""markdown-it-py==3.0.0"", ""roman-numerals-py==3.1.0"", ""pytest-cookies==0.7.0"", ""types-python-dateutil==2.9.0.20241206"", ""sphinxcontrib-jsmath==1.0.1"", ""code-annotations==2.2.0"", ""sphinx-rtd-theme==3.0.2"", ""tomlkit==0.13.2"", ""platformdirs==4.3.7"", ""sphinxcontrib-htmlhelp==2.1.0"", ""rich==14.0.0"", ""iniconfig==2.1.0"", ""edx-lint==5.6.0"", ""pytest==8.3.5"", ""pip==24.2"", ""requests==2.32.3"", ""chardet==5.2.0"", ""typing-extensions==4.13.0"", ""secretstorage==3.3.3"", ""requests-toolbelt==1.0.0"", ""mdurl==0.1.2""]",2,"[""code-annotations"", ""pylint-django""]",3,"[""code-annotations"", ""pylint-django"", ""django-model-utils""]",1,"[""code-annotations""]",False,,False,True,True,False,False,True,True,True,True,True,True,False,True,True,False,False,True,False,True,True,True,19,"{""total_duration"": ""18714 minutes 23 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, py)"", ""duration"": ""5 minutes 26 seconds""}, {""name"": ""run_ida_tests (ubuntu-latest, 3.12)"", ""duration"": ""4 minutes 3 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 16 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 58 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 25 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 50 seconds""}]}",Other,2020-04-29 19:18:59,master,"Open edx public templates for apps, libraries and services.",896,34,True,False,False,False,False,False,False,2026-05-15 04:57:10,Apache License 2.0,12,True,179,5400,1070,1097,32634,99502,5540,False,True,False,False,True,False,False,,openedx,5,[],True,"['https://discuss.openedx.org', 'https://openedx.org/getting-help', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://tox.readthedocs.io/en/latest/']",True,True,False,False,,,False,,,,False,True,False,True,,False,,[],,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-discussions,,,,False,2026-06-08,True,True,False,False,41,0,,0,{},29,12,"{""@edx/browserslist-config"": ""1.5.0"", ""@openedx/frontend-build"": ""^14.6.6"", ""@testing-library/jest-dom"": ""5.17.0"", ""@testing-library/react"": ""14.3.1"", ""@testing-library/user-event"": ""13.5.0"", ""axios"": ""^0.30.0"", ""axios-mock-adapter"": ""1.22.0"", ""babel-plugin-react-intl"": ""8.2.25"", ""eslint-plugin-simple-import-sort"": ""7.0.0"", ""glob"": ""7.2.3"", ""jest"": ""29.7.0"", ""rosie"": ""2.1.1""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@reduxjs/toolkit"": ""1.9.7"", ""@tinymce/tinymce-react"": ""5.1.1"", ""babel-polyfill"": ""6.26.0"", ""classnames"": ""2.5.1"", ""core-js"": ""3.47.0"", ""dompurify"": ""^2.4.3"", ""formik"": ""2.4.9"", ""lodash.snakecase"": ""4.1.1"", ""prop-types"": ""15.8.1"", ""raw-loader"": ""4.0.2"", ""react"": ""18.3.1"", ""react-dom"": ""18.3.1"", ""react-google-recaptcha"": ""^3.1.0"", ""react-google-recaptcha-v3"": ""^1.11.0"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.18.0"", ""react-router-dom"": ""6.18.0"", ""redux"": ""4.2.1"", ""regenerator-runtime"": ""0.14.1"", ""timeago.js"": ""4.0.2"", ""tinymce"": ""5.10.9"", ""yup"": ""0.32.11""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,True,True,True,73,"{""total_duration"": ""15781 minutes 14 seconds"", ""checks"": [{""name"": ""tests"", ""duration"": ""3 minutes 27 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 4 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2020-08-11 23:04:15,master,A React-based micro frontend for the Open edX discussion forums.,8934,106,True,False,False,False,False,False,False,2026-06-03 10:49:51,GNU AGPLv3,17,True,0,0,6378,909185,2014,0,0,False,False,False,False,True,False,False,@edx/frontend-app-discussions,openedx,0,"['https://edx.github.io/frontend-platform/module-Internationalization.html: 404', 'https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404']",True,"['https://codecov.io/gh/openedx/frontend-app-discussions/branch/master/graph/badge.svg?token=3z7XvuzTq3', 'https://codecov.io/gh/openedx/frontend-app-discussions', 'https://img.shields.io/badge/license-AGPL-informational', 'https://github.com/openedx/frontend-app-discussions/blob/master/LICENSE', 'https://github.com/openedx/devstack', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-discussions.git', 'https://github.com/openedx/frontend-plugin-framework', 'https://discuss.openedx.org', 'https://github.com/openedx/frontend-app-discussions/issues', 'https://openedx.org/getting-help', 'https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html', 'https://github.com/openedx/frontend-app-discussions/blob/master/.github/pull_request_template.md', 'https://openedx.org/code-of-conduct/', 'https://github.com/openedx/frontend-app-discussions/blob/master/docs/decisions/0002-feature-based-application-organization.rst']",True,True,False,False,,,True,2026-03-30,2024-01-08,7,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/edx-submissions,,,,True,2026-06-08,True,True,False,False,106,0,[],0,,0,0,,,10,"[""django==5.2.14"", ""django-model-utils==5.0.0"", ""jsonfield==3.2.0"", ""djangorestframework==3.17.1"", ""pytz==2026.2"", ""pyyaml==6.0.3"", ""edx-django-release-util==1.5.0"", ""asgiref==3.11.1"", ""six==1.17.0"", ""sqlparse==0.5.5""]",106,"[""pytest-cov==7.1.0"", ""pytest==9.0.3"", ""snowballstemmer==3.1.0"", ""six==1.17.0"", ""coveralls==4.1.0"", ""jinja2==3.1.6"", ""pycodestyle==2.14.0"", ""isort==8.0.1"", ""python-dateutil==2.9.0.post0"", ""filelock==3.29.0"", ""coverage[toml]==7.14.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""typing-extensions==4.15.0"", ""factory-boy==3.3.3"", ""djangorestframework==3.17.1"", ""attrs==26.1.0"", ""sphinxcontrib-jsmath==1.0.1"", ""iniconfig==2.3.0"", ""sphinx-book-theme==1.2.0"", ""sqlparse==0.5.5"", ""markupsafe==3.0.3"", ""edx-ccx-keys==2.0.2"", ""jsonfield==3.2.0"", ""django-waffle==5.0.0"", ""code-annotations==3.0.0"", ""rich==15.0.0"", ""django-model-utils==5.0.0"", ""pymongo==4.17.0"", ""pockets==0.9.1"", ""wheel==0.47.0"", ""pluggy==1.6.0"", ""platformdirs==4.9.6"", ""urllib3==2.7.0"", ""stevedore==5.8.0"", ""pyproject-api==1.10.0"", ""setuptools==82.0.1"", ""sphinxcontrib-napoleon==0.7"", ""dnspython==2.8.0"", ""sphinxcontrib-applehelp==2.0.0"", ""typer==0.26.0"", ""markdown-it-py==4.2.0"", ""build==1.5.0"", ""dill==0.4.1"", ""pytz==2026.2"", ""tomlkit==0.15.0"", ""pydata-sphinx-theme==0.16.1"", ""pylint-plugin-utils==0.9.0"", ""accessible-pygments==0.0.5"", ""charset-normalizer==3.4.7"", ""babel==2.18.0"", ""faker==40.19.1"", ""distlib==0.4.0"", ""python-slugify==8.0.4"", ""edx-django-release-util==1.5.0"", ""cffi==2.0.0"", ""click-log==0.4.0"", ""pycparser==3.0"", ""mccabe==0.7.0"", ""asgiref==3.11.1"", ""sphinxcontrib-devhelp==2.0.0"", ""text-unidecode==1.3"", ""ddt==1.7.2"", ""pylint-celery==0.3"", ""edx-opaque-keys[django]==4.0.0"", ""pytest-django==4.12.0"", ""soupsieve==2.8"", ""pip-tools==7.5.3"", ""pylint-django==2.7.0"", ""edx-lint==6.1.0"", ""sphinxcontrib-qthelp==2.0.0"", ""edx-django-utils==8.0.1"", ""docutils==0.22.4"", ""click==8.4.1"", ""idna==3.16"", ""fastavro==1.12.2"", ""mdurl==0.1.2"", ""tomli-w==1.2.0"", ""django==5.2.14"", ""roman-numerals==4.1.0"", ""pyproject-hooks==1.2.0"", ""virtualenv==21.3.3"", ""packaging==26.2"", ""sphinx==9.1.0"", ""shellingham==1.5.4"", ""colorama==0.4.6"", ""annotated-doc==0.0.4"", ""openedx-events==10.2.0"", ""beautifulsoup4==4.14.3"", ""tox==4.54.0"", ""imagesize==2.0.0"", ""pynacl==1.6.2"", ""alabaster==1.0.0"", ""freezegun==1.5.5"", ""django-crum==0.7.9"", ""sphinxcontrib-serializinghtml==2.0.0"", ""psutil==7.2.2"", ""astroid==4.0.4"", ""cachetools==7.1.4"", ""mock==5.2.0"", ""python-discovery==1.3.1"", ""pylint==4.0.5"", ""requests==2.34.2"", ""certifi==2026.5.20"", ""pygments==2.20.0"", ""pip==26.1.1"", ""pyyaml==6.0.3""]",8,"[""django-waffle"", ""edx-django-utils"", ""factory-boy"", ""code-annotations"", ""edx-django-release-util"", ""pylint-django"", ""pytest-django"", ""djangorestframework""]",11,"[""django-waffle"", ""edx-django-utils"", ""factory-boy"", ""django-crum"", ""code-annotations"", ""edx-django-release-util"", ""pylint-django"", ""django-model-utils"", ""jsonfield"", ""pytest-django"", ""djangorestframework""]",4,"[""edx-django-utils"", ""django-waffle"", ""edx-django-release-util"", ""code-annotations""]",True,,True,False,True,False,False,False,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,15,"{""total_duration"": ""1 minutes 20 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""1 minutes 20 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42-drf315)"", ""duration"": ""1 minutes 19 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drf315)"", ""duration"": ""1 minutes 15 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42-drflatest)"", ""duration"": ""1 minutes 12 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 8 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 56 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 39 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 28 seconds""}]}",Other,2014-06-05 18:19:35,master,API for creating submissions and scores,699,38,True,False,False,False,False,False,False,2026-06-05 04:58:39,GNU AGPLv3,1,True,0,0,705,0,4634,337220,0,False,False,False,False,True,False,False,,openedx,4,"['https://docs.openedx.org/projects/edx-submissions: 404', 'https://openedx.org/getting-help: 403', 'https://openedx.org/slack: 403', 'https://openedx.org/r/how-to-contribute: 403', 'https://openedx.org/code-of-conduct/: 403']",True,"['https://discuss.openedx.org', 'https://github.com/openedx/edx-submissions/issues', 'https://openedx.slack.com/', 'https://backstage.openedx.org/catalog/default/component/edx-submissions', 'https://img.shields.io/pypi/v/edx-submissions.svg', 'https://pypi.python.org/pypi/edx-submissions/', 'https://github.com/openedx/edx-submissions/actions/workflows/ci.yml/badge.svg?branch=master', 'https://github.com/openedx/edx-submissions/actions/workflows/ci.yml?branch=master', 'https://codecov.io/github/openedx/edx-submissions/coverage.svg?branch=master', 'https://codecov.io/github/openedx/edx-submissions?branch=master', 'https://readthedocs.org/projects/edx-submissions/badge/?version=latest', 'https://img.shields.io/pypi/pyversions/edx-submissions.svg', 'https://img.shields.io/github/license/openedx/edx-submissions.svg', 'https://github.com/openedx/edx-submissions/blob/master/LICENSE.txt', 'https://img.shields.io/badge/Status-Experimental-yellow', 'https://img.shields.io/badge/Status-Maintained-brightgreen', 'https://img.shields.io/badge/Status-Deprecated-orange', 'https://img.shields.io/badge/Status-Unsupported-red']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,True,False,True,,False,edx-submissions,"['3', '3.12']",http://github.com/openedx/edx-submissions.git,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/taxonomy-connector,,,,True,2026-06-08,True,True,False,False,146,0,[],0,,0,0,,,110,"[""billiard==4.2.4"", ""djangorestframework==3.17.1"", ""snowballstemmer==3.0.1"", ""mccabe==0.7.0"", ""psutil==7.2.2"", ""django-ses==4.7.2"", ""click-plugins==1.1.1.2"", ""edx-ccx-keys==2.0.2"", ""prompt-toolkit==3.0.52"", ""build==1.5.0"", ""tomli-w==1.2.0"", ""stevedore==5.7.0"", ""polib==1.2.0"", ""sqlparse==0.5.5"", ""pycodestyle==2.14.0"", ""edx-django-utils==8.0.1"", ""openedx-events==11.2.0"", ""python-dateutil==2.9.0.post0"", ""tomlkit==0.15.0"", ""pytest-cov==7.1.0"", ""pylint-django==2.7.0"", ""pycparser==3.0"", ""edx-opaque-keys[django]==4.0.0"", ""algoliasearch==1.20.0"", ""colorama==0.4.6"", ""click-repl==0.3.0"", ""idna==3.14"", ""amqp==5.3.1"", ""pylint-celery==0.3"", ""responses==0.26.0"", ""pylint==4.0.5"", ""django-object-actions==5.0.1"", ""pyjwt==2.12.1"", ""python-discovery==1.3.0"", ""pynacl==1.6.2"", ""code-annotations==3.0.0"", ""click-log==0.4.0"", ""tzlocal==5.3.1"", ""pytz==2026.2"", ""pyyaml==6.0.3"", ""click-didyoumean==0.3.1"", ""fastavro==1.12.2"", ""cachetools==7.1.1"", ""asgiref==3.11.1"", ""pytest==9.0.3"", ""celery==5.6.3"", ""filelock==3.29.0"", ""edx-lint==6.1.0"", ""click==8.3.3"", ""testfixtures==11.0.0"", ""django==5.2.14"", ""dnspython==2.8.0"", ""pytest-django==4.12.0"", ""django-solo==2.5.1"", ""mock==5.2.0"", ""edx-rest-api-client==7.0.0"", ""wheel==0.47.0"", ""diff-cover==10.2.0"", ""factory-boy==3.3.3"", ""attrs==26.1.0"", ""six==1.17.0"", ""pyproject-api==1.10.0"", ""django-crum==0.7.9"", ""packaging==26.2"", ""pymongo==4.17.0"", ""chardet==7.4.3"", ""s3transfer==0.17.0"", ""pluggy==1.6.0"", ""urllib3==2.7.0"", ""jinja2==3.1.6"", ""vine==5.1.0"", ""pydocstyle==6.3.0"", ""pip-tools==7.5.3"", ""edx-i18n-tools==2.0.0"", ""lxml-html-clean==0.4.4"", ""kombu==5.6.2"", ""virtualenv==21.3.1"", ""path==16.16.0"", ""cffi==2.0.0"", ""django-model-utils==5.0.0"", ""coverage[toml]==7.14.0"", ""tox==4.53.1"", ""typing-extensions==4.15.0"", ""pylint-plugin-utils==0.9.0"", ""ddt==1.7.2"", ""platformdirs==4.9.6"", ""lxml[html-clean]==6.1.0"", ""astroid==4.0.4"", ""pygments==2.20.0"", ""python-slugify==8.0.4"", ""soupsieve==2.8.3"", ""markupsafe==3.0.3"", ""tzdata==2026.2"", ""distlib==0.4.0"", ""isort==8.0.1"", ""faker==40.15.0"", ""charset-normalizer==3.4.7"", ""pyproject-hooks==1.2.0"", ""iniconfig==2.3.0"", ""requests==2.33.1"", ""beautifulsoup4==4.14.3"", ""wcwidth==0.7.0"", ""jmespath==1.1.0"", ""django-waffle==5.0.0"", ""django-filter==25.2"", ""certifi==2026.4.22"", ""text-unidecode==1.3"", ""boto3==1.43.6"", ""dill==0.4.1"", ""botocore==1.43.6""]",146,"[""billiard==4.2.4"", ""djangorestframework==3.17.1"", ""roman-numerals==4.1.0"", ""snowballstemmer==3.0.1"", ""mccabe==0.7.0"", ""readme-renderer==44.0"", ""psutil==7.2.2"", ""django-ses==4.7.2"", ""alabaster==1.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""click-plugins==1.1.1.2"", ""edx-ccx-keys==2.0.2"", ""prompt-toolkit==3.0.52"", ""build==1.5.0"", ""tomli-w==1.2.0"", ""stevedore==5.7.0"", ""polib==1.2.0"", ""sqlparse==0.5.5"", ""pycodestyle==2.14.0"", ""edx-django-utils==8.0.1"", ""sphinxcontrib-qthelp==2.0.0"", ""restructuredtext-lint==2.0.2"", ""accessible-pygments==0.0.5"", ""openedx-events==11.2.0"", ""python-dateutil==2.9.0.post0"", ""tomlkit==0.15.0"", ""keyring==25.7.0"", ""pytest-cov==7.1.0"", ""pylint-django==2.7.0"", ""pycparser==3.0"", ""edx-opaque-keys[django]==4.0.0"", ""doc8==2.0.0"", ""algoliasearch==1.20.0"", ""colorama==0.4.6"", ""click-repl==0.3.0"", ""idna==3.14"", ""amqp==5.3.1"", ""pylint-celery==0.3"", ""responses==0.26.0"", ""setuptools==82.0.1"", ""twine==6.2.0"", ""pylint==4.0.5"", ""django-object-actions==5.0.1"", ""pyjwt==2.12.1"", ""python-discovery==1.3.0"", ""pynacl==1.6.2"", ""code-annotations==3.0.0"", ""click-log==0.4.0"", ""markdown-it-py==4.2.0"", ""tzlocal==5.3.1"", ""pytz==2026.2"", ""pyyaml==6.0.3"", ""click-didyoumean==0.3.1"", ""fastavro==1.12.2"", ""cryptography==48.0.0"", ""id==1.6.1"", ""more-itertools==11.0.2"", ""cachetools==7.1.1"", ""asgiref==3.11.1"", ""pytest==9.0.3"", ""jaraco-context==6.1.2"", ""celery==5.6.3"", ""nh3==0.3.5"", ""filelock==3.29.0"", ""pydata-sphinx-theme==0.16.1"", ""edx-lint==6.1.0"", ""click==8.3.3"", ""testfixtures==11.0.0"", ""django==5.2.14"", ""dnspython==2.8.0"", ""pytest-django==4.12.0"", ""django-solo==2.5.1"", ""mock==5.2.0"", ""edx-rest-api-client==7.0.0"", ""secretstorage==3.5.0"", ""wheel==0.47.0"", ""diff-cover==10.2.0"", ""factory-boy==3.3.3"", ""sphinx==9.1.0"", ""attrs==26.1.0"", ""six==1.17.0"", ""pyproject-api==1.10.0"", ""requests-toolbelt==1.0.0"", ""django-crum==0.7.9"", ""docutils==0.21.2"", ""packaging==26.2"", ""pymongo==4.17.0"", ""chardet==7.4.3"", ""s3transfer==0.17.0"", ""pluggy==1.6.0"", ""urllib3==2.7.0"", ""jinja2==3.1.6"", ""vine==5.1.0"", ""pydocstyle==6.3.0"", ""pip-tools==7.5.3"", ""edx-i18n-tools==2.0.0"", ""lxml-html-clean==0.4.4"", ""kombu==5.6.2"", ""virtualenv==21.3.1"", ""sphinxcontrib-applehelp==2.0.0"", ""imagesize==2.0.0"", ""path==16.16.0"", ""jeepney==0.9.0"", ""mdurl==0.1.2"", ""cffi==2.0.0"", ""django-model-utils==5.0.0"", ""coverage[toml]==7.14.0"", ""tox==4.53.1"", ""typing-extensions==4.15.0"", ""pylint-plugin-utils==0.9.0"", ""ddt==1.7.2"", ""rich==15.0.0"", ""platformdirs==4.9.6"", ""pip==26.1.1"", ""jaraco-classes==3.4.0"", ""lxml[html-clean]==6.1.0"", ""jaraco-functools==4.4.0"", ""sphinxcontrib-devhelp==2.0.0"", ""astroid==4.0.4"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pygments==2.20.0"", ""python-slugify==8.0.4"", ""soupsieve==2.8.3"", ""babel==2.18.0"", ""markupsafe==3.0.3"", ""tzdata==2026.2"", ""distlib==0.4.0"", ""isort==8.0.1"", ""faker==40.15.0"", ""charset-normalizer==3.4.7"", ""pyproject-hooks==1.2.0"", ""iniconfig==2.3.0"", ""requests==2.33.1"", ""beautifulsoup4==4.14.3"", ""wcwidth==0.7.0"", ""rfc3986==2.0.0"", ""jmespath==1.1.0"", ""django-waffle==5.0.0"", ""django-filter==25.2"", ""certifi==2026.4.22"", ""sphinx-book-theme==1.2.0"", ""text-unidecode==1.3"", ""sphinxcontrib-jsmath==1.0.1"", ""boto3==1.43.6"", ""dill==0.4.1"", ""botocore==1.43.6""]",12,"[""django-waffle"", ""edx-django-utils"", ""djangorestframework"", ""edx-rest-api-client"", ""django-solo"", ""edx-i18n-tools"", ""pylint-django"", ""factory-boy"", ""pytest-django"", ""django-object-actions"", ""django-filter"", ""code-annotations""]",15,"[""django-model-utils"", ""django-waffle"", ""edx-django-utils"", ""djangorestframework"", ""edx-rest-api-client"", ""django-solo"", ""edx-i18n-tools"", ""pylint-django"", ""factory-boy"", ""pytest-django"", ""django-object-actions"", ""django-ses"", ""django-crum"", ""django-filter"", ""code-annotations""]",7,"[""django-waffle"", ""edx-django-utils"", ""edx-rest-api-client"", ""django-solo"", ""edx-i18n-tools"", ""django-filter"", ""code-annotations""]",False,,True,False,True,True,False,True,True,True,True,True,False,False,True,True,True,True,True,False,True,True,True,36,"{""total_duration"": ""7898 minutes 5 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.12, django52)"", ""duration"": ""1 minutes 25 seconds""}, {""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 24 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""1 minutes 10 seconds""}, {""name"": ""check migrations (ubuntu-latest, 3.12)"", ""duration"": ""0 minutes 50 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, docs)"", ""duration"": ""0 minutes 42 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, pii-annotations)"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""push"", ""duration"": ""0 minutes 19 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2020-08-28 15:55:21,master,A python package that communicates with 3rd party taxonomy vendors,1054,18,True,False,False,False,False,False,False,2026-06-08 00:43:08,GNU AGPLv3,15,True,983,0,3100,1016,3852,701934,0,True,True,False,False,True,False,False,,openedx,2,[],True,"['https://img.shields.io/pypi/v/taxonomy-connector.svg', 'https://pypi.org/project/taxonomy-connector/', 'http://codecov.io/github/openedx/taxonomy-connector/coverage.svg?branch=master', 'http://codecov.io/github/openedx/taxonomy-connector?branch=master', 'https://github.com/openedx/taxonomy-connector/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/taxonomy-connector/actions?query=workflow%3A%22Python+CI%22', 'https://open.edx.org/getting-help']",True,True,False,False,,,False,,,,False,True,False,True,,False,taxonomy-connector,"['3', '3.12']",https://github.com/openedx/taxonomy-connector,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/codejail-includes,,,,True,2026-06-08,True,True,False,False,93,0,[],0,,0,0,,,0,[],93,"[""pyproject-api==1.10.0"", ""pluggy==1.6.0"", ""jaraco-functools==4.4.0"", ""accessible-pygments==0.0.5"", ""jinja2==3.1.6"", ""pylint-plugin-utils==0.9.0"", ""six==1.17.0"", ""sphinxcontrib-devhelp==2.0.0"", ""nh3==0.3.3"", ""tomlkit==0.14.0"", ""soupsieve==2.8.3"", ""doc8==2.0.0"", ""beautifulsoup4==4.14.3"", ""sphinx-book-theme==1.1.4"", ""sphinxcontrib-qthelp==2.0.0"", ""sphinxcontrib-applehelp==2.0.0"", ""jeepney==0.9.0"", ""markupsafe==3.0.3"", ""sphinx==9.1.0"", ""pylint==4.0.5"", ""filelock==3.25.0"", ""stevedore==5.7.0"", ""astroid==4.0.4"", ""charset-normalizer==3.4.5"", ""pylint-django==2.7.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""edx-lint==5.6.0"", ""code-annotations==2.3.2"", ""docutils==0.21.2"", ""pytest==9.0.2"", ""chardet==7.0.1"", ""id==1.6.1"", ""urllib3==2.6.3"", ""setuptools==82.0.0"", ""colorama==0.4.6"", ""pyproject-hooks==1.2.0"", ""roman-numerals==4.1.0"", ""docutils==0.22.4"", ""distlib==0.4.0"", ""imagesize==2.0.0"", ""twine==6.2.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""requests-toolbelt==1.0.0"", ""more-itertools==10.8.0"", ""requests==2.32.5"", ""restructuredtext-lint==2.0.2"", ""typing-extensions==4.15.0"", ""babel==2.18.0"", ""diff-cover==10.2.0"", ""python-slugify==8.0.4"", ""pip==26.0.1"", ""coverage[toml]==7.13.4"", ""virtualenv==21.1.0"", ""markdown-it-py==4.0.0"", ""jaraco-context==6.1.0"", ""pylint-celery==0.3"", ""pygments==2.19.2"", ""alabaster==1.0.0"", ""pip-tools==7.5.3"", ""mdurl==0.1.2"", ""certifi==2026.2.25"", ""pydocstyle==6.3.0"", ""secretstorage==3.5.0"", ""text-unidecode==1.3"", ""mccabe==0.7.0"", ""wheel==0.46.3"", ""isort==8.0.1"", ""cffi==2.0.0"", ""tox==4.48.1"", ""pycodestyle==2.14.0"", ""pydata-sphinx-theme==0.15.4"", ""pytest-cov==7.0.0"", ""pyyaml==6.0.3"", ""python-discovery==1.1.0"", ""click-log==0.4.0"", ""build==1.4.0"", ""idna==3.11"", ""cryptography==46.0.5"", ""cachetools==7.0.3"", ""platformdirs==4.9.4"", ""rich==14.3.3"", ""click==8.3.1"", ""sphinxcontrib-jsmath==1.0.1"", ""keyring==25.7.0"", ""pycparser==3.0"", ""snowballstemmer==3.0.1"", ""dill==0.4.1"", ""iniconfig==2.3.0"", ""jaraco-classes==3.4.0"", ""tomli-w==1.2.0"", ""rfc3986==2.0.0"", ""readme-renderer==44.0"", ""packaging==26.0""]",2,"[""pylint-django"", ""code-annotations""]",2,"[""pylint-django"", ""code-annotations""]",1,"[""code-annotations""]",False,,True,False,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,False,True,True,True,7,"{""total_duration"": ""0 minutes 28 seconds"", ""checks"": [{""name"": ""tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 28 seconds""}, {""name"": ""tests (ubuntu-latest, 3.12, default)"", ""duration"": ""0 minutes 24 seconds""}]}",Other,2022-05-16 18:54:49,main,A package that is included during sandboxed codejail operations.,91,7,True,False,False,False,False,False,False,2026-05-30 15:03:44,GNU AGPLv3,5,True,0,0,0,0,2602,55185,0,True,True,False,False,False,False,False,,openedx,0,"['https://openedx-slack-invite.herokuapp.com/: 404', 'https://github.com/openedx/sandboxcodejail-includes/workflows/Python%20CI/badge.svg?branch=main: 404', 'https://github.com/openedx/codejail-includes/actions: 504', 'https://github.com/openedx/codejail-includes/blob/main/LICENSE: 504']",True,"['https://openedx.atlassian.net/browse/BOM-2579', 'https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://discuss.openedx.org', 'https://openedx.slack.com/', 'https://openedx.org/getting-help', 'https://img.shields.io/pypi/v/codejail-includes.svg', 'https://pypi.python.org/pypi/codejail-includes/', 'https://img.shields.io/github/license/openedx/sandbox-packages.svg']",True,True,False,False,,,False,,,,False,False,False,True,,False,codejail-includes,"['3', '3.12']",https://github.com/openedx/codejail-includes,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/api-doc-tools,,,,True,2026-06-08,True,True,False,False,107,0,[],0,,0,0,,,11,"[""uritemplate==4.2.0"", ""django==5.2.12"", ""inflection==0.5.1"", ""asgiref==3.11.1"", ""packaging==26.0"", ""djangorestframework==3.16.1"", ""pyyaml==6.0.3"", ""drf-yasg==1.21.15"", ""sqlparse==0.5.5"", ""pytz==2026.1.post1"", ""setuptools==82.0.0""]",107,"[""sphinxcontrib-applehelp==2.0.0"", ""pylint-django==2.7.0"", ""tomli-w==1.2.0"", ""click-log==0.4.0"", ""jaraco-context==6.1.0"", ""pycodestyle==2.14.0"", ""doc8==2.0.0"", ""pytz==2026.1.post1"", ""pip==26.0.1"", ""inflection==0.5.1"", ""pycparser==3.0"", ""pyproject-api==1.10.0"", ""djangorestframework==3.16.1"", ""sphinxcontrib-htmlhelp==2.1.0"", ""markupsafe==3.0.3"", ""packaging==26.0"", ""filelock==3.25.0"", ""nh3==0.3.3"", ""pylint-plugin-utils==0.9.0"", ""edx-lint==5.6.0"", ""babel==2.18.0"", ""alabaster==1.0.0"", ""six==1.17.0"", ""charset-normalizer==3.4.5"", ""cryptography==46.0.5"", ""tox==4.48.1"", ""sphinxcontrib-devhelp==2.0.0"", ""keyring==25.7.0"", ""colorama==0.4.6"", ""cffi==2.0.0"", ""beautifulsoup4==4.14.3"", ""cachetools==7.0.3"", ""build==1.4.0"", ""jeepney==0.9.0"", ""sqlparse==0.5.5"", ""tomlkit==0.14.0"", ""wheel==0.46.3"", ""chardet==7.0.1"", ""requests-toolbelt==1.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""accessible-pygments==0.0.5"", ""lxml[html-clean]==6.0.2"", ""pyyaml==6.0.3"", ""rich==14.3.3"", ""twine==6.2.0"", ""dill==0.4.1"", ""typing-extensions==4.15.0"", ""asgiref==3.11.1"", ""jaraco-classes==3.4.0"", ""iniconfig==2.3.0"", ""pydata-sphinx-theme==0.15.4"", ""more-itertools==10.8.0"", ""lxml-html-clean==0.4.4"", ""python-discovery==1.1.0"", ""virtualenv==21.1.0"", ""pytest-cov==7.0.0"", ""stevedore==5.7.0"", ""jinja2==3.1.6"", ""pylint-celery==0.3"", ""polib==1.2.0"", ""isort==8.0.1"", ""pytest-django==4.12.0"", ""diff-cover==10.2.0"", ""idna==3.11"", ""restructuredtext-lint==2.0.2"", ""code-annotations==2.3.2"", ""imagesize==2.0.0"", ""sphinx-book-theme==1.1.4"", ""markdown-it-py==4.0.0"", ""pygments==2.19.2"", ""pytest==9.0.2"", ""drf-yasg==1.21.15"", ""coverage[toml]==7.13.4"", ""jaraco-functools==4.4.0"", ""urllib3==2.6.3"", ""id==1.6.1"", ""secretstorage==3.5.0"", ""setuptools==82.0.0"", ""click==8.3.1"", ""pylint==4.0.5"", ""docutils==0.21.2"", ""pip-tools==7.5.3"", ""roman-numerals==4.1.0"", ""mccabe==0.7.0"", ""mdurl==0.1.2"", ""pluggy==1.6.0"", ""astroid==4.0.4"", ""requests==2.32.5"", ""sphinxcontrib-qthelp==2.0.0"", ""pydocstyle==6.3.0"", ""soupsieve==2.8.3"", ""readme-renderer==44.0"", ""uritemplate==4.2.0"", ""pyproject-hooks==1.2.0"", ""rfc3986==2.0.0"", ""certifi==2026.2.25"", ""sphinxcontrib-jsmath==1.0.1"", ""python-slugify==8.0.4"", ""snowballstemmer==3.0.1"", ""sphinx==9.1.0"", ""django==5.2.12"", ""docutils==0.22.4"", ""text-unidecode==1.3"", ""path==16.16.0"", ""distlib==0.4.0"", ""edx-i18n-tools==1.9.0"", ""platformdirs==4.9.4""]",5,"[""djangorestframework"", ""edx-i18n-tools"", ""pylint-django"", ""code-annotations"", ""pytest-django""]",6,"[""djangorestframework"", ""edx-i18n-tools"", ""pylint-django"", ""drf-yasg"", ""code-annotations"", ""pytest-django""]",2,"[""code-annotations"", ""edx-i18n-tools""]",True,,True,True,True,False,False,True,True,True,True,True,True,False,True,True,True,True,True,True,True,True,True,24,"{""total_duration"": ""6727 minutes 37 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 17 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, quality)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django52-drflatest)"", ""duration"": ""0 minutes 40 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}]}",Other,2019-10-29 19:55:09,master,Tools for writing and generating API documentation for edX REST APIs,431,16,True,False,False,False,False,False,False,2026-06-04 05:54:45,Apache License 2.0,12,True,0,0,0,0,5751,46803,0,True,True,False,False,True,False,False,,openedx,3,[],True,"['https://www.django-rest-framework.org/', 'https://github.com/axnsan12/drf-yasg', 'https://swagger.io/docs/specification/about/', 'https://open.edx.org/', 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md', 'https://open.edx.org/getting-help', 'https://img.shields.io/pypi/v/edx-api-doc-tools.svg', 'https://pypi.python.org/pypi/edx-api-doc-tools/', 'https://github.com/openedx/api-doc-tools/workflows/Python%20CI/badge.svg?branch=master', 'https://github.com/openedx/api-doc-tools/actions?query=workflow%3A%22Python+CI%22', 'http://codecov.io/github/edx/api-doc-tools/coverage.svg?branch=master', 'http://codecov.io/github/edx/api-doc-tools?branch=master', 'https://readthedocs.org/projects/edx-api-doc-tools/badge/?version=latest', 'http://edx-api-doc-tools.readthedocs.io/en/latest/', 'https://img.shields.io/pypi/pyversions/edx-api-doc-tools.svg', 'https://img.shields.io/github/license/edx/api-doc-tools.svg', 'https://github.com/openedx/api-doc-tools/blob/master/LICENSE.txt']",True,True,False,False,,,False,,,,False,True,False,True,,False,edx-api-doc-tools,"['3', '3.12']",https://github.com/openedx/api-doc-tools,True,True,True,False,False,False,False,False,False,[],[],,[] +openedx/django-require,,,,False,2026-06-08,True,True,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,True,False,True,False,False,False,False,True,True,True,False,False,False,False,False,True,True,False,True,True,True,2,"{""total_duration"": ""1 minutes 4 seconds"", ""checks"": [{""name"": ""Tests (ubuntu-latest, 3.11, django42)"", ""duration"": ""1 minutes 3 seconds""}, {""name"": ""Tests (ubuntu-latest, 3.12, django42)"", ""duration"": ""1 minutes 0 seconds""}]}",Other,2022-09-07 14:36:46,master,Legacy fork of a Django staticfiles post-processor for optimizing with RequireJS.,37199,4,True,False,False,False,True,False,False,2026-05-30 14:54:07,Apache License 2.0,0,True,0,0,0,1307550,0,31119,0,False,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/django-require/actions: 504', 'https://github.com/openedx/edx-platform: 504', 'https://github.com/edx/django-require: 504', 'http://django-storages.readthedocs.org/en/latest/: 429', 'https://github.com/etianen/django-require-s3: 504', 'https://github.com/collab-project/django-require-license: 504', 'http://github.com/etianen/django-require: 504', 'http://www.etianen.com/: 504', 'http://twitter.com/etianen: 520', 'http://www.google.com/profiles/david.etianen: 404']",False,"['https://img.shields.io/pypi/v/openedx-django-require.svg', 'https://pypi.python.org/project/openedx-django-require/', 'https://github.com/openedx/django-require/workflows/Python%20CI/badge.svg?branch=main', 'https://codecov.io/github/openedx/django-require/coverage.svg?branch=main', 'https://codecov.io/github/openedx/django-require?branch=main', 'http://requirejs.org/', 'https://github.com/vtemian/django-require', 'https://github.com/etianen/django-require', 'https://github.com/openedx/django-require/releases/tag/final-bsd-3c-contribution', 'https://openedx.org/r/how-to-contribute', 'https://openedx.org/code-of-conduct/', 'https://backstage.openedx.org/catalog/default/component/django-require', 'https://github.com/requirejs/almond', 'http://groups.google.com/group/django-require']",True,True,False,False,,,False,,,,False,False,False,False,,False,openedx-django-require,"['3.11', '3.12']",https://github.com/etianen/django-require,True,False,True,False,False,False,False,False,False,[],[],,[] +openedx/openedx-app-foundation-ios,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,3,"{""total_duration"": """", ""checks"": []}",Other,2024-10-07 11:30:41,main,,74,5,True,False,False,False,False,False,False,2026-05-30 15:29:28,Apache License 2.0,0,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,['https://github.com/openedx/openedx-app-foundation-ios.git'],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/frontend-app-learning,,,,False,2026-06-08,True,True,False,False,49,0,,0,{},38,11,"{""@openedx/frontend-build"": ""^14.6.6"", ""@pact-foundation/pact"": ""^13.0.0"", ""@testing-library/jest-dom"": ""^6.6.3"", ""@testing-library/react"": ""^16.2.0"", ""@testing-library/user-event"": ""14.6.1"", ""axios-mock-adapter"": ""2.1.0"", ""bundlewatch"": ""^0.4.0"", ""eslint-import-resolver-webpack"": ""^0.13.9"", ""jest-when"": ""^3.6.0"", ""rosie"": ""2.1.1"", ""ts-jest"": ""29.1.4""}","{""@edx/brand"": ""npm:@openedx/brand-openedx@^1.2.3"", ""@edx/browserslist-config"": ""1.5.1"", ""@edx/frontend-component-footer"": ""^14.6.0"", ""@edx/frontend-component-header"": ""^8.2.1"", ""@edx/frontend-lib-special-exams"": ""^4.0.0"", ""@edx/frontend-platform"": ""^8.7.0"", ""@edx/openedx-atlas"": ""^0.7.0"", ""@fortawesome/free-brands-svg-icons"": ""5.15.4"", ""@fortawesome/free-regular-svg-icons"": ""5.15.4"", ""@fortawesome/free-solid-svg-icons"": ""5.15.4"", ""@fortawesome/react-fontawesome"": ""^0.1.4"", ""@openedx/frontend-plugin-framework"": ""^1.7.0"", ""@openedx/paragon"": ""^23.4.5"", ""@popperjs/core"": ""2.11.8"", ""@reduxjs/toolkit"": ""1.9.7"", ""buffer"": ""^6.0.3"", ""classnames"": ""2.5.1"", ""copy-webpack-plugin"": ""^12.0.0"", ""joi"": ""^17.11.0"", ""js-cookie"": ""3.0.5"", ""lodash"": ""^4.17.21"", ""lodash.camelcase"": ""4.3.0"", ""postcss-loader"": ""^8.1.1"", ""prop-types"": ""15.8.1"", ""query-string"": ""^7.1.3"", ""react"": ""^18.3.1"", ""react-dom"": ""^18.3.1"", ""react-helmet"": ""6.1.0"", ""react-redux"": ""7.2.9"", ""react-router"": ""6.15.0"", ""react-router-dom"": ""6.15.0"", ""react-share"": ""4.4.1"", ""redux"": ""4.2.1"", ""reselect"": ""4.1.8"", ""sass"": ""^1.79.3"", ""sass-loader"": ""^16.0.2"", ""source-map-loader"": ""^5.0.0"", ""truncate-html"": ""1.0.4""}",0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,True,True,False,True,False,False,False,False,False,False,False,True,True,92,"{""total_duration"": ""4882 minutes 18 seconds"", ""checks"": [{""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 59 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""-1 minutes 51 seconds""}]}",Other,2019-04-30 20:28:43,master,"Front-end for the Open edX course experience, implemented using React and Paragon.",20773,323,True,False,False,False,False,False,False,2026-06-08 01:20:39,GNU AGPLv3,50,False,128,0,752,1288456,2076,0,0,False,False,False,False,False,False,False,@edx/frontend-app-learning,openedx,0,"['http://local.openedx.io: HTTPConnectionPool(host=\'local.openedx.io\', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(""HTTPConnection(host=\'local.openedx.io\', port=80): Failed to establish a new connection: [Errno 111] Connection refused""))', 'https://support.edx.org/hc/en-us/articles/206503858-How-do-I-verify-my-identity: 404', 'https://twitter.com/openedx: 403']",False,"['https://codecov.io/gh/edx/frontend-app-learning/branch/master/graph/badge.svg?token=3z7XvuzTq3', 'https://codecov.io/gh/edx/frontend-app-learning', 'https://img.shields.io/badge/license-AGPL-informational', 'https://github.com/openedx/frontend-app-account/blob/master/LICENSE', 'https://github.com/overhangio/tutor', 'https://github.com/overhangio/tutor-mfe', 'https://github.com/openedx/frontend-app-learning.git', 'https://github.com/nvm-sh/nvm', 'https://github.com/openedx/frontend-build', 'https://openedx.github.io/frontend-platform/', 'https://github.com/openedx/frontend-plugin-framework', 'https://openedx.atlassian.net/browse/TNL-8678', 'https://support.edx.org/hc/en-us/articles/360000038428-Entering-math-expressions-in-assignments-or-the-calculator', 'https://support.edx.org/hc/en-us/articles/206502008-What-is-a-verified-certificate', 'https://github.com/openedx/frontend-app-learning/issues', 'https://openedx.org/slack', 'https://openedx.slack.com/', 'https://openedx.slack.com/archives/C04BM6YC7A6', 'https://openedx.org/community/connect', 'https://discuss.openedx.org', 'https://openedx.org/r/how-to-contribute', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://openedx.org/code-of-conduct/']",True,True,False,False,,,True,2026-04-06,2022-03-29,9,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/docs.openedx.org,,,,True,2026-06-08,True,True,False,False,59,0,[],0,,0,0,,,53,"[""markupsafe==3.0.3"", ""mdurl==0.1.2"", ""sphinxcontrib-images==1.0.1"", ""click==8.4.1"", ""six==1.17.0"", ""sphinxcontrib-qthelp==2.0.0"", ""typing-extensions==4.15.0"", ""sphinxext-rediraffe==0.3.0"", ""linuxdoc==20260504"", ""sphinxcontrib-applehelp==2.0.0"", ""certifi==2026.5.20"", ""requests==2.34.2"", ""alabaster==1.0.0"", ""charset-normalizer==3.4.7"", ""myst-parser==5.1.0"", ""pyyaml==6.0.3"", ""sphinx==9.1.0"", ""fspath==20230629"", ""idna==3.17"", ""packaging==26.2"", ""sphinxcontrib-youtube==1.5.0"", ""watchfiles==1.2.0"", ""beautifulsoup4==4.14.3"", ""uvicorn==0.48.0"", ""sphinx-design==0.7.0"", ""colorama==0.4.6"", ""docutils==0.22.4"", ""sphinx-book-theme==1.2.0"", ""sphinx-notfound-page==1.1.0"", ""markdown-it-py==4.2.0"", ""sphinx-copybutton==0.5.2"", ""pydata-sphinx-theme==0.16.1"", ""snowballstemmer==3.1.0"", ""mdit-py-plugins==0.6.1"", ""sphinx-tags==0.4"", ""soupsieve==2.8.4"", ""imagesize==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""accessible-pygments==0.0.5"", ""babel==2.18.0"", ""h11==0.16.0"", ""roman-numerals==4.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""jinja2==3.1.6"", ""anyio==4.13.0"", ""sphinx-autobuild==2025.8.25"", ""websockets==16.0"", ""sphinxemoji==0.3.2"", ""sphinxcontrib-jsmath==1.0.1"", ""urllib3==2.7.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pygments==2.20.0"", ""starlette==1.2.1""]",59,"[""markupsafe==3.0.3"", ""mdurl==0.1.2"", ""sphinxcontrib-images==1.0.1"", ""click==8.4.1"", ""six==1.17.0"", ""sphinxcontrib-qthelp==2.0.0"", ""typing-extensions==4.15.0"", ""sphinxext-rediraffe==0.3.0"", ""linuxdoc==20260504"", ""sphinxcontrib-applehelp==2.0.0"", ""certifi==2026.5.20"", ""pip-tools==7.5.3"", ""requests==2.34.2"", ""alabaster==1.0.0"", ""charset-normalizer==3.4.7"", ""myst-parser==5.1.0"", ""pyyaml==6.0.3"", ""sphinx==9.1.0"", ""packaging==26.2"", ""fspath==20230629"", ""idna==3.17"", ""sphinxcontrib-youtube==1.5.0"", ""watchfiles==1.2.0"", ""beautifulsoup4==4.14.3"", ""uvicorn==0.48.0"", ""sphinx-design==0.7.0"", ""colorama==0.4.6"", ""docutils==0.22.4"", ""pyproject-hooks==1.2.0"", ""sphinx-book-theme==1.2.0"", ""sphinx-notfound-page==1.1.0"", ""markdown-it-py==4.2.0"", ""setuptools==82.0.1"", ""sphinx-copybutton==0.5.2"", ""pydata-sphinx-theme==0.16.1"", ""snowballstemmer==3.1.0"", ""mdit-py-plugins==0.6.1"", ""wheel==0.47.0"", ""sphinx-tags==0.4"", ""soupsieve==2.8.4"", ""imagesize==2.0.0"", ""sphinxcontrib-serializinghtml==2.0.0"", ""accessible-pygments==0.0.5"", ""h11==0.16.0"", ""babel==2.18.0"", ""roman-numerals==4.1.0"", ""sphinxcontrib-devhelp==2.0.0"", ""build==1.5.0"", ""jinja2==3.1.6"", ""anyio==4.13.0"", ""sphinx-autobuild==2025.8.25"", ""websockets==16.0"", ""sphinxemoji==0.3.2"", ""sphinxcontrib-jsmath==1.0.1"", ""urllib3==2.7.0"", ""sphinxcontrib-htmlhelp==2.1.0"", ""pygments==2.20.0"", ""pip==26.1.1"", ""starlette==1.2.1""]",0,[],0,[],0,[],False,,False,False,True,False,False,False,True,True,False,True,False,False,False,True,False,False,False,False,True,True,True,14,"{""total_duration"": ""9385 minutes 27 seconds"", ""checks"": [{""name"": ""call-upgrade-python-requirements-workflow / upgrade_requirements"", ""duration"": ""1 minutes 22 seconds""}, {""name"": ""update-pip-graph"", ""duration"": ""0 minutes 47 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 35 seconds""}, {""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2022-03-14 18:35:37,main,Open edX Official Documentation,188469,86,True,False,False,False,False,False,False,2026-06-07 01:14:32,Other,6,False,2585,0,1648,27894,1875,19600,0,True,False,False,False,False,False,False,,openedx,0,"['https://github.com/openedx/docs.openedx.org: 504', 'https://en.wikipedia.org/wiki/ReStructuredText: 403']",False,"['https://docs.openedx.org/en/latest/documentors/how-tos/report_problem_with_docs.html', 'https://docs.openedx.org/en/latest/documentors/quickstarts/first_documentation_pr.html', 'https://docs.openedx.org/en/latest/documentors/quickstarts/update_doc_via_github.html', 'https://docs.openedx.org/en/latest/documentors/quickstarts/quick_start_add_doc.html', 'https://docs.openedx.org/en/latest/documentors/index.html', 'https://github.com/openedx/.github/blob/master/AI_POLICY.md', 'https://docs.openedx.org/', 'https://www.sphinx-doc.org/', 'https://docs.github.com/en/get-started/using-github/github-flow', 'https://docs.openedx.org/en/latest/documentors/how-tos/develop_docs_locally.html']",True,True,False,True,.readthedocs.yaml,2,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/cypress-e2e-tests,,,,False,2026-06-08,True,True,False,False,19,0,,0,{},0,19,"{""@babel/core"": ""^7.29.0"", ""@babel/eslint-parser"": ""^7.28.6"", ""@cypress/grep"": ""^6.0.0"", ""@edx/eslint-config"": ""^4.4.0"", ""cypress"": ""^15.12.0"", ""cypress-failed-log"": ""^2.5.0"", ""cypress-file-upload"": ""^5.0.8"", ""cypress-mochawesome-reporter"": ""^4.0.0"", ""cypress-wait-until"": ""^3.0.1"", ""eslint"": ""^8.57.1"", ""eslint-config-airbnb"": ""^19.0.4"", ""eslint-plugin-cypress"": ""^2.15.2"", ""eslint-plugin-import"": ""^2.32.0"", ""eslint-plugin-jsx-a11y"": ""^6.10.2"", ""eslint-plugin-react"": ""^7.37.5"", ""eslint-plugin-react-hooks"": ""^4.6.2"", ""mochawesome"": ""^7.1.3"", ""mochawesome-merge"": ""^5.1.1"", ""mochawesome-report-generator"": ""^6.2.0""}",{},0,,0,,0,[],0,[],0,[],False,,False,False,True,False,False,False,False,True,True,True,False,True,False,False,False,False,False,False,True,True,True,30,"{""total_duration"": ""12567 minutes 33 seconds"", ""checks"": [{""name"": ""Dependabot"", ""duration"": ""0 minutes 51 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 33 seconds""}, {""name"": ""Dependabot"", ""duration"": ""0 minutes 29 seconds""}, {""name"": ""tests"", ""duration"": ""0 minutes 24 seconds""}, {""name"": ""version-check / version-check"", ""duration"": ""0 minutes 3 seconds""}, {""name"": ""self_assign_by_comment / add_assignee"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / add_label"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""add_remove_labels / remove_label"", ""duration"": ""-1 minutes 53 seconds""}]}",Other,2018-12-11 15:37:22,master,Cypress E2E Tests for Open edX applications,905,31,True,False,False,False,False,False,False,2026-06-03 09:58:58,GNU AGPLv3,7,True,0,283,0,144481,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,"['https://www.cypress.io/', 'https://docs.cypress.io/guides/overview/why-cypress.html', 'https://docs.cypress.io/examples/examples/tutorials.html']",True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],[],[] +openedx/wg-data,,,,False,2026-06-08,False,False,False,False,0,0,,0,,0,0,,,0,,0,,0,[],0,[],0,[],False,,False,False,False,False,False,False,False,True,True,False,False,False,False,False,False,False,False,False,True,True,True,4,"{""total_duration"": ""0 minutes 0 seconds"", ""checks"": [{""name"": ""routeissue / add_and_notify"", ""duration"": ""0 minutes 0 seconds""}, {""name"": ""routeissue / add_label"", ""duration"": ""-1 minutes 52 seconds""}]}",Other,2021-10-28 14:02:24,main,Tracking work and progress of the Open edX Data Working Group,20,3,True,False,False,False,False,False,False,2025-10-30 15:18:44,,1,False,0,0,0,0,0,0,0,False,False,False,False,False,False,False,,openedx,0,[],False,[],True,True,False,False,,,False,,,,False,False,False,False,,False,,[],,False,False,False,False,False,False,False,False,False,[],[],,[] +openedx/openedx-atlas,,,,False,2026-06-08,True,True,False,False,0,0,,0,{},0,0,{},{},0,,0,,0,[],0,[],0,[],False,,True,True,True,False,False,False,True,True,True,True,False,True,False,False,False,True,False,False,True,True,True,2,"{""total_duration"": ""2 minutes 57 seconds"", ""checks"": [{""name"": ""ubuntu-latest-git-2.25.1"", ""duration"": ""2 minutes 57 seconds""}, {""name"": ""ubuntu-22.04-git-2.30.2"", ""duration"": ""2 minutes 52 seconds""}, {""name"": ""ubuntu-22.04-git-2.40.1"", ""duration"": ""2 minutes 49 seconds""}, {""name"": ""shellspec-linux"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""ubuntu-22.04-git-default"", ""duration"": ""0 minutes 38 seconds""}, {""name"": ""shellspec-mac"", ""duration"": ""0 minutes 37 seconds""}, {""name"": ""ubuntu-latest-git-default"", ""duration"": ""0 minutes 34 seconds""}, {""name"": ""Release"", ""duration"": ""0 minutes 21 seconds""}]}",Other,2022-10-19 15:23:27,main,An Open edX CLI tool for moving translation files from openedx-translations,117,12,True,False,False,False,False,False,False,2026-05-29 19:30:13,GNU AGPLv3,1,False,0,0,0,0,1612,1779,56592,False,False,False,False,True,False,False,@edx/openedx-atlas,openedx,0,"['https://www.npmjs.com/package/@edx/openedx-atlas: 403', 'https://github.com/openedx/openedx-atlas/releases/latest/: 504', 'https://github.com/openedx/openedx-atlas/blob/main/atlas: 504', 'https://github.com/openedx/openedx-atlas/releases/latest/download/atlas: 504', 'https://github.com/shellspec/shellspec: 504', 'https://github.com/koalaman/shellcheck: 504', 'https://github.com/ko1nksm/getoptions: 504']",True,"['https://pypi.org/project/openedx-atlas/', 'https://semver.org/', 'https://github.com/semantic-release/semantic-release/', 'https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html', 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+start+contributing+to+the+Open+edX+code+base', 'https://open.edx.org/getting-help']",True,True,False,False,,,True,,,0,False,False,False,False,,False,openedx-atlas,[],https://github.com/openedx/openedx-atlas,False,False,False,False,False,False,False,False,False,[],[],,[] diff --git a/individual_repo_data/dashboard.sql b/individual_repo_data/dashboard.sql index 9e124599..c3ba457b 100644 --- a/individual_repo_data/dashboard.sql +++ b/individual_repo_data/dashboard.sql @@ -1311,6 +1311,194 @@ INSERT INTO "dashboard_main" VALUES('openedx/docs.openedx.org',NULL,NULL,NULL,1, INSERT INTO "dashboard_main" VALUES('openedx/cypress-e2e-tests',NULL,NULL,NULL,0,'2026-06-01',1,1,0,0,19,0,'',0,'{}',0,19,'{"@babel/core": "^7.29.0", "@babel/eslint-parser": "^7.28.6", "@cypress/grep": "^6.0.0", "@edx/eslint-config": "^4.4.0", "cypress": "^15.12.0", "cypress-failed-log": "^2.5.0", "cypress-file-upload": "^5.0.8", "cypress-mochawesome-reporter": "^4.0.0", "cypress-wait-until": "^3.0.1", "eslint": "^8.57.1", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^4.6.2", "mochawesome": "^7.1.3", "mochawesome-merge": "^5.1.1", "mochawesome-report-generator": "^6.2.0"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,1,29,'{"total_duration": "3507 minutes 54 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 51 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "tests", "duration": "0 minutes 24 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2018-12-11 15:37:22','master','Cypress E2E Tests for Open edX applications',902,31,1,0,0,0,0,0,0,'2026-05-28 02:59:20','GNU AGPLv3',6,1,0,283,0,144481,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://www.cypress.io/'', ''https://docs.cypress.io/guides/overview/why-cypress.html'', ''https://docs.cypress.io/examples/examples/tutorials.html'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]','[]','[]'); INSERT INTO "dashboard_main" VALUES('openedx/wg-data',NULL,NULL,NULL,0,'2026-06-01',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,4,'{"total_duration": "0 minutes 0 seconds", "checks": [{"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 52 seconds"}]}','Other','2021-10-28 14:02:24','main','Tracking work and progress of the Open edX Data Working Group',20,3,1,0,0,0,0,0,0,'2025-10-30 15:18:44',NULL,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); INSERT INTO "dashboard_main" VALUES('openedx/openedx-atlas',NULL,NULL,NULL,0,'2026-06-01',1,1,0,0,0,0,'',0,'{}',0,0,'{}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,1,1,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,2,'{"total_duration": "2 minutes 57 seconds", "checks": [{"name": "ubuntu-latest-git-2.25.1", "duration": "2 minutes 57 seconds"}, {"name": "ubuntu-22.04-git-2.30.2", "duration": "2 minutes 52 seconds"}, {"name": "ubuntu-22.04-git-2.40.1", "duration": "2 minutes 49 seconds"}, {"name": "shellspec-linux", "duration": "0 minutes 38 seconds"}, {"name": "ubuntu-22.04-git-default", "duration": "0 minutes 38 seconds"}, {"name": "shellspec-mac", "duration": "0 minutes 37 seconds"}, {"name": "ubuntu-latest-git-default", "duration": "0 minutes 34 seconds"}, {"name": "Release", "duration": "0 minutes 21 seconds"}]}','Other','2022-10-19 15:23:27','main','An Open edX CLI tool for moving translation files from openedx-translations',117,13,1,0,0,0,0,0,0,'2026-05-29 19:30:13','GNU AGPLv3',1,0,0,0,0,0,1612,1779,56592,0,0,0,0,1,0,0,'@edx/openedx-atlas','openedx',0,'[''https://www.npmjs.com/package/@edx/openedx-atlas: 403'']',1,'[''https://pypi.org/project/openedx-atlas/'', ''https://github.com/openedx/openedx-atlas/releases/latest/'', ''https://github.com/openedx/openedx-atlas/blob/main/atlas'', ''https://github.com/openedx/openedx-atlas/releases/latest/download/atlas'', ''https://github.com/shellspec/shellspec'', ''https://github.com/koalaman/shellcheck'', ''https://github.com/ko1nksm/getoptions'', ''https://semver.org/'', ''https://github.com/semantic-release/semantic-release/'', ''https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+start+contributing+to+the+Open+edX+code+base'', ''https://open.edx.org/getting-help'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,'openedx-atlas','[]','https://github.com/openedx/openedx-atlas',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/public-engineering',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "1211 minutes 52 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2021-11-22 21:15:52','main','General public issue repository for the Open edX engineering community',16,4,1,0,0,0,0,0,0,'2025-03-05 16:20:54',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-lib-special-exams',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,30,0,'',0,'{}',8,22,'{"@edx/frontend-platform": "^8.3.0", "@openedx/frontend-build": "^14.3.3", "@openedx/paragon": "^23.3.0", "@reduxjs/toolkit": "^1.5.1", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "5.10.1", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.6.1", "axios-mock-adapter": "1.18.2", "es-check": "5.1.4", "glob": "7.1.6", "husky": "3.1.0", "jest": "29.7.0", "prop-types": "^15.7.2", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^7.2.9", "react-router": "6.15.0", "react-router-dom": "6.15.0", "redux": "4.0.5", "rosie": "2.0.1", "semantic-release": "^20.1.3"}','{"@fortawesome/fontawesome-svg-core": "1.2.34", "@fortawesome/free-brands-svg-icons": "5.11.2", "@fortawesome/free-regular-svg-icons": "5.11.2", "@fortawesome/free-solid-svg-icons": "5.11.2", "@fortawesome/react-fontawesome": "0.1.14", "@openedx/frontend-plugin-framework": "^1.7.0", "babel-polyfill": "6.26.0", "eventemitter3": "^4.0.7"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,0,0,1,12,'{"total_duration": "2 minutes 12 seconds", "checks": [{"name": "tests", "duration": "2 minutes 12 seconds"}, {"name": "Release", "duration": "2 minutes 2 seconds"}]}','Other','2021-04-07 21:02:17','main','Frontend component library for displaying special exams on the edx platform',2966,25,1,0,0,0,0,0,0,'2026-05-20 13:20:43',NULL,3,1,0,0,0,426898,1750,0,0,0,0,0,0,0,0,0,'@edx/frontend-lib-special-exams','openedx',0,'[''https://github.com/edx/frontend-lib-special-exams.git: 504'', ''https://edx.github.io/frontend-platform/module-Internationalization.html: 404'', ''https://github.com/edx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 504'', ''https://github.com/openedx/frontend-plugin-framework: 504'']',0,'[''https://github.com/nvm-sh/nvm'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-lib-special-exams/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-build',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,73,0,'',0,'{}',70,3,'{"@babel/preset-typescript": "^7.18.6", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5"}','{"@babel/cli": "^7.24.8", "@babel/core": "^7.24.9", "@babel/eslint-parser": "^7.28.6", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/preset-env": "^7.24.8", "@babel/preset-react": "^7.26.3", "@edx/eslint-config": "^4.3.0", "@edx/new-relic-source-map-webpack-plugin": "^2.1.0", "@edx/typescript-config": "^1.1.0", "@formatjs/cli": "^6.0.3", "@fullhuman/postcss-purgecss": "^5.0.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@svgr/webpack": "^8.1.0", "@types/jest": "^29.5.12", "@typescript-eslint/eslint-plugin": "^5.58.0", "@typescript-eslint/parser": "^5.58.0", "autoprefixer": "^10.4.27", "babel-jest": "^29.7.0", "babel-loader": "^9.2.1", "babel-plugin-formatjs": "^10.4.0", "babel-plugin-transform-imports": "^2.0.0", "babel-polyfill": "^6.26.0", "chalk": "^4.1.2", "clean-webpack-plugin": "^4.0.0", "css-loader": "^5.2.7", "cssnano": "^6.0.3", "dotenv": "^8.6.0", "dotenv-webpack": "^8.0.1", "eslint": "^8.57.1", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-import-resolver-typescript": "^4.2.1", "eslint-plugin-formatjs": "^4.12.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^4.6.2", "express": "^4.18.2", "file-loader": "^6.2.0", "html-webpack-plugin": "^5.6.3", "identity-obj-proxy": "^3.0.0", "image-minimizer-webpack-plugin": "^4.1.4", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "mini-css-extract-plugin": "^1.6.2", "parse5": "^7.1.2", "postcss": "^8.4.49", "postcss-custom-media": "^10.0.8", "postcss-loader": "^7.3.4", "postcss-rtlcss": "^5.7.1", "react-dev-utils": "^12.0.1", "react-refresh": "^0.16.0", "resolve-url-loader": "^5.0.0", "sass": "^1.85.1", "sass-loader": "^13.3.3", "sharp": "^0.34.3", "source-map-loader": "^4.0.2", "style-loader": "^3.3.4", "ts-jest": "^29.1.4", "tsconfig-paths-webpack-plugin": "^4.2.0", "typescript": "^4.9.5", "url-loader": "^4.1.1", "webpack": "^5.97.1", "webpack-bundle-analyzer": "^4.10.1", "webpack-cli": "^5.1.4", "webpack-dev-server": "^4.15.1", "webpack-merge": "^5.10.0", "webpack-remove-empty-scripts": "^1.0.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,32,'{"total_duration": "2 minutes 0 seconds", "checks": [{"name": "tests", "duration": "2 minutes 0 seconds"}, {"name": "Release", "duration": "1 minutes 45 seconds"}, {"name": "Syncing branches", "duration": "0 minutes 15 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2019-09-23 13:41:45','master','Common build scripts and tooling for Open edX micro-frontends.',17128,40,1,0,0,0,0,0,0,'2026-05-20 13:13:27','GNU AGPLv3',11,1,0,0,224,84076,0,0,267,0,0,0,0,0,0,0,'','openedx',0,'[''https://travis-ci.com/edx/frontend-build: 415'', ''https://github.com/edx-unsupported/frontend-base/blob/master/LICENSE: 504'', ''https://github.com/openedx/frontend-build.git: 504'']',0,'[''https://api.travis-ci.com/edx/frontend-build.svg?branch=master'', ''https://img.shields.io/npm/v/@openedx/frontend-build.svg'', ''https://img.shields.io/codecov/c/github/edx/frontend-build'', ''https://codecov.io/gh/edx/frontend-build'', ''https://img.shields.io/npm/l/@openedx/frontend-build.svg'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/devstack/tree/master/docs/decisions/0005-frontend-package-mounts.rst'', ''https://webpack.js.org/configuration/resolve/'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://github.com/openedx/frontend-build/issues'', ''https://openedx.org/community/connect'', ''https://developer.chrome.com/docs/lighthouse/overview/'', ''https://github.com/openedx/wg-frontend/issues/138'']',1,1,0,0,'','',1,'2026-03-27','2026-01-31','1',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-ora2',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,208,0,'[]',0,'{}',14,27,'{"@babel/polyfill": "^7.12.1", "@testing-library/react": "^12.1.2", "dotenv-expand": "^5.1.0", "dotenvi": "^0.9.1", "eslint-config-google": "^0.14.0", "fetch-mock": "^9.11.0", "jasmine": "4.6.0", "jasmine-core": "4.6.0", "jshint": "^2.13.1", "karma": "^6.3.9", "karma-chrome-launcher": "^2.2.0", "karma-coverage": "^2.1.0", "karma-firefox-launcher": "^2.1.3", "karma-jasmine": "4.0.0", "karma-jasmine-html-reporter": "~0.2", "karma-jasmine-jquery": "git+https://github.com/nkoder/karma-jasmine-jquery.git#be1566e6a069c867812b3845a46c9c6ca73b1e9f", "karma-phantomjs-launcher": "^1.0.4", "karma-sinon": "^1.0.5", "karma-spec-reporter": "^0.0.31", "karma-webpack": "^4.0.2", "phantomjs-prebuilt": "^2.1.14", "postcss-loader": "4.2.0", "sinon": "^7.5.0", "webpack": "^4.46.0", "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.15.1", "webpack-manifest-plugin": "^4.0.2"}','{"@edx/frontend-build": "8.0.6", "@openedx/paragon": "^21.5.7", "backbone": "1.2.3", "backgrid": "~0.3.8", "dotenv-webpack": "^7.0.3", "edx-ui-toolkit": "^1.5.4", "moment": "^2.29.1", "moment-timezone": "^0.5.34", "prop-types": "^15.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-intl": "^5.25.1", "requirejs": "^2.3.6", "underscore": "1.13.2"}',67,'["path==16.16.0", "lazy==1.6", "html5lib==1.1", "lxml-html-clean==0.4.5", "psutil==7.2.2", "web-fragments==4.0.0", "djangorestframework==3.17.1", "xblock==6.1.0", "edx-submissions==4.0.0", "django-model-utils==5.0.0", "path-py==12.5.0", "webencodings==0.5.1", "edx-opaque-keys[django]==4.0.0", "pymongo==4.17.0", "s3transfer==0.18.0", "charset-normalizer==3.4.7", "python-slugify==8.0.4", "markupsafe==3.0.3", "sqlparse==0.5.5", "django-crum==0.7.9", "pycparser==3.0", "django-waffle==5.0.0", "openedx-filters==3.4.1", "webob==1.8.10", "code-annotations==3.0.0", "edx-i18n-tools==2.0.0", "appdirs==1.4.4", "edx-django-release-util==1.5.0", "pyyaml==6.0.3", "asgiref==3.11.1", "text-unidecode==1.3", "python-dateutil==2.9.0.post0", "idna==3.18", "jmespath==1.1.0", "jinja2==3.1.6", "polib==1.2.0", "urllib3==2.7.0", "voluptuous==0.16.0", "edx-django-utils==8.0.1", "dnspython==2.8.0", "fs==2.4.16", "simplejson==4.1.1", "attrs==26.1.0", "edx-ccx-keys==2.0.2", "botocore==1.43.22", "edx-toggles==6.0.0", "defusedxml==0.7.1", "certifi==2026.5.20", "django==5.2.15", "typing-extensions==4.15.0", "bleach==6.3.0", "requests==2.34.2", "fastavro==1.12.2", "pynacl==1.6.2", "setuptools==82.0.1", "boto3==1.43.22", "jsonfield==3.2.0", "six==1.17.0", "mako==1.3.12", "cffi==2.0.0", "python-swiftclient==4.10.0", "stevedore==5.8.0", "lxml[html-clean]==6.1.1", "django-simple-history==3.11.0", "click==8.4.1", "openedx-events==11.2.0", "pytz==2026.2"]',167,'["amqp==5.3.1", "sphinxcontrib-mermaid==2.0.2", "tomlkit==0.15.0", "pygments==2.20.0", "edx-submissions==4.0.0", "path-py==12.5.0", "kombu==5.6.2", "edx-opaque-keys[django]==4.0.0", "markdown-it-py==4.2.0", "webencodings==0.5.1", "isort==6.1.0", "snowballstemmer==3.1.1", "iniconfig==2.3.0", "pyproject-hooks==1.2.0", "sphinxcontrib-serializinghtml==2.0.0", "click-repl==0.3.0", "pyyaml==6.0.3", "sphinxcontrib-devhelp==2.0.0", "imagesize==2.0.0", "celery==5.6.3", "jmespath==1.1.0", "astroid==3.3.11", "dnspython==2.8.0", "freezegun==0.3.14", "shellingham==1.5.4", "edx-toggles==6.0.0", "colorama==0.4.6", "websockets==16.0", "docutils==0.22.4", "fastavro==1.12.2", "pluggy==1.6.0", "boto3==1.43.22", "sphinx-autobuild==2025.8.25", "accessible-pygments==0.0.5", "uvicorn==0.49.0", "path==16.16.0", "lazy==1.6", "html5lib==1.1", "web-fragments==4.0.0", "sphinxcontrib-htmlhelp==2.1.0", "djangorestframework==3.17.1", "sphinx==9.1.0", "pymongo==4.17.0", "charset-normalizer==3.4.7", "pytest-cov==7.1.0", "django-crum==0.7.9", "webob==1.8.10", "vine==5.1.0", "code-annotations==3.0.0", "edx-django-release-util==1.5.0", "watchfiles==1.2.0", "build==1.5.0", "text-unidecode==1.3", "cachetools==7.1.4", "babel==2.18.0", "sphinxcontrib-jsmath==1.0.1", "click-log==0.4.0", "polib==1.2.0", "arrow==1.4.0", "pylint-django==2.5.5", "voluptuous==0.16.0", "starlette==1.2.1", "tzdata==2026.2", "attrs==26.1.0", "tox==4.55.1", "mock==5.2.0", "sphinxcontrib-applehelp==2.0.0", "wcwidth==0.7.0", "xblock-sdk==0.14.0", "django==5.2.15", "setuptools==82.0.1", "platformdirs==4.10.0", "dill==0.4.1", "pip-tools==7.5.3", "click-plugins==1.1.1.2", "stevedore==5.8.0", "psutil==7.2.2", "pytz==2026.2", "lxml-html-clean==0.4.5", "factory-boy==3.3.3", "pytest-django==4.12.0", "xblock==6.1.0", "django-model-utils==5.0.0", "virtualenv==21.4.2", "s3transfer==0.18.0", "markupsafe==3.0.3", "rich==15.0.0", "sqlparse==0.5.5", "soupsieve==2.8.4", "appdirs==1.4.4", "beautifulsoup4==4.14.3", "filelock==3.29.1", "python-dateutil==2.9.0.post0", "idna==3.18", "urllib3==2.7.0", "tzlocal==5.3.1", "edx-django-utils==8.0.1", "fs==2.4.16", "simplejson==4.1.1", "coveralls==4.1.0", "edx-ccx-keys==2.0.2", "certifi==2026.5.20", "typing-extensions==4.15.0", "bleach==6.3.0", "pylint==3.3.9", "pynacl==1.6.2", "mdurl==0.1.2", "billiard==4.2.4", "python-swiftclient==4.10.0", "packaging==26.2", "responses==0.26.1", "lxml[html-clean]==6.1.1", "django-simple-history==3.11.0", "mccabe==0.7.0", "cryptography==48.0.0", "openedx-events==11.2.0", "alabaster==1.0.0", "pydata-sphinx-theme==0.16.1", "pylint-plugin-utils==0.9.0", "h11==0.16.0", "tomli-w==1.2.0", "distlib==0.4.1", "sphinx-copybutton==0.5.2", "python-discovery==1.4.0", "moto==4.2.14", "sphinx-book-theme==1.2.0", "werkzeug==3.1.8", "pylint-celery==0.3", "testfixtures==12.0.0", "python-slugify==8.0.4", "pypng==0.20220715.0", "pyinstrument==5.1.2", "pycparser==3.0", "ddt==1.0.0", "django-waffle==5.0.0", "openedx-filters==3.4.1", "pytest==9.0.3", "edx-i18n-tools==2.0.0", "cookiecutter==2.7.1", "sphinxcontrib-qthelp==2.0.0", "asgiref==3.11.1", "faker==40.21.0", "prompt-toolkit==3.0.52", "jinja2==3.1.6", "more-itertools==11.1.0", "typer==0.26.7", "coverage[toml]==7.14.1", "botocore==1.43.22", "pyproject-api==1.10.1", "click-didyoumean==0.3.1", "xmltodict==1.0.4", "defusedxml==0.7.1", "wheel==0.47.0", "requests==2.34.2", "edx-lint==6.1.0", "roman-numerals==4.1.0", "pycodestyle==2.14.0", "jsonfield==3.2.0", "six==1.17.0", "mako==1.3.12", "cffi==2.0.0", "annotated-doc==0.0.4", "anyio==4.13.0", "binaryornot==0.6.0", "fs-s3fs==1.1.1", "click==8.4.1", "pip==26.1.2"]',14,'["djangorestframework", "edx-django-utils", "pytest-django", "edx-submissions", "code-annotations", "edx-toggles", "web-fragments", "factory-boy", "django-waffle", "edx-django-release-util", "xblock-sdk", "xblock", "pylint-django", "edx-i18n-tools"]',18,'["djangorestframework", "edx-django-utils", "django-simple-history", "edx-submissions", "code-annotations", "edx-toggles", "pytest-django", "web-fragments", "factory-boy", "django-model-utils", "django-waffle", "django-crum", "edx-django-release-util", "xblock-sdk", "xblock", "jsonfield", "pylint-django", "edx-i18n-tools"]',10,'["edx-django-utils", "edx-submissions", "code-annotations", "edx-toggles", "web-fragments", "django-waffle", "edx-django-release-util", "xblock-sdk", "xblock", "edx-i18n-tools"]',0,NULL,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,160,'{"total_duration": "6 minutes 18 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, js)", "duration": "6 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "3 minutes 51 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "3 minutes 27 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "2 minutes 53 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 43 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 51 seconds"}]}','Other','2013-12-23 20:54:54','master','Open Response Assessment Suite',162111,215,1,0,0,0,0,0,0,'2026-06-05 05:00:55','GNU AGPLv3',62,1,5382,0,238118,687718,7611,2287759,4574,0,1,0,0,1,1,1,'','openedx',7,'[''https://open.edx.org/getting-help: 403'']',1,'[''https://github.com/openedx/edx-platform'', ''https://docs.openedx.org/en/latest/educators/concepts/exercise_tools/about_OpenResponseAssessments.html'', ''https://openedx.atlassian.net/wiki/spaces/EDUCATOR/pages/9765004/ORA+Developer+Guide'', ''https://github.com/openedx/devstack'', ''https://github.com/openedx/edx-ora2/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-ora2/actions?query=workflow%3A%22Python+CI%22'', ''https://coveralls.io/repos/edx/edx-ora2/badge.png?branch=master'', ''https://coveralls.io/r/edx/edx-ora2?branch=master'']',1,1,0,1,'.readthedocs.yaml','2',1,NULL,NULL,'0',0,1,0,1,NULL,0,'ora2','[''3'', ''3.12'']','http://github.com/openedx/edx-ora2',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-plugin-framework',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,21,0,'',0,'{}',5,16,'{"@edx/browserslist-config": "^1.1.1", "@edx/frontend-platform": "^8.3.0", "@openedx/frontend-build": "^14.3.1", "@openedx/paragon": "^23.3.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.1.4", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.6.1", "glob": "7.2.3", "husky": "7.0.4", "jest": "29.7.0", "prop-types": "^15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-error-boundary": "^4.0.13", "semantic-release": "^22.0.12"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "classnames": "^2.3.2", "core-js": "3.37.1", "react-redux": "8.1.1", "redux": "4.2.1"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,21,'{"total_duration": "26618 minutes 7 seconds", "checks": [{"name": "Release", "duration": "1 minutes 53 seconds"}, {"name": "test", "duration": "1 minutes 41 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 5 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 2 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2023-11-02 19:50:48','master','An experimental framework for micro-frontend plugins.',1334,27,1,0,0,0,0,0,0,'2026-06-01 16:49:14','GNU AGPLv3',12,1,0,0,1175,99350,2240,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml/badge.svg: 504'', ''https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml: 504'', ''https://github.com/openedx/frontend-platform/blob/master/src/config.js: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-framework: 404'']',1,'[''https://img.shields.io/github/license/openedx/frontend-plugin-framework.svg'', ''https://github.com/openedx/frontend-plugin-framework/blob/master/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://codecov.io/github/openedx/frontend-plugin-framework/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/frontend-plugin-framework?branch=master'', ''https://github.com/openedx/frontend-platform/blob/master/docs/decisions/0007-javascript-file-configuration.rst'', ''https://github.com/openedx/frontend-platform/blob/master/src/react/ErrorBoundary.jsx'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-plugin-framework/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2025-11-24','2024-05-20','10',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/event-bus-redis',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,115,0,'[]',0,'',0,0,'','',30,'["text-unidecode==1.3", "edx-django-utils==8.0.1", "pyyaml==6.0.3", "fastavro==1.12.2", "attrs==26.1.0", "psutil==7.2.2", "python-slugify==8.0.4", "sqlparse==0.5.5", "django-waffle==5.0.0", "pymongo==4.17.0", "typing-extensions==4.15.0", "markupsafe==3.0.3", "openedx-events==11.2.0", "cffi==2.0.0", "jinja2==3.1.6", "walrus==0.9.8", "django==5.2.14", "edx-opaque-keys[django]==4.0.0", "edx-ccx-keys==2.0.2", "six==1.17.0", "django-crum==0.7.9", "dnspython==2.8.0", "redis==8.0.0", "code-annotations==3.0.0", "pycparser==3.0", "pynacl==1.6.2", "click==8.4.1", "stevedore==5.8.0", "asgiref==3.11.1", "edx-toggles==6.0.0"]',115,'["pydata-sphinx-theme==0.16.1", "sphinx==9.1.0", "diff-cover==10.3.0", "packaging==26.2", "attrs==26.1.0", "iniconfig==2.3.0", "psutil==7.2.2", "django-waffle==5.0.0", "chardet==7.4.3", "filelock==3.29.0", "requests==2.34.2", "jaraco-classes==3.4.0", "colorama==0.4.6", "typing-extensions==4.15.0", "pylint-django==2.7.0", "markupsafe==3.0.3", "roman-numerals==4.1.0", "openedx-events==11.2.0", "certifi==2026.5.20", "docutils==0.22.4", "walrus==0.9.8", "dill==0.4.1", "imagesize==2.0.0", "alabaster==1.0.0", "more-itertools==11.1.0", "redis==8.0.0", "beautifulsoup4==4.14.3", "accessible-pygments==0.0.5", "lxml[html-clean]==6.1.1", "pycparser==3.0", "pylint-plugin-utils==0.9.0", "asgiref==3.11.1", "edx-toggles==6.0.0", "tox==4.55.0", "sphinxcontrib-qthelp==2.0.0", "build==1.5.0", "urllib3==2.7.0", "id==1.6.1", "edx-i18n-tools==2.0.0", "sphinxcontrib-devhelp==2.0.0", "lxml-html-clean==0.4.5", "pygments==2.20.0", "keyring==25.7.0", "tomlkit==0.15.0", "click-log==0.4.0", "twine==6.2.0", "nh3==0.3.5", "cffi==2.0.0", "platformdirs==4.10.0", "edx-opaque-keys[django]==4.0.0", "rich==15.0.0", "tomli-w==1.2.0", "django-crum==0.7.9", "dnspython==2.8.0", "jaraco-functools==4.5.0", "sphinxcontrib-htmlhelp==2.1.0", "click==8.4.1", "virtualenv==21.4.2", "text-unidecode==1.3", "babel==2.18.0", "edx-django-utils==8.0.1", "sphinx-book-theme==1.2.0", "snowballstemmer==3.1.0", "pyyaml==6.0.3", "fastavro==1.12.2", "pip==26.1.2", "polib==1.2.0", "python-slugify==8.0.4", "sqlparse==0.5.5", "distlib==0.4.0", "pymongo==4.17.0", "sphinxcontrib-applehelp==2.0.0", "mdurl==0.1.2", "path==16.16.0", "pylint==4.0.5", "coverage[toml]==7.14.1", "setuptools==82.0.1", "mccabe==0.7.0", "python-discovery==1.4.0", "markdown-it-py==4.2.0", "idna==3.17", "pluggy==1.6.0", "wheel==0.47.0", "charset-normalizer==3.4.7", "edx-ccx-keys==2.0.2", "isort==8.0.1", "six==1.17.0", "pycodestyle==2.14.0", "astroid==4.0.4", "cachetools==7.1.4", "pytest==9.0.3", "pynacl==1.6.2", "stevedore==5.8.0", "rfc3986==2.0.0", "pydocstyle==6.3.0", "requests-toolbelt==1.0.0", "pyproject-api==1.10.1", "pytest-cov==7.1.0", "soupsieve==2.8.4", "readme-renderer==44.0", "pylint-celery==0.3", "jaraco-context==6.1.2", "pyproject-hooks==1.2.0", "sphinxcontrib-serializinghtml==2.0.0", "jinja2==3.1.6", "sphinxcontrib-jsmath==1.0.1", "django==5.2.14", "cryptography==48.0.0", "ddt==1.7.2", "code-annotations==3.0.0", "secretstorage==3.5.0", "jeepney==0.9.0", "pytest-django==4.12.0", "pip-tools==7.5.3", "edx-lint==6.1.0"]',7,'["pylint-django", "code-annotations", "edx-i18n-tools", "edx-django-utils", "pytest-django", "edx-toggles", "django-waffle"]',8,'["pylint-django", "code-annotations", "edx-i18n-tools", "edx-django-utils", "django-crum", "pytest-django", "edx-toggles", "django-waffle"]',5,'["code-annotations", "edx-i18n-tools", "edx-django-utils", "edx-toggles", "django-waffle"]',1,NULL,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,12,'{"total_duration": "9781 minutes 54 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 16 seconds"}, {"name": "tests (3.12, docs)", "duration": "0 minutes 48 seconds"}, {"name": "tests (3.12, quality)", "duration": "0 minutes 41 seconds"}, {"name": "tests (3.12, django42)", "duration": "0 minutes 32 seconds"}, {"name": "tests (3.12, django52)", "duration": "0 minutes 32 seconds"}, {"name": "tests (3.12, pii_check)", "duration": "0 minutes 29 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 24 seconds"}, {"name": "Dependabot", "duration": "0 minutes 19 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2023-02-22 16:22:16','main','Redis Streams implementation for the Open edX event bus.',585,11,1,0,0,0,0,0,0,'2026-06-08 07:06:15','GNU AGPLv3',2,1,0,0,0,0,6984,91972,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://docs.openedx.org/projects/event-bus-redis: 404'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/event-bus-redis: 404'', ''https://event-bus-redis.readthedocs.io/en/latest/: 404'']',1,'[''https://redis.readthedocs.io/en/stable/examples/ssl_connection_examples.html'', ''https://github.com/openedx/openedx-events/blob/06635f3642cee4020d6787df68bba694bd1233fe/openedx_events/event_bus/__init__.py'', ''https://redis.io/commands/xread/'', ''https://openedx.atlassian.net/wiki/spaces/AC/pages/3508699151/How+to+start+using+the+Event+Bus'', ''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://discuss.openedx.org'', ''https://github.com/openedx/event-bus-redis/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/pypi/v/edx-event-bus-redis.svg'', ''https://pypi.python.org/pypi/edx-event-bus-redis/'', ''https://github.com/openedx/event-bus-redis/workflows/Python%20CI/badge.svg?branch=main'', ''https://github.com/openedx/event-bus-redis/actions'', ''https://codecov.io/github/openedx/event-bus-redis/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/event-bus-redis?branch=main'', ''https://readthedocs.org/projects/edx-event-bus-redis/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-event-bus-redis.svg'', ''https://pypi.python.org/pypi/event-bus-redis/'', ''https://img.shields.io/github/license/openedx/event-bus-redis.svg'', ''https://github.com/openedx/event-bus-redis/blob/main/LICENSE.txt'', ''https://img.shields.io/badge/Status-Experimental-yellow'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx_event_bus_redis','[''3'', ''3.12'']','https://github.com/openedx/event-bus-redis',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-when',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,134,0,'[]',0,'',0,0,'','',41,'["pynacl==1.6.2", "django-crum==0.7.9", "pycparser==3.0", "charset-normalizer==3.4.7", "requests==2.33.1", "web-fragments==4.0.0", "cryptography==46.0.6", "drf-jwt==1.19.2", "psutil==7.2.2", "sqlparse==0.5.5", "djangorestframework==3.17.1", "asgiref==3.11.1", "edx-opaque-keys==4.0.0", "django-waffle==5.0.0", "xblock==6.0.0", "pyjwt[crypto]==2.12.1", "mako==1.3.10", "pymongo==4.16.0", "six==1.17.0", "edx-django-utils==8.0.1", "simplejson==3.20.2", "markupsafe==3.0.3", "click==8.3.2", "lxml==6.0.2", "typing-extensions==4.15.0", "pytz==2026.1.post1", "idna==3.11", "certifi==2026.2.25", "django-model-utils==5.0.0", "webob==1.8.9", "python-dateutil==2.9.0.post0", "appdirs==1.4.4", "django==5.2.13", "urllib3==2.6.3", "dnspython==2.8.0", "edx-drf-extensions==10.6.0", "stevedore==5.7.0", "fs==2.4.16", "pyyaml==6.0.3", "cffi==2.0.0", "semantic-version==2.10.0"]',134,'["mock==5.2.0", "secretstorage==3.5.0", "diff-cover==4.0.0", "pycparser==3.0", "charset-normalizer==3.4.7", "text-unidecode==1.3", "web-fragments==4.0.0", "readme-renderer==44.0", "coverage[toml]==7.13.5", "keyring==25.7.0", "sqlparse==0.5.5", "colorama==0.4.6", "djangorestframework==3.17.1", "pydocstyle==6.3.0", "jaraco-classes==3.4.0", "tomlkit==0.14.0", "edx-opaque-keys==4.0.0", "astroid==4.0.4", "jinja2==3.1.6", "sphinx==9.1.0", "isort==8.0.1", "mako==1.3.10", "six==1.17.0", "simplejson==3.20.2", "click==8.3.2", "lxml==6.0.2", "docutils==0.21.2", "restructuredtext-lint==2.0.2", "platformdirs==4.9.4", "virtualenv==21.2.0", "python-dateutil==2.9.0.post0", "django==5.2.13", "python-discovery==1.2.1", "beautifulsoup4==4.14.3", "pip-tools==7.5.3", "path-py==11.5.0", "pytest-django==4.12.0", "soupsieve==2.8.3", "pyproject-api==1.10.0", "coverage==7.13.5", "inflect==7.5.0", "tox==4.52.0", "rfc3986==2.0.0", "setuptools==69.5.1", "mccabe==0.7.0", "pygments==2.20.0", "tomli-w==1.2.0", "cachetools==7.0.5", "importlib-metadata==9.0.0", "jaraco-functools==4.4.0", "packaging==26.0", "ddt==1.7.2", "accessible-pygments==0.0.5", "pytz==2026.1.post1", "lxml-html-clean==0.4.4", "appdirs==1.4.4", "babel==2.18.0", "urllib3==2.6.3", "dnspython==2.8.0", "wheel==0.46.3", "pytest-cov==7.1.0", "code-annotations==3.0.0", "sphinxcontrib-qthelp==2.0.0", "fs==2.4.16", "mdurl==0.1.2", "codecov==2.1.13", "pynacl==1.6.2", "typeguard==4.5.1", "pycodestyle==2.14.0", "django-crum==0.7.9", "sphinxcontrib-devhelp==2.0.0", "distlib==0.4.0", "psutil==7.2.2", "jaraco-context==6.1.2", "django-waffle==5.0.0", "path==16.16.0", "roman-numerals==4.1.0", "filelock==3.25.2", "xblock==6.0.0", "pymongo==4.16.0", "edx-django-utils==8.0.1", "pydata-sphinx-theme==0.16.1", "id==1.6.1", "iniconfig==2.3.0", "markdown-it-py==4.0.0", "idna==3.11", "alabaster==1.0.0", "pylint-celery==0.3", "sphinx-book-theme==1.2.0", "requests-toolbelt==1.0.0", "webob==1.8.9", "pylint-django==2.7.0", "zipp==3.23.0", "stevedore==5.7.0", "pyyaml==6.0.3", "build==1.4.2", "pip==26.0.1", "click-log==0.4.0", "typing-extensions==4.15.0", "pylint-plugin-utils==0.9.0", "sphinxcontrib-jsmath==1.0.1", "rich==14.3.3", "requests==2.33.1", "lxml[html-clean]==6.0.2", "cryptography==46.0.6", "drf-jwt==1.19.2", "doc8==2.0.0", "polib==1.2.0", "sphinxcontrib-applehelp==2.0.0", "imagesize==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "asgiref==3.11.1", "edx-i18n-tools==2.0.0", "pyproject-hooks==1.2.0", "jeepney==0.9.0", "edx-lint==6.0.0", "twine==6.2.0", "python-slugify==8.0.4", "pyjwt[crypto]==2.12.1", "markupsafe==3.0.3", "snowballstemmer==3.0.1", "jinja2-pluralize==0.3.0", "sphinxcontrib-htmlhelp==2.1.0", "pylint==4.0.5", "dill==0.4.1", "certifi==2026.2.25", "django-model-utils==5.0.0", "nh3==0.3.4", "pluggy==1.6.0", "edx-drf-extensions==10.6.0", "cffi==2.0.0", "pytest==9.0.2", "more-itertools==11.0.1", "semantic-version==2.10.0"]',11,'["djangorestframework", "edx-opaque-keys", "code-annotations", "pytest-django", "xblock", "edx-i18n-tools", "django-waffle", "web-fragments", "edx-django-utils", "pylint-django", "edx-drf-extensions"]',14,'["djangorestframework", "edx-opaque-keys", "code-annotations", "pytest-django", "drf-jwt", "django-crum", "xblock", "edx-i18n-tools", "django-waffle", "django-model-utils", "web-fragments", "edx-django-utils", "pylint-django", "edx-drf-extensions"]',8,'["edx-opaque-keys", "code-annotations", "xblock", "edx-i18n-tools", "django-waffle", "web-fragments", "edx-django-utils", "edx-drf-extensions"]',1,NULL,1,0,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,24,'{"total_duration": "4410 minutes 5 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django42, mysql)", "duration": "1 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality, postgres)", "duration": "1 minutes 30 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42, postgres)", "duration": "1 minutes 26 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52, postgres)", "duration": "1 minutes 24 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality, mysql)", "duration": "1 minutes 24 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs, postgres)", "duration": "1 minutes 23 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs, mysql)", "duration": "1 minutes 22 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check, postgres)", "duration": "1 minutes 21 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52, mysql)", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check, mysql)", "duration": "1 minutes 13 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 12 seconds"}, {"name": "check migrations (ubuntu-latest, 3.12)", "duration": "0 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 51 seconds"}]}','Other','2019-03-07 18:43:09','master','',497,14,1,0,0,0,0,0,0,'2026-06-02 16:50:54','GNU AGPLv3',9,1,0,0,662,0,4637,105414,0,1,1,0,0,1,0,0,'','openedx',5,'[''http://edx-when.readthedocs.io/en/latest/: 404'']',1,'[''https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/course_date_signals/handlers.py'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/edx-when/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/edx-when/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/edx-when.svg'', ''https://pypi.python.org/pypi/edx-when/'', ''https://github.com/openedx/edx-when/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-when/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/edx-when/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-when?branch=master'', ''https://readthedocs.org/projects/edx-when/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-when.svg'', ''https://img.shields.io/github/license/edx/edx-when.svg'', ''https://github.com/openedx/edx-when/blob/master/LICENSE.txt'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-when','[''3'', ''3.12'']','https://github.com/openedx/edx-when',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/event-routing-backends',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,147,0,'[]',0,'',0,0,'','',64,'["event-tracking==4.0.2", "click-didyoumean==0.3.1", "packaging==26.2", "tzlocal==5.3.1", "django-config-models==3.0.0", "apache-libcloud==3.9.1", "django-fernet-fields-v2==0.9", "vine==5.1.0", "tincan==1.0.0", "cryptography==48.0.0", "idna==3.18", "stevedore==5.8.0", "tzdata==2026.2", "prompt-toolkit==3.0.52", "edx-celeryutils==2.0.0", "dnspython==2.8.0", "redis==7.4.0", "requests==2.34.2", "charset-normalizer==3.4.7", "fasteners==0.20", "psutil==7.2.2", "openedx-events==11.2.0", "edx-ccx-keys==2.0.2", "djangorestframework==3.17.1", "isodate==0.7.2", "click==8.4.1", "django-redis==6.0.0", "django-waffle==5.0.0", "edx-opaque-keys[django]==4.0.0", "pynacl==1.6.2", "pyyaml==6.0.3", "markupsafe==3.0.3", "amqp==5.3.1", "fastavro==1.12.2", "python-dateutil==2.9.0.post0", "six==1.17.0", "wcwidth==0.7.0", "attrs==26.1.0", "text-unidecode==1.3", "python-slugify==8.0.4", "django-model-utils==5.0.0", "celery==5.6.3", "certifi==2026.5.20", "typing-extensions==4.15.0", "urllib3==2.7.0", "asgiref==3.11.1", "jinja2==3.1.6", "pycparser==3.0", "billiard==4.2.4", "pymongo==4.17.0", "edx-toggles==6.0.0", "jsonfield==3.2.0", "cffi==2.0.0", "edx-django-utils==8.0.1", "click-repl==0.3.0", "kombu==5.6.2", "sqlparse==0.5.5", "aniso8601==10.0.1", "django-crum==0.7.9", "click-plugins==1.1.1.2", "pytz==2026.2", "code-annotations==3.0.0", "django==5.2.14", "openedx-filters==3.4.1"]',147,'["tzlocal==5.3.1", "apache-libcloud==3.9.1", "dill==0.4.1", "jaraco-classes==3.4.0", "accessible-pygments==0.0.5", "charset-normalizer==3.4.7", "djangorestframework==3.17.1", "ddt==1.7.2", "edx-opaque-keys[django]==4.0.0", "pygments==2.20.0", "click-log==0.4.0", "amqp==5.3.1", "cachetools==7.1.4", "doc8==2.0.0", "colorama==0.4.6", "pycodestyle==2.14.0", "restructuredtext-lint==2.0.2", "mccabe==0.7.0", "lxml[html-clean]==6.1.1", "secretstorage==3.5.0", "soupsieve==2.8.4", "text-unidecode==1.3", "beautifulsoup4==4.14.3", "sphinxcontrib-serializinghtml==2.0.0", "certifi==2026.5.20", "pytest==9.0.3", "python-discovery==1.4.0", "babel==2.18.0", "requests-toolbelt==1.0.0", "platformdirs==4.10.0", "click-repl==0.3.0", "kombu==5.6.2", "aniso8601==10.0.1", "pytz==2026.2", "filelock==3.29.0", "django==5.2.14", "openedx-filters==3.4.1", "event-tracking==4.0.2", "nh3==0.3.5", "django-fernet-fields-v2==0.9", "tincan==1.0.0", "build==1.5.0", "cryptography==48.0.0", "pyproject-hooks==1.2.0", "faker==40.21.0", "dnspython==2.8.0", "requests==2.34.2", "wheel==0.47.0", "python-dateutil==2.9.0.post0", "fasteners==0.20", "factory-boy==3.3.3", "distlib==0.4.1", "pytest-django==4.12.0", "click==8.4.1", "django-redis==6.0.0", "django-waffle==5.0.0", "jaraco-functools==4.5.0", "more-itertools==11.1.0", "pyyaml==6.0.3", "markupsafe==3.0.3", "sphinxcontrib-qthelp==2.0.0", "isort==8.0.1", "wcwidth==0.7.0", "sphinxcontrib-htmlhelp==2.1.0", "tomlkit==0.15.0", "keyring==25.7.0", "rich==15.0.0", "pydocstyle==6.3.0", "iniconfig==2.3.0", "sphinx-book-theme==1.2.0", "asgiref==3.11.1", "edx-lint==6.1.0", "pylint-plugin-utils==0.9.0", "pyproject-api==1.10.1", "astroid==4.0.4", "django-crum==0.7.9", "click-plugins==1.1.1.2", "polib==1.2.0", "pydata-sphinx-theme==0.16.1", "diff-cover==10.3.0", "chardet==7.4.3", "edx-ccx-keys==2.0.2", "code-annotations==3.0.0", "id==1.6.1", "packaging==26.2", "sphinxcontrib-applehelp==2.0.0", "coverage[toml]==7.14.1", "idna==3.18", "setuptools==82.0.1", "tzdata==2026.2", "path==16.16.0", "pip-tools==7.5.3", "docutils==0.21.2", "redis==7.4.0", "openedx-events==11.2.0", "pluggy==1.6.0", "mdurl==0.1.2", "alabaster==1.0.0", "rfc3986==2.0.0", "six==1.17.0", "sphinx==9.1.0", "twine==6.2.0", "sphinxcontrib-jsmath==1.0.1", "markdown-it-py==4.2.0", "django-model-utils==5.0.0", "urllib3==2.7.0", "tomli-w==1.2.0", "roman-numerals==4.1.0", "pymongo==4.17.0", "pylint-django==2.7.0", "pip==26.1.2", "edx-toggles==6.0.0", "pylint-celery==0.3", "sphinxcontrib-devhelp==2.0.0", "edx-django-utils==8.0.1", "imagesize==2.0.0", "jaraco-context==6.1.2", "virtualenv==21.4.2", "click-didyoumean==0.3.1", "django-config-models==3.0.0", "pytest-cov==7.1.0", "stevedore==5.8.0", "edx-i18n-tools==2.0.0", "prompt-toolkit==3.0.52", "edx-celeryutils==2.0.0", "psutil==7.2.2", "vine==5.1.0", "isodate==0.7.2", "pynacl==1.6.2", "fastavro==1.12.2", "pylint==4.0.5", "mock==5.2.0", "attrs==26.1.0", "python-slugify==8.0.4", "typing-extensions==4.15.0", "celery==5.6.3", "readme-renderer==44.0", "jinja2==3.1.6", "pycparser==3.0", "billiard==4.2.4", "jsonfield==3.2.0", "snowballstemmer==3.1.1", "lxml-html-clean==0.4.5", "cffi==2.0.0", "sqlparse==0.5.5", "tox==4.55.0", "jeepney==0.9.0"]',12,'["edx-django-utils", "edx-celeryutils", "pytest-django", "event-tracking", "djangorestframework", "factory-boy", "django-config-models", "django-waffle", "code-annotations", "edx-i18n-tools", "edx-toggles", "pylint-django"]',15,'["edx-django-utils", "edx-celeryutils", "pytest-django", "event-tracking", "djangorestframework", "factory-boy", "jsonfield", "django-config-models", "django-model-utils", "django-waffle", "code-annotations", "edx-i18n-tools", "django-crum", "edx-toggles", "pylint-django"]',8,'["edx-django-utils", "edx-celeryutils", "event-tracking", "django-config-models", "django-waffle", "code-annotations", "edx-i18n-tools", "edx-toggles"]',1,NULL,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,19,'{"total_duration": "1 minutes 5 seconds", "checks": [{"name": "tests (3.12, quality, ubuntu-24.04)", "duration": "1 minutes 5 seconds"}, {"name": "tests (3.12, docs, ubuntu-24.04)", "duration": "1 minutes 1 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django52)", "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django42)", "duration": "0 minutes 44 seconds"}, {"name": "tests (3.12, pii_check, ubuntu-24.04)", "duration": "0 minutes 31 seconds"}]}','Other','2020-09-22 20:33:20','master','Consume edx tracking events and transform/transmit them to other LRSs.',1193,23,1,0,0,0,0,0,0,'2026-06-03 14:48:53','GNU AGPLv3',1,1,0,0,232,812,4813,345358,0,1,1,0,0,1,0,0,'','openedx',0,'[]',1,'[''https://github.com/openedx/event-tracking'', ''https://open-edx-proposals.readthedocs.io/en/latest/oep-0026-arch-realtime-events.html'', ''https://event-routing-backends.readthedocs.io/en/latest/'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://discuss.openedx.org'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://img.shields.io/pypi/v/event-routing-backends.svg'', ''https://pypi.python.org/pypi/event-routing-backends/'', ''https://github.com/openedx/event-routing-backends/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/event-routing-backends/actions?query=workflow%3A%22Python+CI%22'', ''https://codecov.io/github/edx/event-routing-backends/coverage.svg?branch=master'', ''https://codecov.io/github/edx/event-routing-backends?branch=master'', ''https://readthedocs.org/projects/event-routing-backends/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/event-routing-backends.svg'', ''https://img.shields.io/github/license/edx/event-routing-backends.svg'', ''https://github.com/openedx/event-routing-backends/blob/master/LICENSE.txt'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-event-routing-backends','[''3'', ''3.12'']','https://github.com/openedx/event-routing-backends',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/completion',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,149,0,'[]',0,'',0,0,'','',65,'["lxml==6.1.1", "jinja2==3.1.6", "tzlocal==5.3.1", "django-model-utils==5.0.0", "certifi==2026.5.20", "edx-ccx-keys==2.0.2", "pyjwt[crypto]==2.13.0", "web-fragments==4.0.0", "urllib3==2.7.0", "psutil==7.2.2", "setuptools==82.0.1", "celery==5.6.3", "drf-jwt==1.19.2", "charset-normalizer==3.4.7", "fs==2.4.16", "kombu==5.6.2", "stevedore==5.8.0", "billiard==4.2.4", "djangorestframework==3.17.1", "wcwidth==0.7.0", "dnspython==2.8.0", "packaging==26.2", "six==1.17.0", "django-crum==0.7.9", "typing-extensions==4.15.0", "django-waffle==5.0.0", "tzdata==2026.2", "asgiref==3.11.1", "vine==5.1.0", "edx-drf-extensions==10.6.0", "event-tracking==4.0.2", "pycparser==3.0", "semantic-version==2.10.0", "edx-opaque-keys[django]==4.0.0", "python-dateutil==2.9.0.post0", "edx-django-utils==8.0.1", "xblock==6.1.0", "idna==3.18", "markupsafe==3.0.3", "text-unidecode==1.3", "cryptography==48.0.0", "code-annotations==3.0.0", "pymongo==4.17.0", "pytz==2026.2", "python-slugify==8.0.4", "click-repl==0.3.0", "appdirs==1.4.4", "simplejson==4.1.1", "cffi==2.0.0", "amqp==5.3.1", "edx-toggles==6.0.0", "webob==1.8.9", "prompt-toolkit==3.0.52", "click==8.4.1", "requests==2.34.2", "attrs==26.1.0", "click-didyoumean==0.3.1", "sqlparse==0.5.5", "pyyaml==6.0.3", "fastavro==1.12.2", "mako==1.3.12", "openedx-events==11.2.0", "pynacl==1.6.2", "django==5.2.14", "click-plugins==1.1.1.2"]',149,'["pytest-cov==7.1.0", "certifi==2026.5.20", "sphinxcontrib-devhelp==2.0.0", "psutil==7.2.2", "pylint-celery==0.3", "drf-jwt==1.19.2", "polib==1.2.0", "stevedore==5.8.0", "babel==2.18.0", "wcwidth==0.7.0", "sphinxcontrib-qthelp==2.0.0", "cachetools==7.1.4", "colorama==0.4.6", "jaraco-context==6.1.2", "edx-drf-extensions==10.6.0", "more-itertools==11.1.0", "jaraco-functools==4.5.0", "pycparser==3.0", "edx-opaque-keys[django]==4.0.0", "xblock==6.1.0", "edx-django-utils==8.0.1", "pip==26.1.2", "python-discovery==1.4.0", "cryptography==48.0.0", "freezegun==1.5.5", "pytest-django==4.12.0", "path==16.16.0", "pymongo==4.17.0", "dill==0.4.1", "tox==4.55.0", "snowballstemmer==3.1.0", "beautifulsoup4==4.14.3", "factory-boy==3.3.3", "rich==15.0.0", "webob==1.8.9", "edx-toggles==6.0.0", "prompt-toolkit==3.0.52", "imagesize==2.0.0", "attrs==26.1.0", "click-didyoumean==0.3.1", "jaraco-classes==3.4.0", "sphinxcontrib-serializinghtml==2.0.0", "doc8==2.0.0", "restructuredtext-lint==2.0.2", "django==5.2.14", "lxml[html-clean]==6.1.1", "roman-numerals==4.1.0", "lxml==6.1.1", "isort==8.0.1", "pyjwt[crypto]==2.13.0", "id==1.6.1", "virtualenv==21.4.2", "mdurl==0.1.2", "docutils==0.23", "fs==2.4.16", "filelock==3.29.0", "kombu==5.6.2", "billiard==4.2.4", "secretstorage==3.5.0", "djangorestframework==3.17.1", "build==1.5.0", "packaging==26.2", "idna==3.18", "text-unidecode==1.3", "sphinx==9.1.0", "pip-tools==7.5.3", "code-annotations==3.0.0", "pytz==2026.2", "pytest==9.0.3", "alabaster==1.0.0", "sphinxcontrib-applehelp==2.0.0", "diff-cover==10.3.0", "accessible-pygments==0.0.5", "astroid==4.0.4", "sqlparse==0.5.5", "pluggy==1.6.0", "pyyaml==6.0.3", "docutils==0.21.2", "fastavro==1.12.2", "nh3==0.3.5", "rfc3986==2.0.0", "edx-lint==6.1.0", "click-plugins==1.1.1.2", "django-model-utils==5.0.0", "web-fragments==4.0.0", "click-log==0.4.0", "celery==5.6.3", "pydocstyle==6.3.0", "pydata-sphinx-theme==0.16.1", "wheel==0.47.0", "mccabe==0.7.0", "six==1.17.0", "django-crum==0.7.9", "markdown-it-py==4.2.0", "django-waffle==5.0.0", "vine==5.1.0", "asgiref==3.11.1", "mock==5.2.0", "sphinx-book-theme==1.2.0", "coverage[toml]==7.14.1", "markupsafe==3.0.3", "pylint-django==2.7.0", "soupsieve==2.8.4", "lxml-html-clean==0.4.5", "click-repl==0.3.0", "pygments==2.20.0", "cffi==2.0.0", "amqp==5.3.1", "readme-renderer==44.0", "click==8.4.1", "requests==2.34.2", "sphinxcontrib-jsmath==1.0.1", "requests-toolbelt==1.0.0", "mako==1.3.12", "pylint-plugin-utils==0.9.0", "python-slugify==8.0.4", "distlib==0.4.1", "ddt==1.7.2", "pynacl==1.6.2", "setuptools==82.0.1", "sphinxcontrib-htmlhelp==2.1.0", "jinja2==3.1.6", "tzlocal==5.3.1", "edx-ccx-keys==2.0.2", "jeepney==0.9.0", "urllib3==2.7.0", "pyproject-hooks==1.2.0", "pylint==4.0.5", "keyring==25.7.0", "charset-normalizer==3.4.7", "iniconfig==2.3.0", "tomli-w==1.2.0", "chardet==7.4.3", "dnspython==2.8.0", "typing-extensions==4.15.0", "tzdata==2026.2", "event-tracking==4.0.2", "semantic-version==2.10.0", "python-dateutil==2.9.0.post0", "platformdirs==4.10.0", "pyproject-api==1.10.1", "twine==6.2.0", "pycodestyle==2.14.0", "appdirs==1.4.4", "faker==40.20.0", "simplejson==4.1.1", "edx-i18n-tools==2.0.0", "openedx-events==11.2.0", "tomlkit==0.15.0"]',13,'["djangorestframework", "event-tracking", "edx-drf-extensions", "xblock", "django-waffle", "pylint-django", "edx-i18n-tools", "code-annotations", "edx-django-utils", "pytest-django", "web-fragments", "edx-toggles", "factory-boy"]',16,'["djangorestframework", "event-tracking", "django-model-utils", "edx-drf-extensions", "xblock", "django-waffle", "pylint-django", "django-crum", "drf-jwt", "edx-i18n-tools", "code-annotations", "edx-django-utils", "pytest-django", "web-fragments", "edx-toggles", "factory-boy"]',9,'["event-tracking", "edx-drf-extensions", "xblock", "django-waffle", "edx-i18n-tools", "code-annotations", "edx-django-utils", "web-fragments", "edx-toggles"]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,20,'{"total_duration": "5 minutes 32 seconds", "checks": [{"name": "Dependabot", "duration": "4 minutes 12 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": "1 minutes 5 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-drf314)", "duration": "1 minutes 3 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 44 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 43 seconds"}]}','Other','2018-01-26 18:55:49','master','A library for tracking completion of blocks by learners in edX courses.',693,24,1,0,0,0,0,0,0,'2026-06-05 05:04:52','GNU AGPLv3',2,1,0,0,0,0,4866,87949,0,0,1,0,0,1,0,0,'','openedx',3,'[''http://your.lms.site/admin/waffle/switch/: HTTPConnectionPool(host=\''your.lms.site\'', port=80): Max retries exceeded with url: /admin/waffle/switch/ (Caused by NameResolutionError("HTTPConnection(host=\''your.lms.site\'', port=80): Failed to resolve \''your.lms.site\'' ([Errno -2] Name or service not known)"))'', ''https://docs.openedx.org/projects/completion: 404'', ''https://github.com/openedx/completion/blob/master/LICENSE.txt: 404'']',0,'[''https://docs.openedx.org/en/latest/educators/references/course_development/exercise_tools/completion.html'', ''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/completion'', ''https://img.shields.io/pypi/v/edx-completion.svg'', ''https://pypi.python.org/pypi/edx-completion/'', ''https://github.com/openedx/completion/actions/workflows/ci.yml/badge.svg?branch=master'', ''https://github.com/openedx/completion/actions/workflows/ci.yml?branch=master'', ''http://codecov.io/github/edx/completion/coverage.svg?branch=master'', ''http://codecov.io/github/edx/completion?branch=master'', ''https://readthedocs.org/projects/completion/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-completion.svg'', ''https://img.shields.io/github/license/edx/completion.svg'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-completion','[''3'', ''3.12'']','https://github.com/openedx/completion',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-mobile',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "124768 minutes 14 seconds", "checks": [{"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 50 seconds"}]}','Other','2025-08-22 19:07:00','main','Open edX Mobile working group board for platform-agnostic issues',8,2,1,0,0,0,0,0,0,'2025-10-30 15:57:59',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-aspects',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,16,'{"total_duration": "3210 minutes 55 seconds", "checks": [{"name": "update-uv-graph", "duration": "0 minutes 43 seconds"}, {"name": "Dependabot", "duration": "0 minutes 19 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 51 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 51 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 51 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2023-01-05 19:08:37','main','Aspects - Analytics for Open edX',6267,11,1,0,0,0,0,0,0,'2026-06-08 00:33:23','Apache License 2.0',2,0,0,0,0,0,1289,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://docs.astral.sh/uv/'', ''https://astral.sh/uv/install.sh'', ''https://github.com/orgs/openedx/projects/5/views/1'', ''https://docs.openedx.org/projects/openedx-aspects'', ''https://github.com/openedx/tutor-contrib-aspects'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-ledger',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,135,0,'[]',0,'',0,0,'','',47,'["stevedore==5.7.0", "drf-jwt==1.19.2", "dnspython==2.8.0", "rules==3.5", "urllib3==2.7.0", "certifi==2026.4.22", "semantic-version==2.10.0", "pyyaml==6.0.3", "cffi==2.0.0", "asgiref==3.11.1", "cryptography==48.0.0", "djangoql==0.19.1", "edx-drf-extensions==10.6.0", "click==8.3.3", "idna==3.14", "edx-django-release-util==1.5.0", "ply==3.11", "edx-ccx-keys==2.0.2", "django==5.2.14", "openedx-events==11.2.0", "edx-rbac==3.0.0", "pyjwt[crypto]==2.12.1", "mysqlclient==2.2.8", "charset-normalizer==3.4.7", "pycparser==3.0", "edx-django-utils==8.0.1", "pytz==2026.2", "django-waffle==5.0.0", "django-crum==0.7.9", "edx-opaque-keys[django]==4.0.0", "six==1.17.0", "django-extensions==4.1", "django-filter==25.2", "djangorestframework==3.17.1", "pynacl==1.6.2", "django-model-utils==5.0.0", "pymongo==4.17.0", "attrs==26.1.0", "redis==7.4.0", "requests==2.33.1", "fastavro==1.12.2", "typing-extensions==4.15.0", "django-simple-history==3.11.0", "sqlparse==0.5.5", "jsonfield2==4.0.0.post0", "django-object-actions==5.0.1", "psutil==7.2.2"]',135,'["isort==8.0.1", "alabaster==1.0.0", "sphinxcontrib-devhelp==2.0.0", "drf-jwt==1.19.2", "pytest-cov==7.1.0", "pyyaml==6.0.3", "babel==2.18.0", "imagesize==2.0.0", "click-log==0.4.0", "jaraco-classes==3.4.0", "restructuredtext-lint==2.0.2", "click==8.3.3", "edx-django-release-util==1.5.0", "pylint==4.0.5", "polib==1.2.0", "charset-normalizer==3.4.7", "tomlkit==0.15.0", "rich==15.0.0", "readme-renderer==44.0", "pylint-celery==0.3", "colorama==0.4.6", "djangorestframework==3.17.1", "requests-toolbelt==1.0.0", "twine==6.2.0", "fastavro==1.12.2", "typing-extensions==4.15.0", "django-simple-history==3.11.0", "nh3==0.3.5", "jinja2==3.1.6", "tomli-w==1.2.0", "stevedore==5.7.0", "dnspython==2.8.0", "urllib3==2.7.0", "packaging==26.2", "virtualenv==21.3.1", "factory-boy==3.3.3", "pluggy==1.6.0", "sphinxcontrib-qthelp==2.0.0", "filelock==3.29.0", "more-itertools==11.0.2", "edx-drf-extensions==10.6.0", "faker==40.15.0", "lxml-html-clean==0.4.4", "ply==3.11", "openedx-events==11.2.0", "edx-rbac==3.0.0", "pyjwt[crypto]==2.12.1", "sphinx-book-theme==1.2.0", "python-slugify==8.0.4", "django-waffle==5.0.0", "id==1.6.1", "text-unidecode==1.3", "django-crum==0.7.9", "mdurl==0.1.2", "six==1.17.0", "sphinxcontrib-serializinghtml==2.0.0", "markupsafe==3.0.3", "pyproject-api==1.10.0", "tox==4.53.1", "jeepney==0.9.0", "sqlparse==0.5.5", "jaraco-context==6.1.2", "coverage[toml]==7.14.0", "diff-cover==10.2.0", "django-object-actions==5.0.1", "pytz==2026.2", "psutil==7.2.2", "snowballstemmer==3.0.1", "setuptools==82.0.1", "rules==3.5", "ddt==1.7.2", "certifi==2026.4.22", "semantic-version==2.10.0", "cffi==2.0.0", "secretstorage==3.5.0", "asgiref==3.11.1", "cryptography==48.0.0", "pytest-django==4.12.0", "doc8==2.0.0", "idna==3.14", "django==5.2.14", "keyring==25.7.0", "pycparser==3.0", "pip-tools==7.5.3", "markdown-it-py==4.2.0", "astroid==4.0.4", "accessible-pygments==0.0.5", "pydocstyle==6.3.0", "soupsieve==2.8.3", "attrs==26.1.0", "lxml[html-clean]==6.1.0", "requests==2.33.1", "beautifulsoup4==4.14.3", "edx-lint==6.1.0", "sphinxcontrib-applehelp==2.0.0", "pylint-django==2.7.0", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", "jaraco-functools==4.4.0", "path==16.16.0", "build==1.5.0", "wheel==0.47.0", "iniconfig==2.3.0", "code-annotations==3.0.0", "sphinxcontrib-htmlhelp==2.1.0", "mccabe==0.7.0", "pylint-plugin-utils==0.9.0", "pygments==2.20.0", "djangoql==0.19.1", "platformdirs==4.9.6", "rfc3986==2.0.0", "distlib==0.4.0", "sphinx==9.1.0", "pytest==9.0.3", "edx-i18n-tools==2.0.0", "edx-ccx-keys==2.0.2", "mysqlclient==2.2.8", "pydata-sphinx-theme==0.16.1", "chardet==7.4.3", "sphinxcontrib-jsmath==1.0.1", "edx-django-utils==8.0.1", "edx-opaque-keys[django]==4.0.0", "python-discovery==1.3.0", "django-extensions==4.1", "django-filter==25.2", "dill==0.4.1", "pip==26.1.1", "pynacl==1.6.2", "cachetools==7.1.1", "django-model-utils==5.0.0", "pymongo==4.17.0", "redis==7.4.0", "docutils==0.21.2", "roman-numerals==4.1.0", "jsonfield2==4.0.0.post0"]',14,'["code-annotations", "django-extensions", "edx-django-utils", "django-filter", "django-waffle", "edx-drf-extensions", "django-object-actions", "djangorestframework", "factory-boy", "edx-i18n-tools", "pylint-django", "edx-rbac", "pytest-django", "edx-django-release-util"]',19,'["edx-django-utils", "django-object-actions", "django-crum", "edx-drf-extensions", "factory-boy", "edx-django-release-util", "code-annotations", "django-filter", "django-waffle", "drf-jwt", "djangorestframework", "edx-rbac", "django-extensions", "django-model-utils", "edx-i18n-tools", "django-simple-history", "pylint-django", "rules", "pytest-django"]',9,'["code-annotations", "django-extensions", "edx-django-utils", "django-filter", "django-waffle", "edx-drf-extensions", "edx-i18n-tools", "edx-rbac", "edx-django-release-util"]',1,NULL,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,27,'{"total_duration": "4776 minutes 20 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 14 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 48 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 35 seconds"}, {"name": "Dependabot", "duration": "0 minutes 22 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2022-12-21 21:16:19','main','A library that records transactions against a ledger, denominated in units of value.',487,7,1,0,0,0,0,0,0,'2026-06-08 03:12:00','GNU AGPLv3',3,1,0,3141,1493,0,5111,157592,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://docs.openedx.org/projects/openedx-ledger/how-tos/how-to-deploy-this-component.html: 404'', ''https://docs.openedx.org/projects/openedx-ledger: 404'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-ledger: 404'', ''https://github.com/openedx/openedx-ledger/actions: 504'', ''https://openedx-ledger.readthedocs.io/en/latest/: 404'', ''https://github.com/openedx/openedx-ledger/blob/main/LICENSE.txt: 504'']',1,'[''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://discuss.openedx.org'', ''https://github.com/openedx/openedx-ledger/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/pypi/v/openedx-ledger.svg'', ''https://pypi.python.org/pypi/openedx-ledger/'', ''https://github.com/openedx/openedx-ledger/workflows/Python%20CI/badge.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-ledger/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-ledger?branch=main'', ''https://readthedocs.org/projects/openedx-ledger/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/openedx-ledger.svg'', ''https://img.shields.io/github/license/openedx/openedx-ledger.svg'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-ledger','[''3'', ''3.12'']','https://github.com/openedx/openedx-ledger',1,1,1,0,0,0,0,0,0,'[]','[]','[''gcc'', ''build-essential'', ''libssl-dev'', ''install'', ''libmysqlclient-dev'', ''pkg-config'', ''language-pack-en'', ''locales'', ''python3-dev'', ''python3.12'', ''python3.12-venv'', ''git'', ''curl'', ''python3-pip'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/webhook-test-repo',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "30 minutes 45 seconds", "checks": [{"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}]}','Other','2020-06-10 09:38:45','master','A dummy repo for testing openedx-webhooks',9,5,1,0,0,0,0,0,0,'2025-02-12 18:21:32',NULL,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/i18n-tools',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,54,0,'[]',0,'',0,0,'','',8,'["polib==1.2.0", "lxml-html-clean==0.4.4", "lxml[html-clean]==6.0.2", "pyyaml==6.0.3", "sqlparse==0.5.5", "asgiref==3.11.1", "django==5.2.12", "path==16.16.0"]',54,'["lxml-html-clean==0.4.4", "six==1.17.0", "pyyaml==6.0.3", "distlib==0.4.0", "cachetools==7.0.3", "colorama==0.4.6", "dill==0.4.1", "wheel==0.46.3", "astroid==4.0.4", "ddt==1.7.2", "packaging==26.0", "path==16.16.0", "pylint==4.0.5", "mock==5.2.0", "stevedore==5.7.0", "tomlkit==0.14.0", "coverage[toml]==7.13.4", "polib==1.2.0", "pylint-plugin-utils==0.9.0", "pytest-cov==7.0.0", "pytz==2026.1.post1", "sqlparse==0.5.5", "jinja2==3.1.6", "tox==4.49.0", "pluggy==1.6.0", "filelock==3.25.0", "pip-tools==7.5.3", "python-discovery==1.1.1", "build==1.4.0", "iniconfig==2.3.0", "mccabe==0.7.0", "pyproject-api==1.10.0", "platformdirs==4.9.4", "python-slugify==8.0.4", "pyproject-hooks==1.2.0", "markupsafe==3.0.3", "django==5.2.12", "pytest==9.0.2", "pylint-django==2.7.0", "edx-lint==5.6.0", "isort==8.0.1", "lxml[html-clean]==6.0.2", "pycodestyle==2.14.0", "virtualenv==21.1.0", "pip==26.0.1", "code-annotations==2.3.2", "click==8.3.1", "pylint-celery==0.3", "text-unidecode==1.3", "asgiref==3.11.1", "click-log==0.4.0", "tomli-w==1.2.0", "pygments==2.19.2", "setuptools==82.0.0"]',2,'["code-annotations", "pylint-django"]',2,'["code-annotations", "pylint-django"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,32,'{"total_duration": "285 minutes 48 seconds", "checks": [{"name": "python-tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 3 seconds"}, {"name": "Dependabot", "duration": "1 minutes 1 seconds"}, {"name": "python-tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 59 seconds"}, {"name": "python-tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 46 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2014-06-03 21:09:08','master','Tools to help with internationalization and localization of Open edX projects',406,35,1,0,0,0,0,0,0,'2026-06-08 00:59:55','Apache License 2.0',13,1,0,0,0,0,2930,110653,0,0,1,0,1,1,0,1,'','openedx',3,'[''https://travis-ci.com/edx/i18n-tools: 415'']',0,'[''https://www.transifex.com/'', ''https://www.transifex.com'', ''https://github.com/openedx/edx-platform/blob/master/conf/locale/config.yaml'', ''https://travis-ci.com/edx/i18n-tools.svg?branch=master'', ''https://coveralls.io/repos/edx/i18n-tools/badge.png'', ''https://coveralls.io/r/edx/i18n-tools'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'edx-i18n-tools','[''3.12'']','https://github.com/openedx/i18n-tools',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/django-config-models',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,107,0,'[]',0,'',0,0,'','',13,'["edx-django-utils==8.0.1", "psutil==7.2.2", "django==5.2.14", "sqlparse==0.5.5", "stevedore==5.7.0", "django-crum==0.7.9", "pynacl==1.6.2", "cffi==2.0.0", "asgiref==3.11.1", "djangorestframework==3.17.1", "django-waffle==5.0.0", "click==8.3.3", "pycparser==3.0"]',107,'["babel==2.18.0", "asgiref==3.11.1", "isort==8.0.1", "tomli-w==1.2.0", "jinja2==3.1.6", "pip==26.1.1", "iniconfig==2.3.0", "platformdirs==4.9.6", "coverage[toml]==7.13.5", "sphinx-book-theme==1.2.0", "pytest-cov==7.1.0", "pygments==2.20.0", "pydata-sphinx-theme==0.16.1", "more-itertools==11.0.2", "pycparser==3.0", "pycodestyle==2.14.0", "readme-renderer==44.0", "sphinx==9.1.0", "sphinxcontrib-serializinghtml==2.0.0", "pluggy==1.6.0", "text-unidecode==1.3", "virtualenv==21.3.1", "requests==2.33.1", "alabaster==1.0.0", "pylint-plugin-utils==0.9.0", "setuptools==82.0.1", "lxml-html-clean==0.4.4", "click-log==0.4.0", "sphinxcontrib-htmlhelp==2.1.0", "docutils==0.22.4", "mdurl==0.1.2", "pyproject-hooks==1.2.0", "cryptography==48.0.0", "python-discovery==1.3.0", "wheel==0.47.0", "roman-numerals==4.1.0", "sphinxcontrib-devhelp==2.0.0", "ddt==1.7.2", "nh3==0.3.5", "django==5.2.14", "certifi==2026.4.22", "pyproject-api==1.10.0", "edx-django-utils==8.0.1", "twine==6.2.0", "pytest==9.0.3", "pydocstyle==6.3.0", "markupsafe==3.0.3", "jaraco-context==6.1.2", "pyyaml==6.0.3", "python-dateutil==2.9.0.post0", "cachetools==7.1.1", "path==16.16.0", "charset-normalizer==3.4.7", "packaging==26.2", "polib==1.2.0", "edx-i18n-tools==2.0.0", "pynacl==1.6.2", "requests-toolbelt==1.0.0", "filelock==3.29.0", "sphinxcontrib-jsmath==1.0.1", "build==1.5.0", "pylint-django==2.7.0", "rich==15.0.0", "freezegun==1.5.5", "jeepney==0.9.0", "snowballstemmer==3.0.1", "click==8.3.3", "tox==4.53.1", "jaraco-functools==4.4.0", "python-slugify==8.0.4", "tomlkit==0.14.0", "sqlparse==0.5.5", "psutil==7.2.2", "idna==3.13", "django-crum==0.7.9", "cffi==2.0.0", "markdown-it-py==4.2.0", "pip-tools==7.5.3", "six==1.17.0", "edx-lint==6.1.0", "soupsieve==2.8.3", "typing-extensions==4.15.0", "rfc3986==2.0.0", "code-annotations==3.0.0", "colorama==0.4.6", "pytest-django==4.12.0", "stevedore==5.7.0", "distlib==0.4.0", "djangorestframework==3.17.1", "astroid==4.0.4", "sphinxcontrib-qthelp==2.0.0", "beautifulsoup4==4.14.3", "urllib3==2.7.0", "pylint==4.0.5", "id==1.6.1", "edx-django-release-util==1.5.0", "jaraco-classes==3.4.0", "dill==0.4.1", "pylint-celery==0.3", "secretstorage==3.5.0", "accessible-pygments==0.0.5", "django-waffle==5.0.0", "sphinxcontrib-applehelp==2.0.0", "lxml[html-clean]==6.1.0", "imagesize==2.0.0", "keyring==25.7.0", "mccabe==0.7.0"]',8,'["pylint-django", "code-annotations", "edx-i18n-tools", "djangorestframework", "pytest-django", "django-waffle", "edx-django-release-util", "edx-django-utils"]',9,'["pylint-django", "code-annotations", "django-crum", "edx-i18n-tools", "djangorestframework", "pytest-django", "django-waffle", "edx-django-release-util", "edx-django-utils"]',5,'["code-annotations", "edx-i18n-tools", "django-waffle", "edx-django-release-util", "edx-django-utils"]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,11,'{"total_duration": "8258 minutes 56 seconds", "checks": [{"name": "upgrade_requirements / upgrade_requirements", "duration": "1 minutes 17 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 46 seconds"}, {"name": "Dependabot", "duration": "0 minutes 41 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 38 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": "0 minutes 29 seconds"}, {"name": "tests (ubuntu-latest, 3.12, check_keywords)", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}]}','Other','2016-10-06 17:42:39','master','Configuration models for Django allowing config management with auditing.',598,22,1,0,0,0,0,0,0,'2026-06-08 04:34:13','GNU AGPLv3',5,1,0,0,662,0,3842,79643,0,0,1,0,0,1,0,0,'','openedx',1,'[''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://openedx.org/code-of-conduct/: 403'']',1,'[''https://github.com/openedx/django-config-models/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/django-config-models/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/openedx/django-config-models/coverage.svg?branch=master'', ''http://codecov.io/github/openedx/django-config-models?branch=master'', ''https://img.shields.io/pypi/v/django-config-models.svg'', ''https://pypi.python.org/pypi/django-config-models/'', ''https://readthedocs.org/projects/django-config-models/badge/?version=latest'', ''http://django-config-models.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/django-config-models.svg'', ''https://img.shields.io/github/license/edx/django-config-models.svg'', ''https://github.com/openedx/django-config-models/blob/master/LICENSE.txt'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://django-config-models.readthedocs.org'', ''https://discuss.openedx.org'', ''https://github.com/openedx/django-config-models'', ''https://openedx.slack.com/'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://backstage.openedx.org/catalog/default/component/django-config-models'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'django-config-models','[''3'', ''3.12'']','https://github.com/openedx/django-config-models',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/event-bus-kafka',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,126,0,'[]',0,'',0,0,'','',28,'["django==4.2.25", "six==1.17.0", "code-annotations==2.3.0", "pycparser==2.23", "pynacl==1.6.0", "markupsafe==3.0.3", "pyyaml==6.0.3", "dnspython==2.8.0", "psutil==7.1.1", "attrs==25.4.0", "openedx-events==10.5.0", "python-slugify==8.0.4", "cffi==2.0.0", "edx-toggles==5.4.1", "edx-ccx-keys==2.0.2", "stevedore==5.5.0", "sqlparse==0.5.3", "fastavro==1.12.1", "edx-opaque-keys[django]==3.0.0", "pymongo==4.15.3", "django-crum==0.7.9", "edx-django-utils==8.0.1", "click==8.3.0", "asgiref==3.10.0", "text-unidecode==1.3", "typing-extensions==4.15.0", "django-waffle==5.0.0", "jinja2==3.1.6"]',126,'["django==4.2.25", "platformdirs==4.5.0", "pycparser==2.23", "alabaster==1.0.0", "importlib-metadata==8.7.0", "sniffio==1.3.1", "charset-normalizer==3.4.4", "confluent-kafka[avro,schema-registry]==2.12.0", "lxml-html-clean==0.4.3", "openedx-events==10.5.0", "pyproject-hooks==1.2.0", "python-slugify==8.0.4", "ddt==1.7.2", "stevedore==5.5.0", "sqlparse==0.5.3", "pymongo==4.15.3", "chardet==5.2.0", "filelock==3.20.0", "soupsieve==2.8", "jaraco-classes==3.4.0", "secretstorage==3.4.0", "backports-tarfile==1.2.0", "tox==4.31.0", "pylint==3.3.9", "pydocstyle==6.3.0", "colorama==0.4.6", "edx-i18n-tools==1.9.0", "sphinxcontrib-applehelp==2.0.0", "asgiref==3.10.0", "pycodestyle==2.14.0", "sphinxcontrib-devhelp==2.0.0", "text-unidecode==1.3", "pyproject-api==1.10.0", "jeepney==0.9.0", "pygments==2.19.2", "sphinxcontrib-htmlhelp==2.1.0", "pytest-django==4.11.1", "setuptools==80.9.0", "path==16.16.0", "wheel==0.45.1", "dill==0.4.0", "rfc3986==2.0.0", "edx-lint==5.6.0", "diff-cover==9.7.1", "jinja2==3.1.6", "tomli==2.3.0", "markupsafe==3.0.3", "imagesize==1.4.1", "packaging==25.0", "attrs==25.4.0", "pylint-celery==0.3", "cffi==2.0.0", "docutils==0.22.2", "cachetools==6.2.1", "lxml[html-clean]==6.0.2", "authlib==1.6.5", "fastavro==1.12.1", "readme-renderer==44.0", "h11==0.16.0", "cryptography==46.0.3", "pytest==8.4.2", "django-crum==0.7.9", "pylint-plugin-utils==0.9.0", "sphinxcontrib-jsmath==1.0.1", "nh3==0.3.1", "avro==1.12.1", "tomlkit==0.13.3", "httpcore==1.0.9", "markdown-it-py==4.0.0", "doc8==2.0.0", "pylint-django==2.6.1", "rich==14.2.0", "build==1.3.0", "id==1.5.0", "roman-numerals-py==3.1.0", "keyring==25.6.0", "psutil==7.1.1", "more-itertools==10.8.0", "pydata-sphinx-theme==0.15.4", "mccabe==0.7.0", "jaraco-functools==4.3.0", "isort==6.1.0", "edx-toggles==5.4.1", "docutils==0.21.2", "sphinx==8.2.3", "babel==2.17.0", "pytest-cov==7.0.0", "urllib3==2.5.0", "sphinxcontrib-serializinghtml==2.0.0", "zipp==3.23.0", "sphinx-book-theme==1.1.4", "anyio==4.11.0", "edx-django-utils==8.0.1", "sphinxcontrib-qthelp==2.0.0", "distlib==0.4.0", "twine==6.2.0", "restructuredtext-lint==1.4.0", "polib==1.2.0", "httpx==0.28.1", "jaraco-context==6.0.1", "typing-extensions==4.15.0", "requests-toolbelt==1.0.0", "requests==2.32.5", "click-log==0.4.0", "six==1.17.0", "code-annotations==2.3.0", "virtualenv==20.35.3", "mdurl==0.1.2", "idna==3.11", "pyyaml==6.0.3", "dnspython==2.8.0", "astroid==3.3.11", "pip-tools==7.5.1", "edx-ccx-keys==2.0.2", "beautifulsoup4==4.14.2", "snowballstemmer==3.0.1", "accessible-pygments==0.0.5", "edx-opaque-keys[django]==3.0.0", "pip==25.2", "iniconfig==2.3.0", "click==8.3.0", "certifi==2025.10.5", "coverage[toml]==7.11.0", "django-waffle==5.0.0", "pluggy==1.6.0", "pynacl==1.6.0"]',7,'["edx-i18n-tools", "code-annotations", "edx-django-utils", "django-waffle", "edx-toggles", "pytest-django", "pylint-django"]',9,'["edx-i18n-tools", "django-crum", "code-annotations", "edx-django-utils", "django-waffle", "authlib", "edx-toggles", "pytest-django", "pylint-django"]',5,'["edx-i18n-tools", "code-annotations", "edx-django-utils", "django-waffle", "edx-toggles"]',1,NULL,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,12,'{"total_duration": "6242 minutes 59 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 50 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 48 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 40 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 30 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}]}','Other','2022-06-11 18:50:06','main','Kafka implementation for Open edX event bus',540,7,1,0,0,0,0,0,0,'2026-05-30 15:24:17','GNU AGPLv3',7,1,0,0,662,0,4152,138701,0,1,1,0,0,1,0,0,'','openedx',1,'[''https://github.com/openedx/event-bus-kafka/blob/main/docs/decisions/0005-optional-import-of-confluent-kafka.rst: 504'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md: 504'', ''https://openedx-slack-invite.herokuapp.com/: 404'', ''https://github.com/openedx/event-bus-kafka/workflows/Python%20CI/badge.svg?branch=main: 504'', ''https://edx-event-bus-kafka.readthedocs.io/en/latest/: 404'']',1,'[''https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0052-arch-event-bus-architecture.html'', ''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://discuss.openedx.org'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://img.shields.io/pypi/v/edx-event-bus-kafka.svg'', ''https://pypi.python.org/pypi/edx-event-bus-kafka/'', ''https://github.com/openedx/event-bus-kafka/actions'', ''https://codecov.io/github/openedx/event-bus-kafka/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/event-bus-kafka?branch=main'', ''https://readthedocs.org/projects/edx-event-bus-kafka/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-event-bus-kafka.svg'', ''https://img.shields.io/github/license/openedx/event-bus-kafka.svg'', ''https://github.com/openedx/event-bus-kafka/blob/main/LICENSE.txt'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx_event_bus_kafka','[''3'', ''3.12'']','https://github.com/openedx/event-bus-kafka',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-template-site',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,8,0,'',0,'{}',6,2,'{"@edx/browserslist-config": "^1.5.0", "turbo": "^2.8.16"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.3.0 || 0.0.0-dev", "@openedx/frontend-app-authn": "^1.0.0-alpha || 0.0.0-dev", "@openedx/frontend-app-learner-dashboard": "^1.0.0-alpha || 0.0.0-dev", "@openedx/frontend-app-instructor-dashboard": "^1.0.0-alpha || 0.0.0-dev", "@openedx/frontend-app-notifications": "^3.0.0-alpha || 0.0.0-dev", "@openedx/frontend-base": "^1.0.0-alpha || 0.0.0-dev"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "1 minutes 8 seconds", "checks": [{"name": "tests", "duration": "1 minutes 8 seconds"}]}','Other','2025-06-27 13:43:21','main','This repository is a template for Open edX frontend sites.',453,4,1,0,0,0,0,0,0,'2026-05-20 13:10:29','GNU AGPLv3',0,1,0,0,258,231,638,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-site: 404'', ''https://github.com/openedx/frontend-template-application/blob/main/LICENSE: 404'']',0,'[''https://github.com/nvm-sh/nvm'', ''https://bindfs.org/'', ''https://docs.npmjs.com/cli/using-npm/workspaces'', ''https://github.com/semantic-release/semantic-release'', ''https://turbo.build/'', ''https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst'', ''https://github.com/openedx/openedx-translations'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-template-application.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-template-application/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-template-application?branch=main'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/enterprise-catalog',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,204,0,'[]',0,'',0,0,'','',119,'["jsonfield2==4.0.0.post0", "tzdata==2025.3", "monotonic==1.6", "pytz==2025.2", "cffi==2.0.0", "dnspython==2.8.0", "edx-drf-extensions==10.6.0", "django-cors-headers==4.9.0", "simplejson==3.20.2", "numpy==2.4.1", "click-repl==0.3.0", "semantic-version==2.10.0", "scikit-learn==1.8.0", "cryptography==46.0.3", "zope-interface==8.2", "vine==5.1.0", "pyjwt[crypto]==2.10.1", "django-clearcache==1.2.1", "sqlparse==0.5.5", "packaging==25.0", "jsonschema-specifications==2025.9.1", "psutil==7.2.1", "tzlocal==5.3.1", "backoff==1.10.0", "attrs==25.4.0", "edx-toggles==5.4.1", "algoliasearch==3.0.0", "httpcore==1.0.9", "asgiref==3.11.0", "edx-django-utils==8.0.1", "django-celery-results==2.6.0", "stevedore==5.6.0", "social-auth-app-django==5.7.0", "edx-django-release-util==1.5.0", "python3-openid==3.2.0", "django-simple-history==3.11.0", "edx-rest-api-client==6.2.0", "amqp==5.3.1", "uritemplate==4.2.0", "drf-spectacular==0.29.0", "certifi==2026.1.4", "mysqlclient==2.2.7", "edx-rbac==2.1.0", "edx-celeryutils==1.4.0", "gunicorn==23.0.0", "jsonschema==4.26.0", "djangorestframework-xml==2.0.0", "pymemcache==4.0.0", "redis==7.1.0", "requests-oauthlib==2.0.0", "gevent==25.9.1", "kombu==5.6.2", "djangoql==0.18.1", "typing-extensions==4.15.0", "jsonfield==3.2.0", "zipp==3.23.0", "referencing==0.37.0", "click-plugins==1.1.1.2", "charset-normalizer==3.4.4", "pydantic-core==2.41.5", "httpx==0.28.1", "markupsafe==3.0.3", "python-slugify==8.0.4", "idna==3.11", "jinja2==3.1.6", "ply==3.11", "django-model-utils==5.0.0", "rpds-py==0.30.0", "zope-event==6.1", "edx-auth-backends==4.6.2", "analytics-python==1.4.post1", "greenlet==3.3.0", "defusedxml==0.7.1", "xlsxwriter==3.2.9", "tqdm==4.67.1", "annotated-types==0.7.0", "djangorestframework==3.16.1", "click==8.3.1", "text-unidecode==1.3", "django==5.2.10", "distro==1.9.0", "django-import-export==4.4.0", "pymongo==4.16.0", "django-extensions==4.1", "tablib==3.9.0", "anyio==4.12.1", "openai==1.13.3", "code-annotations==2.3.0", "threadpoolctl==3.6.0", "drf-jwt==1.19.2", "celery==5.6.2", "urllib3==2.6.3", "pycparser==2.23", "edx-opaque-keys==3.0.0", "pynacl==1.6.2", "wcwidth==0.2.14", "click-didyoumean==0.3.1", "django-waffle==5.0.0", "django-crum==0.7.9", "diff-match-patch==20241021", "h11==0.16.0", "rules==3.5", "social-auth-core==4.8.3", "oauthlib==3.3.1", "python-memcached==1.62", "sniffio==1.3.1", "six==1.17.0", "billiard==4.2.4", "scipy==1.17.0", "django-config-models==2.9.0", "joblib==1.5.3", "prompt-toolkit==3.0.52", "typing-inspection==0.4.2", "requests==2.32.5", "django-log-request-id==2.1.0", "inflection==0.5.1", "pydantic==2.12.5", "pyyaml==6.0.3", "python-dateutil==2.9.0.post0"]',204,'["faker==40.1.0", "jsonfield2==4.0.0.post0", "mccabe==0.7.0", "tzdata==2025.3", "monotonic==1.6", "pytz==2025.2", "pylint-plugin-utils==0.9.0", "imagesize==1.4.1", "cffi==2.0.0", "dnspython==2.8.0", "alabaster==1.0.0", "coverage[toml]==7.13.1", "edx-drf-extensions==10.6.0", "django-cors-headers==4.9.0", "simplejson==3.20.2", "numpy==2.4.1", "click-repl==0.3.0", "pyparsing==3.0.7", "pygments==2.19.2", "semantic-version==2.10.0", "scikit-learn==1.8.0", "cryptography==46.0.3", "zope-interface==8.2", "vine==5.1.0", "platformdirs==2.4.1", "responses==0.25.8", "pyjwt[crypto]==2.10.1", "django-clearcache==1.2.1", "sqlparse==0.5.5", "packaging==25.0", "jsonschema-specifications==2025.9.1", "psutil==7.2.1", "tzlocal==5.3.1", "backoff==1.10.0", "attrs==25.4.0", "edx-toggles==5.4.1", "algoliasearch==3.0.0", "httpcore==1.0.9", "asgiref==3.11.0", "edx-django-utils==8.0.1", "django-celery-results==2.6.0", "stevedore==5.6.0", "pytest-cov==7.0.0", "social-auth-app-django==5.7.0", "edx-django-release-util==1.5.0", "python3-openid==3.2.0", "pyproject-hooks==1.2.0", "pydata-sphinx-theme==0.15.4", "django-simple-history==3.11.0", "click-log==0.4.0", "edx-rest-api-client==6.2.0", "amqp==5.3.1", "polib==1.2.0", "uritemplate==4.2.0", "platformdirs==4.5.1", "inflect==7.5.0", "babel==2.17.0", "drf-spectacular==0.29.0", "certifi==2026.1.4", "typeguard==4.4.4", "mysqlclient==2.2.7", "pyproject-api==1.10.0", "django-debug-toolbar==6.1.0", "edx-rbac==2.1.0", "edx-celeryutils==1.4.0", "build==1.4.0", "pylint-celery==0.3", "gunicorn==23.0.0", "pluggy==1.6.0", "cachetools==6.2.4", "docutils==0.21.2", "jsonschema==4.26.0", "filelock==3.4.2", "sphinxcontrib-devhelp==2.0.0", "djangorestframework-xml==2.0.0", "pymemcache==4.0.0", "redis==7.1.0", "requests-oauthlib==2.0.0", "kombu==5.6.2", "jinja2-pluralize==0.3.0", "pylint-django==2.7.0", "gevent==25.9.1", "djangoql==0.18.1", "typing-extensions==4.15.0", "more-itertools==10.8.0", "toml==0.10.2", "restructuredtext-lint==2.0.2", "jsonfield==3.2.0", "zipp==3.23.0", "referencing==0.37.0", "diff-cover==4.0.0", "roman-numerals==4.1.0", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-serializinghtml==2.0.0", "sphinx==9.1.0", "click-plugins==1.1.1.2", "charset-normalizer==3.4.4", "pydantic-core==2.41.5", "httpx==0.28.1", "dill==0.4.0", "markupsafe==3.0.3", "pytest-django==4.11.1", "chardet==5.2.0", "idna==3.11", "python-slugify==8.0.4", "isort==7.0.0", "jinja2==3.1.6", "virtualenv==20.36.1", "packaging==21.3", "django-model-utils==5.0.0", "ply==3.11", "edx-lint==5.6.0", "rpds-py==0.30.0", "doc8==2.0.0", "zope-event==6.1", "edx-auth-backends==4.6.2", "analytics-python==1.4.post1", "greenlet==3.3.0", "defusedxml==0.7.1", "xlsxwriter==3.2.9", "tox==4.34.1", "tqdm==4.67.1", "accessible-pygments==0.0.5", "wheel==0.45.1", "annotated-types==0.7.0", "djangorestframework==3.16.1", "edx-i18n-tools==1.9.0", "filelock==3.20.3", "pip==25.2", "click==8.3.1", "text-unidecode==1.3", "pycodestyle==2.14.0", "django==5.2.10", "pip-tools==7.5.2", "distlib==0.4.0", "distro==1.9.0", "django-import-export==4.4.0", "pymongo==4.16.0", "sphinxcontrib-qthelp==2.0.0", "django-extensions==4.1", "tablib==3.9.0", "readme-renderer==44.0", "anyio==4.12.1", "openai==1.13.3", "path==16.16.0", "code-annotations==2.3.0", "threadpoolctl==3.6.0", "setuptools==80.9.0", "soupsieve==2.8.1", "drf-jwt==1.19.2", "pluggy==1.0.0", "celery==5.6.2", "urllib3==2.6.3", "tomlkit==0.13.3", "sphinxcontrib-htmlhelp==2.1.0", "sphinxcontrib-applehelp==2.0.0", "pycparser==2.23", "edx-opaque-keys==3.0.0", "pynacl==1.6.2", "pytest==9.0.2", "snowballstemmer==3.0.1", "wcwidth==0.2.14", "click-didyoumean==0.3.1", "colorama==0.4.6", "tox==3.24.5", "django-waffle==5.0.0", "django-crum==0.7.9", "diff-match-patch==20241021", "h11==0.16.0", "ddt==1.7.2", "iniconfig==2.3.0", "rules==3.5", "pydocstyle==6.3.0", "social-auth-core==4.8.3", "sphinx-book-theme==1.1.4", "virtualenv==20.13.1", "django-dynamic-fixture==4.0.1", "oauthlib==3.3.1", "py==1.11.0", "python-memcached==1.62", "sniffio==1.3.1", "six==1.17.0", "six==1.16.0", "distlib==0.3.4", "billiard==4.2.4", "scipy==1.17.0", "pylint==4.0.4", "lxml-html-clean==0.4.3", "lxml[html-clean]==6.0.2", "django-config-models==2.9.0", "tox-battery==0.6.1", "astroid==4.0.3", "joblib==1.5.3", "nh3==0.3.2", "prompt-toolkit==3.0.52", "typing-inspection==0.4.2", "requests==2.32.5", "factory-boy==3.3.3", "django-log-request-id==2.1.0", "inflection==0.5.1", "beautifulsoup4==4.14.3", "pydantic==2.12.5", "pyyaml==6.0.3", "python-dateutil==2.9.0.post0"]',22,'["django-cors-headers", "edx-celeryutils", "edx-rest-api-client", "djangorestframework", "factory-boy", "django-config-models", "edx-toggles", "django-waffle", "edx-i18n-tools", "edx-drf-extensions", "pytest-django", "edx-auth-backends", "django-debug-toolbar", "code-annotations", "edx-django-utils", "edx-django-release-util", "django-extensions", "django-celery-results", "edx-opaque-keys", "edx-rbac", "social-auth-app-django", "pylint-django"]',30,'["django-cors-headers", "edx-celeryutils", "edx-rest-api-client", "rules", "djangorestframework", "factory-boy", "jsonfield", "django-config-models", "edx-toggles", "django-waffle", "edx-i18n-tools", "edx-drf-extensions", "django-model-utils", "pytest-django", "drf-jwt", "django-crum", "edx-auth-backends", "django-debug-toolbar", "code-annotations", "edx-django-utils", "edx-django-release-util", "django-extensions", "django-celery-results", "edx-opaque-keys", "edx-rbac", "social-auth-app-django", "djangorestframework-xml", "django-simple-history", "django-dynamic-fixture", "pylint-django"]',18,'["edx-toggles", "django-extensions", "django-cors-headers", "edx-drf-extensions", "django-waffle", "edx-celeryutils", "django-config-models", "edx-rest-api-client", "django-celery-results", "edx-auth-backends", "edx-opaque-keys", "django-debug-toolbar", "code-annotations", "social-auth-app-django", "edx-django-utils", "edx-django-release-util", "edx-rbac", "edx-i18n-tools"]',0,NULL,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1,83,'{"total_duration": "14313 minutes 22 seconds", "checks": [{"name": "build (3.12, django52)", "duration": "5 minutes 32 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 59 seconds"}, {"name": "check migration for MySql8 (ubuntu-latest, 3.12)", "duration": "1 minutes 11 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 53 seconds"}]}','Other','2019-12-10 15:58:48','master','A Django-based microservice for handling Enterprise catalogs, associating enterprise customers with curated courses from the full course catalog.',48467,28,1,0,0,0,0,0,0,'2026-04-30 15:38:34','GNU AGPLv3',20,1,0,0,0,0,8738,1433709,2528,1,1,0,0,1,0,0,'','openedx',9,'[''https://travis-ci.com/edx/enterprise-catalog: 415'', ''https://github.com/openedx/enterprise-catalog/blob/master/LICENSE: 504'']',0,'[''https://travis-ci.com/edx/enterprise-catalog.svg?branch=master'', ''http://codecov.io/github/edx/enterprise-catalog/coverage.svg?branch=master'', ''http://codecov.io/github/edx/enterprise-catalog?branch=master'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://openedx.slack.com/messages/general/'', ''https://groups.google.com/forum/'']',1,0,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,NULL,'[]',NULL,1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-proctoring',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,158,0,'[]',0,'{}',0,17,'{"babel-polyfill": "^6.26.0", "eslint": "^5.9.0", "eslint-config-edx": "^4.0.4", "eslint-config-edx-es5": "^4.0.1", "eslint-plugin-jsx-a11y": "^6.5.1", "gulp": "4.0.0", "gulp-karma": "0.0.1", "jasmine-core": "^2.8.0", "karma": "^0.13.0", "karma-chrome-launcher": "^0.2.0", "karma-coverage": "^1.1.1", "karma-jasmine": "^0.3.6", "karma-jasmine-jquery-2": "latest", "karma-phantomjs-launcher": "^1.0.4", "karma-sinon": "^1.0.5", "phantomjs-prebuilt": "^2.1.14", "sinon": "^3.2.1"}','{}',73,'["celery==5.6.2", "django-model-utils==5.0.0", "django-webpack-loader==0.7.0", "fs==2.4.16", "kombu==5.6.2", "openedx-events==10.5.0", "edx-opaque-keys[django]==3.1.0", "pyjwt[crypto]==2.12.0", "dnspython==2.8.0", "pyyaml==6.0.3", "python-slugify==8.0.4", "django-waffle==5.0.0", "amqp==5.3.1", "djangorestframework==3.16.1", "jsonfield==3.2.0", "certifi==2026.2.25", "edx-rest-api-client==6.2.0", "edx-when==3.2.1", "jinja2==3.1.6", "python-dateutil==2.9.0.post0", "stevedore==5.7.0", "urllib3==2.6.3", "attrs==25.4.0", "click-didyoumean==0.3.1", "tzlocal==5.3.1", "django-ipware==7.0.1", "requests==2.32.5", "click==8.3.1", "pytz==2026.1.post1", "click-plugins==1.1.1.2", "vine==5.1.0", "text-unidecode==1.3", "rules==3.5", "webob==1.8.9", "packaging==26.0", "drf-jwt==1.19.2", "billiard==4.2.4", "charset-normalizer==3.4.5", "cryptography==46.0.5", "pycryptodomex==3.23.0", "python-ipware==3.0.0", "cffi==2.0.0", "edx-drf-extensions==10.6.0", "appdirs==1.4.4", "code-annotations==2.3.2", "edx-ccx-keys==2.0.2", "event-tracking==3.3.0", "fastavro==1.12.1", "simplejson==3.20.2", "wcwidth==0.6.0", "xblock==5.3.0", "asgiref==3.11.1", "web-fragments==4.0.0", "django==5.2.12", "psutil==7.2.2", "prompt-toolkit==3.0.52", "markupsafe==3.0.3", "django-crum==0.7.9", "django-simple-history==3.11.0", "pynacl==1.6.2", "lxml==6.0.2", "idna==3.11", "tzdata==2025.3", "mako==1.3.10", "click-repl==0.3.0", "edx-toggles==5.4.1", "pycparser==3.0", "semantic-version==2.10.0", "edx-django-utils==8.0.1", "six==1.17.0", "sqlparse==0.5.5", "typing-extensions==4.15.0", "pymongo==4.16.0"]',141,'["django-model-utils==5.0.0", "kombu==5.6.2", "edx-lint==6.0.0", "edx-i18n-tools==2.0.0", "pyjwt[crypto]==2.12.0", "django-waffle==5.0.0", "amqp==5.3.1", "jsonfield==3.2.0", "python-dateutil==2.9.0.post0", "astroid==4.0.4", "pygments==2.19.2", "vine==5.1.0", "packaging==26.0", "cryptography==46.0.5", "cffi==2.0.0", "appdirs==1.4.4", "fastavro==1.12.1", "freezegun==1.5.5", "wheel==0.46.3", "shellingham==1.5.4", "pylint-celery==0.3", "markupsafe==3.0.3", "mako==1.3.10", "virtualenv==21.2.0", "six==1.17.0", "path-py==12.5.0", "edx-opaque-keys[django]==3.1.0", "python-discovery==1.1.3", "dnspython==2.8.0", "markdown-it-py==4.0.0", "djangorestframework==3.16.1", "jinja2==3.1.6", "stevedore==5.7.0", "coverage[toml]==7.13.4", "attrs==25.4.0", "httpretty==1.1.4", "django-ipware==7.0.1", "build==1.4.0", "pytz==2026.1.post1", "click-plugins==1.1.1.2", "text-unidecode==1.3", "webob==1.8.9", "pyproject-api==1.10.0", "drf-jwt==1.19.2", "python-ipware==3.0.0", "pycryptodomex==3.23.0", "iniconfig==2.3.0", "pydantic==2.12.5", "pylint-django==2.7.0", "edx-drf-extensions==10.6.0", "code-annotations==2.3.2", "mccabe==0.7.0", "pytest-django==4.12.0", "factory-boy==3.3.3", "rstcheck==6.2.5", "pydantic-core==2.41.5", "asgiref==3.11.1", "web-fragments==4.0.0", "psutil==7.2.2", "prompt-toolkit==3.0.52", "django-crum==0.7.9", "lxml==6.0.2", "tzdata==2025.3", "pytest-xdist==3.8.0", "mock==5.2.0", "snowballstemmer==3.0.1", "edx-django-utils==8.0.1", "sqlparse==0.5.5", "typing-extensions==4.15.0", "pymongo==4.16.0", "celery==5.6.2", "openedx-events==10.5.0", "fs==2.4.16", "rich==14.3.3", "filelock==3.25.2", "tomlkit==0.14.0", "python-slugify==8.0.4", "isort==8.0.1", "typer==0.24.1", "certifi==2026.2.25", "execnet==2.1.2", "diff-cover==10.2.0", "urllib3==2.6.3", "coverage==7.13.4", "click-didyoumean==0.3.1", "requests==2.32.5", "annotated-doc==0.0.4", "rules==3.5", "colorama==0.4.6", "billiard==4.2.4", "charset-normalizer==3.4.5", "tox==4.49.1", "httmock==1.4.0", "simplejson==3.20.2", "edx-ccx-keys==2.0.2", "event-tracking==3.3.0", "tomli-w==1.2.0", "ddt==1.7.2", "django==5.2.12", "responses==0.26.0", "django-simple-history==3.11.0", "rstcheck-core==1.2.2", "idna==3.11", "lxml-html-clean==0.4.4", "pycparser==3.0", "polib==1.2.0", "docutils==0.22.4", "pytest==9.0.2", "pyproject-hooks==1.2.0", "chardet==7.1.0", "django-webpack-loader==0.7.0", "pylint-plugin-utils==0.9.0", "pyyaml==6.0.3", "faker==40.11.0", "edx-rest-api-client==6.2.0", "edx-when==3.2.1", "click-log==0.4.0", "pip-tools==7.5.3", "tzlocal==5.3.1", "lxml[html-clean]==6.0.2", "click==8.3.1", "pydocstyle==6.3.0", "pytest-cov==7.0.0", "path==16.16.0", "distlib==0.4.0", "pluggy==1.6.0", "testfixtures==11.0.0", "dill==0.4.1", "platformdirs==4.9.4", "wcwidth==0.6.0", "typing-inspection==0.4.2", "annotated-types==0.7.0", "xblock==5.3.0", "pynacl==1.6.2", "click-repl==0.3.0", "pycodestyle==2.14.0", "mdurl==0.1.2", "edx-toggles==5.4.1", "semantic-version==2.10.0", "pylint==4.0.5", "cachetools==7.0.5"]',16,'["edx-drf-extensions", "pylint-django", "xblock", "factory-boy", "edx-when", "code-annotations", "edx-django-utils", "event-tracking", "edx-i18n-tools", "django-webpack-loader", "edx-rest-api-client", "edx-toggles", "django-waffle", "pytest-django", "djangorestframework", "web-fragments"]',23,'["factory-boy", "django-crum", "django-webpack-loader", "edx-rest-api-client", "djangorestframework", "edx-drf-extensions", "jsonfield", "edx-when", "edx-django-utils", "edx-toggles", "drf-jwt", "code-annotations", "rules", "event-tracking", "django-waffle", "web-fragments", "pylint-django", "xblock", "edx-i18n-tools", "pytest-django", "django-model-utils", "django-simple-history", "django-ipware"]',11,'["edx-drf-extensions", "xblock", "edx-when", "code-annotations", "edx-django-utils", "event-tracking", "edx-i18n-tools", "edx-rest-api-client", "edx-toggles", "django-waffle", "web-fragments"]',0,NULL,1,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,39,'{"total_duration": "4415 minutes 55 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, 20, django42-drflatest)", "duration": "1 minutes 21 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, django52-drflatest)", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, quality)", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, translations-django52)", "duration": "1 minutes 16 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, translations-django42)", "duration": "1 minutes 15 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, js_lint)", "duration": "1 minutes 8 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, js_tests)", "duration": "1 minutes 2 seconds"}, {"name": "Test (ubuntu-latest, 3.12)", "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, rst_validation)", "duration": "0 minutes 40 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, pii_check)", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, version_check)", "duration": "0 minutes 34 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2015-06-08 13:38:04','master','',12059,95,1,0,0,0,0,0,0,'2026-06-02 16:51:47','GNU AGPLv3',11,1,0,0,56727,235711,6736,1099322,0,1,1,1,1,1,1,1,'@edx/edx-proctoring','openedx',6,'[''https://open.edx.org/getting-help: 403'', ''https://docs.openedx.org/en/latest/educators/concepts/proctored_exams/proctored_exams_overview.html: 404'']',1,'[''https://img.shields.io/pypi/v/edx-proctoring.svg'', ''https://pypi.python.org/pypi/edx-proctoring/'', ''https://github.com/openedx/edx-proctoring/workflows/Python%20CI/badge.svg'', ''https://github.com/openedx/edx-proctoring/actions?query=workflow%3A%22Python+CI%22'', ''https://codecov.io/gh/edx/edx-proctoring/branch/master/graph/badge.svg'', ''https://codecov.io/gh/edx/edx-proctoring'', ''https://img.shields.io/pypi/pyversions/edx-proctoring.svg'', ''https://img.shields.io/github/license/edx/django-component-views.svg'', ''https://github.com/openedx/edx-proctoring/blob/master/LICENSE.txt'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,0,'','',1,NULL,NULL,'0',0,1,0,1,NULL,0,'edx-proctoring','[''3.12'']','https://github.com/openedx/edx-proctoring',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-filters',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,120,0,'[]',0,'',0,0,'','',8,'["typing-extensions==4.15.0", "edx-opaque-keys[django]==4.0.0", "sqlparse==0.5.5", "pymongo==4.17.0", "asgiref==3.11.1", "django==5.2.14", "stevedore==5.7.0", "dnspython==2.8.0"]',120,'["filelock==3.29.0", "tox==4.53.1", "sphinx-autobuild==2025.8.25", "pytest-cov==7.1.0", "isort==8.0.1", "id==1.6.1", "more-itertools==11.0.2", "tomli-w==1.2.0", "mypy==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "ast-serialize==0.3.0", "mccabe==0.7.0", "dill==0.4.1", "text-unidecode==1.3", "charset-normalizer==3.4.7", "soupsieve==2.8.3", "code-annotations==3.0.0", "pylint-celery==0.3", "sphinxcontrib-qthelp==2.0.0", "platformdirs==4.9.6", "click==8.3.3", "pylint-plugin-utils==0.9.0", "django-stubs-ext==6.0.4", "pytest==9.0.3", "uvicorn==0.46.0", "watchfiles==1.1.1", "attrs==26.1.0", "dnspython==2.8.0", "pyproject-api==1.10.0", "pip-tools==7.5.3", "ddt==1.7.2", "cryptography==48.0.0", "click-log==0.4.0", "rfc3986==2.0.0", "packaging==26.2", "doc8==2.0.0", "roman-numerals==4.1.0", "mypy-extensions==1.1.0", "build==1.5.0", "pyyaml==6.0.3", "jeepney==0.9.0", "pyproject-hooks==1.2.0", "jaraco-functools==4.4.0", "restructuredtext-lint==2.0.2", "beautifulsoup4==4.14.3", "edx-opaque-keys[django]==4.0.0", "jaraco-classes==3.4.0", "requests-toolbelt==1.0.0", "sphinx==9.1.0", "markupsafe==3.0.3", "pluggy==1.6.0", "anyio==4.13.0", "requests==2.33.1", "nh3==0.3.5", "websockets==16.0", "cachetools==7.1.1", "coverage[toml]==7.14.0", "sphinx-book-theme==1.2.0", "keyring==25.7.0", "distlib==0.4.0", "urllib3==2.7.0", "django-stubs==6.0.4", "pip==26.1.1", "virtualenv==21.3.1", "readme-renderer==44.0", "alabaster==1.0.0", "docutils==0.21.2", "wheel==0.47.0", "pytest-django==4.12.0", "chardet==7.4.3", "starlette==1.0.0", "mdurl==0.1.2", "babel==2.18.0", "diff-cover==10.2.0", "pylint-django==2.7.0", "pymongo==4.17.0", "iniconfig==2.3.0", "django==5.2.14", "sphinxcontrib-htmlhelp==2.1.0", "stevedore==5.7.0", "pygments==2.20.0", "cffi==2.0.0", "typing-extensions==4.15.0", "idna==3.14", "markdown-it-py==4.2.0", "docutils==0.22.4", "imagesize==2.0.0", "colorama==0.4.6", "python-slugify==8.0.4", "secretstorage==3.5.0", "certifi==2026.4.22", "scriv==1.8.0", "pydata-sphinx-theme==0.16.1", "edx-lint==6.1.0", "sqlparse==0.5.5", "jinja2==3.1.6", "sphinx-copybutton==0.5.2", "h11==0.16.0", "sphinxcontrib-applehelp==2.0.0", "ruff==0.15.12", "librt==0.11.0", "tomlkit==0.15.0", "pycparser==3.0", "accessible-pygments==0.0.5", "snowballstemmer==3.0.1", "pathspec==1.1.1", "pylint==4.0.5", "twine==6.2.0", "asgiref==3.11.1", "setuptools==82.0.1", "rich==15.0.0", "types-pyyaml==6.0.12.20260510", "sphinxcontrib-mermaid==2.0.2", "pycodestyle==2.14.0", "six==1.17.0", "sphinxcontrib-jsmath==1.0.1", "jaraco-context==6.1.2", "python-discovery==1.3.0", "astroid==4.0.4", "sphinxcontrib-devhelp==2.0.0"]',3,'["pytest-django", "pylint-django", "code-annotations"]',3,'["pytest-django", "pylint-django", "code-annotations"]',1,'["code-annotations"]',1,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,10,'{"total_duration": "6289 minutes 48 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 9 seconds"}, {"name": "tests (ubuntu-latest, 3.11, py311-django52)", "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 48 seconds"}, {"name": "tests (ubuntu-latest, 3.11, py311-django42)", "duration": "0 minutes 48 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 39 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 32 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 30 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}]}','Other','2021-04-21 17:24:26','main','Open edX filters from the Hooks Extensions Framework ',501,26,1,0,0,0,0,0,0,'2026-06-08 01:09:07','GNU AGPLv3',11,1,0,0,0,0,3421,139714,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-filters/actions/workflows/ci.yml/badge.svg?branch=main: 504'', ''https://github.com/openedx/openedx-filters/blob/main/LICENSE.txt: 504'']',1,'[''https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html'', ''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://docs.openedx.org/projects/openedx-filters/en/latest/'', ''https://discuss.openedx.org'', ''https://github.com/openedx/openedx-filters/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/openedx-filters'', ''https://img.shields.io/pypi/v/openedx-filters.svg'', ''https://pypi.python.org/pypi/openedx-filters/'', ''https://github.com/openedx/openedx-filters/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/openedx-filters/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-filters?branch=main'', ''https://readthedocs.org/projects/openedx-filters/badge/?version=latest'', ''https://openedx-filters.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/openedx-filters.svg'', ''https://img.shields.io/github/license/openedx/openedx-filters.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-filters','[''3'', ''3.12'']','https://github.com/openedx/openedx-filters',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/django-wiki',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,62,0,'[]',0,'',0,0,'','',12,'["django-sekizai==4.1.0", "tinycss2==1.4.0", "django-js-asset==3.1.2", "django-mptt==0.17.0", "django==4.2.21", "sorl-thumbnail==12.11.0", "bleach[css]==6.2.0", "webencodings==0.5.1", "django-classy-tags==4.1.0", "sqlparse==0.5.3", "asgiref==3.8.1", "markdown==3.8"]',62,'["django-sekizai==4.1.0", "babel==2.17.0", "soupsieve==2.7", "imagesize==1.4.1", "packaging==25.0", "build==1.2.2.post1", "wheel==0.45.1", "webencodings==0.5.1", "snowballstemmer==3.0.1", "colorama==0.4.6", "tox==4.25.0", "sqlparse==0.5.3", "coverage[toml]==7.8.0", "beautifulsoup4==4.13.4", "asgiref==3.8.1", "markdown==3.8", "requests==2.32.3", "markupsafe==3.0.2", "pygments==2.19.1", "sphinxcontrib-htmlhelp==2.1.0", "chardet==5.2.0", "setuptools==80.4.0", "typing-extensions==4.13.2", "django==4.2.21", "sorl-thumbnail==12.11.0", "bleach[css]==6.2.0", "pytest==8.3.5", "pytest-django==4.11.1", "alabaster==1.0.0", "cachetools==5.5.2", "platformdirs==4.3.8", "pip==24.2", "certifi==2025.4.26", "sphinxcontrib-devhelp==2.0.0", "virtualenv==20.31.2", "sphinxcontrib-jsmath==1.0.1", "pip-tools==7.4.1", "pyproject-api==1.9.1", "django-mptt==0.17.0", "pytest-cov==6.1.1", "sphinxcontrib-serializinghtml==2.0.0", "click==8.2.0", "sphinx==8.2.3", "filelock==3.18.0", "pydata-sphinx-theme==0.15.4", "sphinx-book-theme==1.1.4", "pluggy==1.5.0", "jinja2==3.1.6", "distlib==0.3.9", "accessible-pygments==0.0.5", "django-js-asset==3.1.2", "urllib3==2.2.3", "iniconfig==2.1.0", "sphinxcontrib-qthelp==2.0.0", "docutils==0.21.2", "roman-numerals-py==3.1.0", "charset-normalizer==3.4.2", "django-classy-tags==4.1.0", "idna==3.10", "tinycss2==1.4.0", "sphinxcontrib-applehelp==2.0.0", "pyproject-hooks==1.2.0"]',4,'["django-classy-tags", "django-js-asset", "django-sekizai", "pytest-django"]',6,'["django-mptt", "django-classy-tags", "django-js-asset", "django-sekizai", "pytest-django", "sorl-thumbnail"]',2,'["django-js-asset", "django-sekizai"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,5,'{"total_duration": "-1 minutes 59 seconds", "checks": [{"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2012-08-25 16:00:34','edx_release','A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.',4377,28,1,0,0,0,1,0,0,'2026-05-30 15:06:24',NULL,2,1,15119,0,77767,56696,933,272038,0,0,0,0,0,0,0,0,'','openedx',1,'[''https://github.com/benjaoming/django-wiki/blob/master/TODO.md: 404'', ''http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/: 403'', ''https://upload.wikimedia.org/wikipedia/commons/8/88/MediaWiki_database_schema_1-19_%28r102798%29.png: 403'', ''http://code.google.com/p/django-simple-wiki/: 503'', ''http://www.edxonline.org/: HTTPConnectionPool(host=\''www.edxonline.org\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''www.edxonline.org\'', port=80): Failed to resolve \''www.edxonline.org\'' ([Errno -2] Name or service not known)"))'']',0,'[''http://wiki.overtag.dk'', ''http://www.djangoproject.com'', ''http://south.aeracode.org/'', ''https://github.com/waylan/Python-Markdown'', ''https://github.com/django-mptt/django-mptt'', ''https://github.com/ojii/django-sekizai/'', ''https://github.com/sorl/sorl-thumbnail'', ''https://github.com/divio/django-cms'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-django-wiki','[''3.12'']','https://github.com/openedx/django-wiki',1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/modular-learning',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "246131 minutes 30 seconds", "checks": [{"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2022-11-15 22:03:32','main','',5,3,1,0,0,0,0,0,0,'2024-12-16 20:07:52',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/orgs/openedx/projects/36: 504'']',0,'[''https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575152670/Approach+Memo+Modular+Learning'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-devops',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "", "checks": []}','Other','2023-01-03 20:41:05','master','Issue repository for the DevOps Working Group',15,3,1,0,0,0,0,0,0,'2025-10-30 15:18:16',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://discuss.openedx.org/c/working-groups/devops'', ''https://app.slack.com/client/T02SNA1T6/C04J9GTLHH8'', ''https://openedx.org/slack'', ''https://github.com/orgs/openedx/projects/42'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3620044867/DevOps+Working+Group'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/46793351/Open+edX+Working+Groups'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/1022099494/Build-Test-Release+Working+Group'', ''https://discuss.openedx.org/c/working-groups/build-test-release'', ''https://github.com/orgs/openedx/projects/28/views/15'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3583016961/Developer+Experience+Working+Group'', ''https://discuss.openedx.org/c/working-groups/dev-experience'', ''https://github.com/orgs/openedx/projects/37'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3655008783/Large+Instances+-+DevOps+Sub-Working+Group'', ''https://discuss.openedx.org/t/deploying-open-edx-on-kubernetes-using-helm/8771'', ''https://discuss.openedx.org/c/operators/7'', ''https://openedx.slack.com/channels/wg-devops'', ''https://github.com/orgs/openedx/projects/42/views/2'', ''https://github.com/openedx/openedx-k8s-harmony'', ''https://github.com/overhangio/tutor/'', ''https://docs.tutor.overhang.io/'', ''https://github.com/orgs/overhangio/projects/4'', ''https://discuss.openedx.org/tag/tutor'', ''https://discuss.openedx.org/t/tutor-maintainers/7287'', ''https://discuss.openedx.org'', ''https://github.com/openedx/wg-devops/issues'', ''https://github.com/openedx/wg-devops/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue'', ''https://github.com/openedx/build-test-release-wg/issues?q=is%3Aopen+is%3Aissue+label%3Abug'', ''https://github.com/openedx/wg-developer-experience/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue'', ''https://github.com/orgs/openedx/projects/42/views/3'', ''https://github.com/orgs/overhangio/projects/4/views/1?filterQuery=-label%3A%22good+first+issue%22'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-backstage',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,11,0,'',0,'{}',0,11,'{"@backstage/cli": "^0.36.0", "@backstage/cli-defaults": "^0.1.0", "@backstage/e2e-test-utils": "^0.1.2", "@jest/environment-jsdom-abstract": "^30.0.0", "@playwright/test": "^1.32.3", "@types/jest": "^30.0.0", "jest": "^30.2.0", "jsdom": "^27.1.0", "node-gyp": "^10.0.0", "prettier": "^2.3.2", "typescript": "~5.8.0"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "80913 minutes 25 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 48 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 23 seconds"}, {"name": "Dependabot", "duration": "0 minutes 21 seconds"}, {"name": "Dependabot", "duration": "0 minutes 15 seconds"}]}','Other','2022-05-27 13:28:48','main','The openedx instance of Backstage for helping maintainers',1918,7,1,0,0,0,0,0,0,'2026-03-25 15:11:48','Apache License 2.0',2,0,0,3257,1850,1005,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://backstage.io'', ''https://github.com/nvm-sh/nvm'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/event-tracking',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,98,0,'[]',0,'',0,0,'','',43,'["asgiref==3.11.1", "billiard==4.2.4", "django-waffle==5.0.0", "kombu==5.6.2", "pycparser==3.0", "dnspython==2.8.0", "pyyaml==6.0.3", "cffi==2.0.0", "fastavro==1.12.2", "click-didyoumean==0.3.1", "packaging==26.2", "click==8.4.1", "tzdata==2026.2", "edx-ccx-keys==2.0.2", "django==5.2.14", "wcwidth==0.7.0", "celery==5.6.3", "jinja2==3.1.6", "django-crum==0.7.9", "pymongo==4.17.0", "amqp==5.3.1", "python-slugify==8.0.4", "typing-extensions==4.15.0", "vine==5.1.0", "markupsafe==3.0.3", "pynacl==1.6.2", "sqlparse==0.5.5", "text-unidecode==1.3", "tzlocal==5.3.1", "six==1.17.0", "python-dateutil==2.9.0.post0", "prompt-toolkit==3.0.52", "edx-django-utils==8.0.1", "stevedore==5.8.0", "pytz==2026.2", "openedx-events==11.2.0", "attrs==26.1.0", "edx-opaque-keys[django]==4.0.0", "code-annotations==3.0.0", "click-repl==0.3.0", "click-plugins==1.1.1.2", "psutil==7.2.2", "edx-toggles==6.0.0"]',98,'["docutils==0.22.4", "tzdata==2026.2", "pyproject-api==1.10.1", "jinja2==3.1.6", "pip-tools==7.5.3", "django-crum==0.7.9", "pymongo==4.17.0", "python-slugify==8.0.4", "setuptools==82.0.1", "pynacl==1.6.2", "pylint-plugin-utils==0.9.0", "text-unidecode==1.3", "six==1.17.0", "python-dateutil==2.9.0.post0", "pylint==4.0.5", "pytest==9.0.3", "sphinxcontrib-htmlhelp==2.1.0", "pygments==2.20.0", "pytz==2026.2", "openedx-events==11.2.0", "edx-opaque-keys[django]==4.0.0", "requests==2.34.2", "colorama==0.4.6", "charset-normalizer==3.4.7", "roman-numerals==4.1.0", "tomlkit==0.15.0", "click-log==0.4.0", "snowballstemmer==3.1.0", "pip==26.1.2", "pylint-django==2.7.0", "sphinxcontrib-qthelp==2.0.0", "django-waffle==5.0.0", "pycparser==3.0", "ddt==1.7.2", "coverage[toml]==7.14.1", "click==8.4.1", "certifi==2026.5.20", "wcwidth==0.7.0", "imagesize==2.0.0", "mccabe==0.7.0", "babel==2.18.0", "urllib3==2.7.0", "cachetools==7.1.4", "tzlocal==5.3.1", "alabaster==1.0.0", "pylint-celery==0.3", "pyproject-hooks==1.2.0", "sphinxcontrib-jsmath==1.0.1", "idna==3.17", "platformdirs==4.10.0", "sphinxcontrib-devhelp==2.0.0", "pycodestyle==2.14.0", "sphinx==9.1.0", "asgiref==3.11.1", "billiard==4.2.4", "dill==0.4.1", "fastavro==1.12.2", "click-didyoumean==0.3.1", "packaging==26.2", "django==5.2.14", "distlib==0.4.0", "astroid==4.0.4", "virtualenv==21.4.2", "sqlparse==0.5.5", "mock==5.2.0", "wheel==0.47.0", "tomli-w==1.2.0", "sphinxcontrib-applehelp==2.0.0", "filelock==3.29.0", "coverage==7.14.1", "prompt-toolkit==3.0.52", "stevedore==5.8.0", "iniconfig==2.3.0", "attrs==26.1.0", "python-discovery==1.4.0", "click-repl==0.3.0", "click-plugins==1.1.1.2", "edx-toggles==6.0.0", "build==1.5.0", "kombu==5.6.2", "pyyaml==6.0.3", "dnspython==2.8.0", "cffi==2.0.0", "pluggy==1.6.0", "edx-ccx-keys==2.0.2", "celery==5.6.3", "isort==8.0.1", "amqp==5.3.1", "typing-extensions==4.15.0", "edx-lint==6.1.0", "vine==5.1.0", "markupsafe==3.0.3", "pytest-cov==7.1.0", "edx-django-utils==8.0.1", "code-annotations==3.0.0", "tox==4.55.0", "sphinxcontrib-serializinghtml==2.0.0", "psutil==7.2.2"]',5,'["edx-django-utils", "pylint-django", "django-waffle", "edx-toggles", "code-annotations"]',6,'["edx-django-utils", "pylint-django", "django-waffle", "edx-toggles", "code-annotations", "django-crum"]',4,'["django-waffle", "edx-django-utils", "edx-toggles", "code-annotations"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,15,'{"total_duration": "7919 minutes 42 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, celery54-django52)", "duration": "1 minutes 8 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 39 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}]}','Other','2013-09-16 17:57:22','master','a system for tracking events',568,39,1,0,0,0,0,0,0,'2026-06-08 02:53:47','GNU AGPLv3',1,1,0,0,0,0,3410,108671,0,0,0,0,0,1,0,0,'','openedx',2,'[''http://www.edx.org/some/path/1: 404'', ''http://www.edx.org/some/path/2: 404'', ''http://event-tracking.readthedocs.org/en/latest/: 429'']',0,'[''http://code.edx.org/'', ''https://github.com/openedx/edx-platform/wiki/How-To-Contribute'', ''https://groups.google.com/forum/'', ''https://github.com/openedx/event-tracking/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/event-tracking/actions?query=workflow%3A%22Python+CI%22'']',1,0,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'event-tracking','[''3'', ''3.12'']','https://github.com/openedx/event-tracking',1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-webhooks',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,118,0,'[]',0,'',0,0,'','',52,'["idna==3.17", "requests-toolbelt==1.0.0", "sentry-sdk[flask]==2.61.0", "tzdata==2026.2", "pycparser==3.0", "prompt-toolkit==3.0.52", "glom==25.12.0", "amqp==5.3.1", "celery[redis]==5.6.3", "defusedxml==0.7.1", "kombu[redis]==5.6.2", "click-repl==0.3.0", "flask-sslify==0.1.5", "cffi==2.0.0", "cryptography==48.0.0", "python-dateutil==2.9.0.post0", "cachetools==7.1.4", "face==26.0.0", "certifi==2026.5.20", "tzlocal==5.3.1", "boltons==25.0.0", "six==1.17.0", "itsdangerous==2.2.0", "uritemplate==4.2.0", "logging-tree==1.10", "urllib3==2.7.0", "click==8.4.1", "jira==3.10.5", "jinja2==3.1.6", "attrs==26.1.0", "click-didyoumean==0.3.1", "typing-extensions==4.15.0", "oauthlib[signedtoken]==3.3.1", "markupsafe==3.0.3", "pyjwt[crypto]==2.13.0", "pyyaml==6.0.3", "requests==2.34.2", "requests-oauthlib==2.0.0", "arrow==1.4.0", "gunicorn==26.0.0", "billiard==4.2.4", "flask==3.1.3", "click-plugins==1.1.1.2", "vine==5.1.0", "redis==6.4.0", "wcwidth==0.7.0", "packaging==26.2", "charset-normalizer==3.4.7", "blinker==1.9.0", "github3-py==4.0.1", "urlobject==3.0.0", "werkzeug==3.1.8"]',118,'["sentry-sdk[flask]==2.61.0", "amqp==5.3.1", "pluggy==1.6.0", "click-repl==0.3.0", "python-dateutil==2.9.0.post0", "snowballstemmer==3.1.0", "mypy-extensions==1.1.0", "certifi==2026.5.20", "tzlocal==5.3.1", "isort==8.0.1", "pytest-cov==7.1.0", "pip==26.1.2", "pathspec==1.1.1", "edx-lint==6.1.0", "jinja2==3.1.6", "attrs==26.1.0", "mypy==2.1.0", "pytest==9.0.3", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-httpdomain==2.0.0", "urlobject==3.0.0", "alabaster==1.0.0", "tomlkit==0.15.0", "coverage[toml]==7.14.1", "pytest==8.2.0", "werkzeug==3.1.8", "pylint-django==2.7.0", "code-annotations==3.0.0", "celery[redis]==5.6.3", "flask-sslify==0.1.5", "python-dotenv==1.2.2", "python-slugify==8.0.4", "pip-tools==7.5.3", "build==1.5.0", "click-didyoumean==0.3.1", "pylint-celery==0.3", "oauthlib[signedtoken]==3.3.1", "markupsafe==3.0.3", "markdown-it-py==4.2.0", "pygments==2.20.0", "roman-numerals==4.1.0", "pyyaml==6.0.3", "gunicorn==26.0.0", "billiard==4.2.4", "platformdirs==4.10.0", "stevedore==5.8.0", "mccabe==0.7.0", "blinker==1.9.0", "librt==0.11.0", "mdurl==0.1.2", "pycparser==3.0", "prompt-toolkit==3.0.52", "pyproject-hooks==1.2.0", "sphinx==9.1.0", "schema==0.7.8", "sphinxcontrib-serializinghtml==2.0.0", "pytz==2026.2", "defusedxml==0.7.1", "pytest-mock==3.15.1", "cryptography==48.0.0", "types-cachetools==7.0.0.20260518", "sphinxcontrib-jquery==4.1", "dill==0.4.1", "six==1.17.0", "uritemplate==4.2.0", "urllib3==2.7.0", "logging-tree==1.10", "click==8.4.1", "wheel==0.47.0", "sphinxcontrib-jsmath==1.0.1", "pyjwt[crypto]==2.13.0", "pylint==4.0.5", "requests-mock==1.12.1", "arrow==1.4.0", "text-unidecode==1.3", "flask==3.1.3", "vine==5.1.0", "freezegun==1.5.5", "redis==6.4.0", "packaging==26.2", "charset-normalizer==3.4.7", "github3-py==4.0.1", "astroid==4.0.4", "iniconfig==2.3.0", "readme-renderer==44.0", "click-log==0.4.0", "idna==3.17", "babel==2.18.0", "requests-toolbelt==1.0.0", "tzdata==2026.2", "glom==25.12.0", "sphinxcontrib-htmlhelp==2.1.0", "kombu[redis]==5.6.2", "sphinxcontrib-qthelp==2.0.0", "cffi==2.0.0", "cachetools==7.1.4", "face==26.0.0", "boltons==25.0.0", "scriv==1.8.0", "pylint-pytest==1.1.8", "itsdangerous==2.2.0", "sphinx-rtd-theme==3.1.0", "jira==3.10.5", "nh3==0.3.5", "pylint-plugin-utils==0.9.0", "setuptools==82.0.1", "docutils==0.22.4", "types-requests==2.33.0.20260518", "typing-extensions==4.15.0", "sphinxcontrib-applehelp==2.0.0", "requests==2.34.2", "requests-oauthlib==2.0.0", "pytest-repeat==0.9.4", "types-pyyaml==6.0.12.20260518", "click-plugins==1.1.1.2", "wcwidth==0.7.0", "ast-serialize==0.5.0", "imagesize==2.0.0"]',2,'["code-annotations", "pylint-django"]',2,'["code-annotations", "pylint-django"]',1,'["code-annotations"]',1,NULL,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,3,'{"total_duration": "9237 minutes 30 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12)", "duration": "0 minutes 39 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}]}','Other','2014-07-09 17:08:56','master','Webhooks for the Open edX GitHub and JIRA',1633,21,1,0,0,0,0,0,0,'2026-06-08 00:41:48','Apache License 2.0',2,1,0,825,4319,0,5296,213379,0,0,0,0,0,1,0,0,'','openedx',0,'[''https://openedx-webhooks.herokuapp.com: 401'', ''https://git.heroku.com/openedx-webhooks-staging.git: 405'', ''https://github.com/organizations/: 404'', ''https://openedx-webhooks.herokuapp.com/github/hook-receiver: 405'', ''https://openedx.org/cla: 403'', ''http://openedx-webhooks.readthedocs.org/en/latest/: 429'']',0,'[''https://dashboard.heroku.com/apps/openedx-webhooks-staging/resources'', ''https://github.com/openedx/repo-tools-data-schema'', ''https://github.com/'', ''https://github.com/openedx/openedx-webhooks/issues/277'', ''https://github.com/openedx/openedx-webhooks/issues/279'', ''https://github.com/openedx/openedx-webhooks/issues/280'', ''https://github.com/openedx/openedx-webhooks/issues/227'', ''https://github.com/openedx/repo-tools/tree/master/edx_repo_tools/repo_checks'', ''http://openedx.org'', ''http://heroku.com'', ''https://devcenter.heroku.com/articles/heroku-command-line'', ''https://devcenter.heroku.com/articles/pipelines'', ''https://github.com/openedx/openedx-webhooks/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/openedx-webhooks/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/openedx-webhooks/coverage.svg?branch=master'', ''http://codecov.io/github/edx/openedx-webhooks?branch=master'', ''https://readthedocs.org/projects/openedx-webhooks/badge/?version=latest'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'openedx_webhooks','[''3.12'']','https://github.com/openedx/openedx_webhooks',0,0,0,0,0,0,0,0,0,'[]','[]','[''ca-certificates'', ''libssl-dev'', ''python3.12-dev'', ''language-pack-en'', ''curl'', ''gnupg'', ''python3-pip'', ''git-core'', ''python3.12'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/crowdsourcehinter',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,31,0,'[]',0,'',0,0,'','',13,'["lxml==6.0.2", "pytz==2026.1.post1", "python-dateutil==2.9.0.post0", "markupsafe==3.0.3", "pyyaml==6.0.3", "mako==1.3.10", "fs==2.4.16", "xblock==5.3.0", "webob==1.8.9", "simplejson==3.20.2", "web-fragments==3.1.0", "six==1.17.0", "appdirs==1.4.4"]',31,'["pytest==9.0.2", "wheel==0.46.3", "mako==1.3.10", "pip-tools==7.5.3", "coverage[toml]==7.13.4", "web-fragments==3.1.0", "six==1.17.0", "webob==1.8.9", "setuptools==82.0.0", "pytz==2026.1.post1", "python-dateutil==2.9.0.post0", "packaging==26.0", "markupsafe==3.0.3", "fs==2.4.16", "click==8.3.1", "flake8==7.3.0", "pluggy==1.6.0", "build==1.4.0", "pyproject-hooks==1.2.0", "mccabe==0.7.0", "lxml==6.0.2", "pyyaml==6.0.3", "pycodestyle==2.14.0", "pip==26.0.1", "pyflakes==3.4.0", "iniconfig==2.3.0", "xblock==5.3.0", "pytest-cov==7.0.0", "simplejson==3.20.2", "pygments==2.19.2", "appdirs==1.4.4"]',2,'["xblock", "web-fragments"]',2,'["xblock", "web-fragments"]',2,'["xblock", "web-fragments"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,27,'{"total_duration": "12196 minutes 6 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 3 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 55 seconds"}, {"name": "Tests (ubuntu-latest, 3.12)", "duration": "0 minutes 6 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2019-03-08 19:22:50','master','Crowdsource hinter xblock',62889,9,1,0,0,0,0,0,0,'2026-06-08 01:07:23','GNU AGPLv3',10,1,2484,0,7468,17676,2246,25891,33,0,1,0,1,1,0,1,'','openedx',2,'[]',0,'[''https://github.com/openedx/edx-platform/wiki/Installing-a-new-XBlock'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'crowdsourcehinter-xblock','[''3'', ''3.12'']','https://github.com/openedx/crowdsourcehinter',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-enterprise-public-catalog',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,47,0,'',0,'{}',36,11,'{"@edx/browserslist-config": "^1.5.0", "@openedx/frontend-build": "14.4.2", "@edx/typescript-config": "1.1.0", "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "16.3.0", "@testing-library/user-event": "14.6.1", "glob": "7.2.3", "husky": "6.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "2.8.8"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/brand-openedx": "^1.2.1", "@edx/frontend-component-footer": "14.7.1", "@edx/frontend-component-header": "6.4.0", "@edx/frontend-enterprise-catalog-search": "11.0.1", "@edx/frontend-enterprise-hotjar": "7.2.0", "@edx/frontend-enterprise-utils": "10.0.0", "@edx/frontend-platform": "^8.3.4", "@edx/openedx-atlas": "^0.6.2", "@openedx/paragon": "^22.17.0", "algoliasearch": "4.24.0", "axios": "^1.7.9", "babel-polyfill": "6.26.0", "classnames": "2.5.1", "core-js": "3.40.0", "file-saver": "^2.0.5", "history": "5.3.0", "lodash.debounce": "4.0.8", "lodash.escaperegexp": "4.1.2", "npm": "^8.19.4", "postcss-loader": "^8.1.1", "prop-types": "15.8.1", "query-string": "7.1.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "6.1.0", "react-instantsearch-dom": "6.40.4", "react-redux": "7.2.9", "react-router": "6.29.0", "react-router-dom": "6.29.0", "react-test-renderer": "18.3.1", "redux": "4.2.1", "redux-devtools-extension": "2.13.9", "redux-logger": "3.0.6", "regenerator-runtime": "0.14.1", "style-loader": "^4.0.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,1,1,35,'{"total_duration": "26579 minutes 42 seconds", "checks": [{"name": "build", "duration": "3 minutes 11 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 12 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 5 seconds"}]}','Other','2021-03-02 20:49:57','main','A site for public browsing of enterprise catalogs, also called the Explore Catalog',12673,18,1,0,0,0,0,0,0,'2026-05-29 22:39:05','GNU AGPLv3',9,1,0,0,430,202718,1776,0,0,0,0,0,0,0,0,0,'@edx/frontend-app-enterprise-public-catalog','openedx',0,'[''https://edx.github.io/frontend-platform/module-Internationalization.html: 404'', ''https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404'', ''https://travis-ci.com/edx/frontend-app-enterprise-public-catalog: 415'']',0,'[''https://explore-catalog.stage.edx.org/'', ''https://github.com/openedx/frontend-app-enterprise-public-catalog/blob/master/docs/decisions/0002-feature-based-application-organization.rst'', ''https://api.travis-ci.com/edx/frontend-app-enterprise-public-catalog.svg?branch=master'', ''https://codecov.io/gh/edx/frontend-app-enterprise-public-catalog/branch/master/graph/badge.svg'', ''https://codecov.io/gh/edx/frontend-app-enterprise-public-catalog'', ''https://img.shields.io/npm/l/@edx/frontend-app-enterprise-public-catalog.svg'']',1,1,0,0,'','',1,'2026-02-22','2025-02-04','2',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-maintenance',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "5745 minutes 29 seconds", "checks": [{"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "61 minutes 20 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "55 minutes 26 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "52 minutes 43 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "43 minutes 24 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 minutes 52 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 minutes 48 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 minutes 45 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 minutes 43 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 minutes 40 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 5 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 4 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 4 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 4 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 3 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}]}','Other','2026-04-03 14:53:13','main','A repository for use by the Maintenance working group.',4799,1,1,0,0,0,0,0,0,'2026-06-07 06:34:43',NULL,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-skill-tagging',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,133,0,'[]',0,'',0,0,'','',34,'["click==8.3.1", "cffi==2.0.0", "typing-extensions==4.15.0", "django-waffle==5.0.0", "django==5.2.12", "edx-django-utils==8.0.1", "pymongo==4.16.0", "asgiref==3.11.1", "appdirs==1.4.4", "psutil==7.2.2", "urllib3==2.6.3", "django-model-utils==5.0.0", "edx-opaque-keys[django]==3.1.0", "pycparser==3.0", "fs==2.4.16", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", "openedx-filters==2.1.0", "stevedore==5.7.0", "openedx-events==10.5.0", "django-crum==0.7.9", "s3transfer==0.16.0", "botocore==1.42.63", "lazy==1.6", "sqlparse==0.5.5", "openedx-django-pyfs==3.8.0", "dnspython==2.8.0", "six==1.17.0", "fs-s3fs==1.1.1", "edx-ccx-keys==2.0.2", "jmespath==1.1.0", "attrs==25.4.0", "fastavro==1.12.1", "boto3==1.42.63"]',133,'["roman-numerals==4.1.0", "cffi==2.0.0", "typing-extensions==4.15.0", "requests-toolbelt==1.0.0", "django-waffle==5.0.0", "binaryornot==0.5.0", "tomlkit==0.14.0", "pytest-cov==7.0.0", "edx-django-utils==8.0.1", "cryptography==46.0.5", "keyring==25.7.0", "asgiref==3.11.1", "python-slugify==8.0.4", "pytz==2026.1.post1", "sphinxcontrib-serializinghtml==2.0.0", "babel==2.18.0", "urllib3==2.6.3", "isort==8.0.1", "pluggy==1.6.0", "more-itertools==10.8.0", "readme-renderer==44.0", "setuptools==82.0.0", "pypng==0.20220715.0", "sphinxcontrib-jsmath==1.0.1", "pyyaml==6.0.3", "filelock==3.25.0", "pylint==4.0.5", "diff-cover==10.2.0", "idna==3.11", "mock==5.2.0", "xblock==5.3.0", "path==16.16.0", "tox==3.28.0", "pylint-celery==0.3", "webob==1.8.9", "openedx-django-pyfs==3.8.0", "djangorestframework==3.16.1", "pylint-django==2.7.0", "tox-battery==0.6.2", "fs-s3fs==1.1.1", "edx-ccx-keys==2.0.2", "pycodestyle==2.14.0", "fastavro==1.12.1", "web-fragments==3.1.0", "packaging==26.0", "pylint-plugin-utils==0.9.0", "text-unidecode==1.3", "sphinx==9.1.0", "astroid==4.0.4", "lxml==6.0.2", "distlib==0.4.0", "django==5.2.12", "pyproject-hooks==1.2.0", "sphinxcontrib-applehelp==2.0.0", "build==1.4.0", "appdirs==1.4.4", "psutil==7.2.2", "twine==6.2.0", "lxml-html-clean==0.4.4", "pytest-django==4.12.0", "pycparser==3.0", "fs==2.4.16", "python-dateutil==2.9.0.post0", "xblock-sdk==0.13.0", "openedx-filters==2.1.0", "platformdirs==4.9.4", "doc8==2.0.0", "jaraco-classes==3.4.0", "openedx-events==10.5.0", "s3transfer==0.16.0", "virtualenv==21.1.0", "sphinxcontrib-htmlhelp==2.1.0", "botocore==1.42.63", "alabaster==1.0.0", "dnspython==2.8.0", "jaraco-functools==4.4.0", "six==1.17.0", "iniconfig==2.3.0", "attrs==25.4.0", "charset-normalizer==3.4.5", "imagesize==2.0.0", "boto3==1.42.63", "jeepney==0.9.0", "chardet==7.0.1", "restructuredtext-lint==2.0.2", "rich==14.3.3", "secretstorage==3.5.0", "id==1.6.1", "click-log==0.4.0", "edx-opaque-keys[django]==3.1.0", "pytest==9.0.2", "mako==1.3.10", "sphinxcontrib-qthelp==2.0.0", "snowballstemmer==3.0.1", "dill==0.4.1", "arrow==1.4.0", "lazy==1.6", "jinja2==3.1.6", "markupsafe==3.0.3", "pygments==2.19.2", "click==8.3.1", "pip-tools==7.5.3", "jaraco-context==6.1.1", "simplejson==3.20.2", "tzdata==2025.3", "code-annotations==2.3.2", "certifi==2026.2.25", "edx-lint==5.6.0", "edx-i18n-tools==1.9.0", "pymongo==4.16.0", "polib==1.2.0", "rfc3986==2.0.0", "lxml[html-clean]==6.0.2", "cookiecutter==2.7.1", "django-model-utils==5.0.0", "pynacl==1.6.2", "coverage[toml]==7.13.4", "mccabe==0.7.0", "py==1.11.0", "wheel==0.46.3", "pip==26.0.1", "requests==2.32.5", "stevedore==5.7.0", "markdown-it-py==4.0.0", "django-crum==0.7.9", "sqlparse==0.5.5", "docutils==0.21.2", "pydocstyle==6.3.0", "nh3==0.3.3", "jmespath==1.1.0", "sphinxcontrib-devhelp==2.0.0", "mdurl==0.1.2", "python-discovery==1.1.1"]',10,'["xblock-sdk", "pytest-django", "django-waffle", "pylint-django", "edx-django-utils", "code-annotations", "djangorestframework", "xblock", "edx-i18n-tools", "web-fragments"]',12,'["xblock-sdk", "pytest-django", "django-model-utils", "django-waffle", "pylint-django", "django-crum", "edx-django-utils", "code-annotations", "djangorestframework", "xblock", "edx-i18n-tools", "web-fragments"]',7,'["xblock-sdk", "django-waffle", "edx-django-utils", "code-annotations", "xblock", "edx-i18n-tools", "web-fragments"]',1,NULL,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,21,'{"total_duration": "6169 minutes 18 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 35 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 31 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2022-12-09 18:15:47','main','',214,16,1,0,0,0,0,0,0,'2026-06-05 01:53:20','GNU AGPLv3',6,1,4841,0,3009,4882,4660,33180,0,1,1,0,0,1,0,0,'','openedx',0,'[''http://edx.devstack.discovery: HTTPConnectionPool(host=\''edx.devstack.discovery\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''edx.devstack.discovery\'', port=80): Failed to resolve \''edx.devstack.discovery\'' ([Errno -2] Name or service not known)"))'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/xblock-skill-tagging: 404'', ''https://xblock-skill-tagging.readthedocs.io/en/latest/: 404'', ''https://github.com/openedx/xblock-skill-tagging/blob/main/LICENSE.txt: 504'']',1,'[''https://user-images.githubusercontent.com/10894099/210078679-3cbac3d1-55a7-4fba-b841-7fb4468f32c5.png'', ''https://user-images.githubusercontent.com/10894099/212285572-efa5cfd5-e9c5-411d-8d15-541c43445ec0.png'', ''https://github.com/openedx/taxonomy-connector/blob/master/docs/decisions/0001-xblock-skill-tagging-design.rst'', ''https://github.com/openedx/edx-platform'', ''https://github.com/openedx/taxonomy-connector'', ''https://github.com/openedx/course-discovery'', ''https://github.com/openedx/xblock-skill-tagging/blob/main/skill_tagging/handlers.py'', ''https://github.com/openedx/event-bus-kafka'', ''https://github.com/openedx/event-bus-redis'', ''https://openedx.atlassian.net/wiki/spaces/AC/pages/3508699151/How+to+start+using+the+Event+Bus'', ''https://discuss.openedx.org'', ''https://github.com/openedx/xblock-skill-tagging/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/pypi/v/skill_tagging.svg'', ''https://pypi.python.org/pypi/skill_tagging/'', ''https://github.com/openedx/xblock-skill-tagging/workflows/Python%20CI/badge.svg?branch=main'', ''https://github.com/openedx/xblock-skill-tagging/actions'', ''https://codecov.io/github/openedx/xblock-skill-tagging/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/xblock-skill-tagging?branch=main'', ''https://readthedocs.org/projects/xblock-skill-tagging/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/skill_tagging.svg'', ''https://img.shields.io/github/license/openedx/xblock-skill-tagging.svg'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'skill_tagging','[''3'', ''3.12'']','https://github.com/openedx/xblock-skill-tagging',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-rbac',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,107,0,'[]',0,'',0,0,'','',30,'["asgiref==3.11.1", "click==8.3.1", "drf-jwt==1.19.2", "dnspython==2.8.0", "sqlparse==0.5.5", "djangorestframework==3.16.1", "edx-drf-extensions==10.6.0", "pycparser==3.0", "requests==2.32.5", "pymongo==4.16.0", "edx-opaque-keys==3.1.0", "pyjwt[crypto]==2.11.0", "pynacl==1.6.2", "stevedore==5.7.0", "charset-normalizer==3.4.5", "django==5.2.12", "six==1.17.0", "edx-django-utils==8.0.1", "django-model-utils==5.0.0", "django-crum==0.7.9", "certifi==2026.2.25", "psutil==7.2.2", "urllib3==2.6.3", "idna==3.11", "django-waffle==5.0.0", "cryptography==46.0.5", "cffi==2.0.0", "typing-extensions==4.15.0", "setuptools==82.0.0", "semantic-version==2.10.0"]',107,'["asgiref==3.11.1", "pyproject-hooks==1.2.0", "build==1.4.0", "cachetools==7.0.3", "platformdirs==4.9.4", "snowballstemmer==3.0.1", "sqlparse==0.5.5", "pluggy==1.6.0", "edx-drf-extensions==10.6.0", "pytest==9.0.2", "pytest-cov==7.0.0", "diff-cover==4.0.0", "django==5.2.12", "pyyaml==6.0.3", "six==1.17.0", "docutils==0.21.2", "isort==8.0.1", "django-crum==0.7.9", "certifi==2026.2.25", "accessible-pygments==0.0.5", "idna==3.11", "django-waffle==5.0.0", "sphinxcontrib-jsmath==1.0.1", "click-log==0.4.0", "imagesize==2.0.0", "wheel==0.46.3", "futures==3.1.1", "tox==4.49.0", "ddt==1.7.2", "polib==1.2.0", "djangorestframework==3.16.1", "jinja2==3.1.6", "pylint-plugin-utils==0.9.0", "path==16.16.0", "pymongo==4.16.0", "beautifulsoup4==4.14.3", "coverage[toml]==7.13.4", "stevedore==5.7.0", "restructuredtext-lint==2.0.2", "pip-tools==7.5.3", "mccabe==0.7.0", "sphinx-book-theme==1.1.4", "packaging==26.0", "psutil==7.2.2", "pylint==4.0.5", "tomli-w==1.2.0", "inflect==7.5.0", "doc8==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "lxml-html-clean==0.4.4", "pycodestyle==2.14.0", "roman-numerals==4.1.0", "click==8.3.1", "dnspython==2.8.0", "iniconfig==2.3.0", "sphinx==9.1.0", "dill==0.4.1", "lxml[html-clean]==6.0.2", "pycparser==3.0", "astroid==4.0.4", "colorama==0.4.6", "edx-opaque-keys==3.1.0", "pygments==2.19.2", "pyjwt[crypto]==2.11.0", "pynacl==1.6.2", "jinja2-pluralize==0.3.0", "virtualenv==21.1.0", "charset-normalizer==3.4.5", "distlib==0.4.0", "code-annotations==2.3.2", "pydata-sphinx-theme==0.15.4", "edx-django-utils==8.0.1", "typeguard==4.5.1", "django-model-utils==5.0.0", "markupsafe==3.0.3", "cffi==2.0.0", "typing-extensions==4.15.0", "sphinxcontrib-applehelp==2.0.0", "edx-django-release-util==1.5.0", "pyproject-api==1.10.0", "semantic-version==2.10.0", "soupsieve==2.8.3", "readme-renderer==44.0", "pylint-django==2.7.0", "edx-i18n-tools==1.9.0", "drf-jwt==1.19.2", "filelock==3.25.0", "sphinxcontrib-htmlhelp==2.1.0", "tomlkit==0.14.0", "requests==2.32.5", "python-discovery==1.1.0", "sphinxcontrib-qthelp==2.0.0", "text-unidecode==1.3", "edx-lint==5.6.0", "pip==26.0.1", "urllib3==2.6.3", "cryptography==46.0.5", "python-slugify==8.0.4", "babel==2.18.0", "more-itertools==10.8.0", "setuptools==82.0.0", "pydocstyle==6.3.0", "nh3==0.3.3", "pylint-celery==0.3", "pytest-django==4.12.0", "alabaster==1.0.0", "sphinxcontrib-devhelp==2.0.0"]',10,'["code-annotations", "edx-i18n-tools", "edx-drf-extensions", "edx-django-release-util", "pylint-django", "edx-django-utils", "edx-opaque-keys", "djangorestframework", "pytest-django", "django-waffle"]',13,'["code-annotations", "edx-i18n-tools", "edx-drf-extensions", "edx-django-release-util", "django-crum", "drf-jwt", "pylint-django", "django-model-utils", "edx-django-utils", "edx-opaque-keys", "djangorestframework", "pytest-django", "django-waffle"]',7,'["code-annotations", "edx-i18n-tools", "edx-drf-extensions", "edx-django-release-util", "edx-django-utils", "edx-opaque-keys", "django-waffle"]',1,NULL,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,112,'{"total_duration": "6443 minutes 44 seconds", "checks": [{"name": "Dependabot", "duration": "2 minutes 45 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 25 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 28 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, check_keywords)", "duration": "0 minutes 26 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}]}','Other','2019-02-28 16:27:01','master','Library to help managing role based access controls for django apps',564,12,1,0,0,0,0,0,0,'2026-06-04 02:39:52','GNU AGPLv3',17,1,0,0,662,0,5286,81123,0,1,1,0,0,1,0,0,'','openedx',4,'[''https://github.com/openedx/edx-rbac/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 404'', ''https://github.com/openedx/edx-rbac/blob/master/.github/ISSUE_TEMPLATE.md: 404'', ''http://edx-rbac.readthedocs.io/en/latest/: 404'']',1,'[''https://github.com/openedx/edx-rbac/blob/master/docs/getting_started.rst'', ''https://github.com/openedx/edx-rbac/blob/master/docs/how_to_guide.rst'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/edx-rbac.svg'', ''https://pypi.python.org/pypi/edx-rbac/'', ''https://github.com/openedx/edx-rbac/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-rbac/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/edx-rbac/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-rbac?branch=master'', ''https://readthedocs.org/projects/edx-rbac/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-rbac.svg'', ''https://img.shields.io/github/license/edx/edx-rbac.svg'', ''https://github.com/openedx/edx-rbac/blob/master/LICENSE.txt'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-rbac','[''3'', ''3.12'']','https://github.com/openedx/edx-rbac',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-android',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,14,'{"total_duration": "5 minutes 1 seconds", "checks": [{"name": "Runs unit tests", "duration": "5 minutes 1 seconds"}, {"name": "Validate strings.xml", "duration": "0 minutes 9 seconds"}]}','Other','2023-03-13 09:14:43','main','The mobile app for Android for the Open EdX Platform.',7647,57,1,0,0,0,0,0,0,'2026-05-30 15:28:17','Apache License 2.0',6,0,0,0,0,1129,867,17073,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403'', ''https://app.transifex.com/open-edx/openedx-translations/openedx-app-android/: 404'']',0,'[''https://github.com/openedx/openedx-app-android.git'', ''https://docs.openedx.org/en/latest/developers/concepts/oep58.html'', ''https://github.com/openedx/openedx-atlas'', ''https://github.com/openedx/openedx-translations'', ''https://github.com/openedx/openedx-translations/blob/04ccea36b8e6a9889646dfb5a5acb99686fa9ae0/translations/openedx-app-android/i18n/src/main/res/values-uk/strings.xml'', ''https://github.com/openedx/openedx-atlas/issues/20'', ''https://github.com/apps/transifex-integration'', ''https://github.com/openedx/openedx-app-android/blob/main/LICENSE'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-base-compat',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,11,0,'',0,'{}',0,11,'{"@openedx/frontend-base": "^1.0.0-alpha || 0.0.0-dev", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@types/jest": "^29.5.14", "@types/react": "^18", "@types/react-dom": "^18", "jest": "^29", "nodemon": "^3.1.14", "react": "^18", "react-dom": "^18", "tsc-alias": "^1.8.16"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "0 minutes 59 seconds", "checks": [{"name": "test", "duration": "0 minutes 59 seconds"}, {"name": "Release", "duration": "0 minutes 40 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 5 seconds"}]}','Other','2026-05-02 22:17:10','main','Compatibility shim that lets legacy frontend-plugin-framework env.config.jsx files run on top of @openedx/frontend-base.',275,2,1,0,0,0,0,0,0,'2026-05-20 13:22:04','GNU AGPLv3',0,1,0,0,0,893,157,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx/frontend-base'', ''https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/mfe_config_api/views.py'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-component-cookie-policy-banner',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,55,0,'',0,'{}',8,47,'{"@babel/cli": "7.25.6", "@babel/core": "7.25.2", "@babel/preset-env": "7.25.4", "@babel/preset-react": "7.24.7", "@commitlint/cli": "13.2.1", "@commitlint/config-angular": "13.2.0", "@commitlint/prompt": "13.2.1", "@commitlint/prompt-cli": "13.2.1", "@edx/eslint-config": "^4.0.0", "@storybook/addon-a11y": "7.0.23", "@storybook/addon-actions": "6.1.16", "@storybook/addon-centered": "5.3.21", "@storybook/addon-console": "1.2.3", "@storybook/addon-info": "5.3.21", "@storybook/addon-options": "5.3.21", "@storybook/addon-storyshots": "6.1.16", "@storybook/addons": "6.1.16", "@storybook/react": "6.1.16", "@storybook/storybook-deployer": "2.8.10", "@testing-library/react": "12.1.5", "@testing-library/user-event": "^13.5.0", "@testing-library/jest-dom": "5.16.5", "copyfiles": "2.4.1", "es-check": "6.1.1", "eslint": "^8.18.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.30.0", "eslint-plugin-react-hooks": "^4.6.0", "husky": "7.0.4", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-environment-jsdom-global": "4.0.0", "node-sass": "9.0.0", "node-sass-import": "2.0.1", "react": "17.0.2", "react-dev-utils": "11.0.4", "react-dom": "17.0.2", "sass-loader": "16.0.2 ", "semantic-release": "17.4.7", "source-map-loader": "3.0.0", "style-loader": "3.3.1", "travis-deploy-once": "5.0.11", "webpack": "5.61.0", "webpack-build-notifier": "2.3.0", "webpack-cli": "4.9.1"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@openedx/paragon": "^21.13.1", "babel-preset-minify": "^0.5.0", "classnames": "^2.3.1", "identity-obj-proxy": "^3.0.0", "prop-types": "^15.6.1", "type-fest": "^2.14.0", "universal-cookie": "^4.0.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,1,1,568,'{"total_duration": "1 minutes 45 seconds", "checks": [{"name": "Release", "duration": "1 minutes 38 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 54 seconds"}]}','Other','2018-04-03 13:28:37','master','The edX cookie policy banner component implemented in React.',28131,18,1,0,0,0,0,0,0,'2026-05-20 13:21:13','GNU AGPLv3',2,1,0,0,0,20725,0,0,0,0,0,0,0,0,0,0,'@edx/frontend-component-cookie-policy-banner','openedx',0,'[''https://www.npmjs.com/package/@edx/frontend-component-cookie-policy-banner: 403'', ''https://github.com/openedx/frontend-component-cookie-policy-banner.svg/blob/master/LICENSE: 404'', ''https://imgur.com/mZct2v5.png: 429'']',0,'[''https://badges.greenkeeper.io/edx/frontend-component-cookie-policy-banner.svg'', ''https://greenkeeper.io/'', ''https://img.shields.io/npm/v/@edx/frontend-component-cookie-policy-banner.svg'', ''https://img.shields.io/npm/dt/@edx/frontend-component-cookie-policy-banner.svg'', ''https://img.shields.io/npm/l/@edx/frontend-component-cookie-policy-banner.svg'', ''https://github.com/semantic-release/semantic-release'', ''https://github.com/openedx/frontend-component-cookie-policy-banner'', ''https://github.com/storybooks/storybook'', ''https://open.edx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2021-12-07',NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-bulk-grades',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,132,0,'[]',0,'',0,0,'','',43,'["urllib3==2.6.3", "cffi==2.0.0", "pynacl==1.6.2", "pymongo==4.16.0", "psutil==7.2.2", "idna==3.11", "stevedore==5.7.0", "billiard==4.2.4", "edx-django-utils==8.0.1", "djangorestframework==3.16.1", "prompt-toolkit==3.0.52", "edx-opaque-keys==3.1.0", "amqp==5.3.1", "click==8.3.1", "super-csv==4.1.0", "simplejson==3.20.2", "requests==2.32.5", "django-model-utils==5.0.0", "python-dateutil==2.9.0.post0", "tzdata==2025.3", "typing-extensions==4.15.0", "django-waffle==5.0.0", "kombu==5.6.2", "jsonfield==3.2.0", "django==5.2.12", "django-crum==0.7.9", "dnspython==2.8.0", "slumber==0.7.1", "vine==5.1.0", "click-repl==0.3.0", "celery==5.6.2", "click-didyoumean==0.3.1", "packaging==26.0", "click-plugins==1.1.1.2", "certifi==2026.2.25", "asgiref==3.11.1", "six==1.17.0", "sqlparse==0.5.5", "edx-celeryutils==1.4.0", "pycparser==3.0", "charset-normalizer==3.4.5", "wcwidth==0.6.0", "tzlocal==5.3.1"]',132,'["tomli-w==1.2.0", "pyproject-api==1.10.0", "djangorestframework==3.16.1", "markupsafe==3.0.3", "prompt-toolkit==3.0.52", "ddt==1.7.2", "pydata-sphinx-theme==0.16.1", "lxml[html-clean]==6.0.2", "pytest==9.0.2", "sphinxcontrib-applehelp==2.0.0", "tox==4.49.1", "astroid==4.0.4", "tzdata==2025.3", "sphinxcontrib-qthelp==2.0.0", "wheel==0.46.3", "pip-tools==7.5.3", "click-plugins==1.1.1.2", "pip==26.0.1", "charset-normalizer==3.4.5", "click-log==0.4.0", "snowballstemmer==3.0.1", "pyproject-hooks==1.2.0", "restructuredtext-lint==2.0.2", "sphinxcontrib-devhelp==2.0.0", "babel==2.18.0", "cffi==2.0.0", "pylint-plugin-utils==0.9.0", "cryptography==46.0.5", "pyyaml==6.0.3", "psutil==7.2.2", "secretstorage==3.5.0", "pydocstyle==6.3.0", "pluggy==1.6.0", "mdurl==0.1.2", "python-slugify==8.0.4", "path==16.16.0", "dill==0.4.1", "diff-cover==10.2.0", "build==1.4.0", "edx-lint==5.6.0", "mock==5.2.0", "jaraco-context==6.1.1", "super-csv==4.1.0", "colorama==0.4.6", "python-dateutil==2.9.0.post0", "jaraco-classes==3.4.0", "typing-extensions==4.15.0", "vine==5.1.0", "chardet==7.0.1", "jsonfield==3.2.0", "pytest-django==4.12.0", "click-repl==0.3.0", "celery==5.6.2", "keyring==25.7.0", "certifi==2026.2.25", "jinja2==3.1.6", "roman-numerals==4.1.0", "sphinx==9.1.0", "cachetools==7.0.5", "mccabe==0.7.0", "jaraco-functools==4.4.0", "markdown-it-py==4.0.0", "pymongo==4.16.0", "accessible-pygments==0.0.5", "beautifulsoup4==4.14.3", "platformdirs==4.9.4", "requests-toolbelt==1.0.0", "readme-renderer==44.0", "idna==3.11", "billiard==4.2.4", "edx-i18n-tools==2.0.0", "imagesize==2.0.0", "doc8==2.0.0", "id==1.6.1", "setuptools==82.0.1", "twine==6.2.0", "sphinxcontrib-htmlhelp==2.1.0", "coverage[toml]==7.13.4", "edx-opaque-keys==3.1.0", "click==8.3.1", "simplejson==3.20.2", "pycodestyle==2.14.0", "django-waffle==5.0.0", "django==5.2.12", "django-crum==0.7.9", "soupsieve==2.8.3", "packaging==26.0", "click-didyoumean==0.3.1", "pygments==2.19.2", "coverage==7.13.4", "polib==1.2.0", "sqlparse==0.5.5", "pycparser==3.0", "nh3==0.3.3", "isort==8.0.1", "docutils==0.21.2", "urllib3==2.6.3", "rich==14.3.3", "pynacl==1.6.2", "python-discovery==1.1.3", "rfc3986==2.0.0", "pylint-celery==0.3", "distlib==0.4.0", "stevedore==5.7.0", "sphinx-book-theme==1.2.0", "edx-django-utils==8.0.1", "alabaster==1.0.0", "virtualenv==21.2.0", "pylint-django==2.7.0", "filelock==3.25.1", "pytest-cov==7.0.0", "text-unidecode==1.3", "amqp==5.3.1", "iniconfig==2.3.0", "pylint==4.0.5", "requests==2.32.5", "django-model-utils==5.0.0", "kombu==5.6.2", "slumber==0.7.1", "code-annotations==2.3.2", "tomlkit==0.14.0", "dnspython==2.8.0", "jeepney==0.9.0", "more-itertools==10.8.0", "lxml-html-clean==0.4.4", "six==1.17.0", "asgiref==3.11.1", "sphinxcontrib-jsmath==1.0.1", "edx-celeryutils==1.4.0", "sphinxcontrib-serializinghtml==2.0.0", "wcwidth==0.6.0", "tzlocal==5.3.1"]',10,'["code-annotations", "edx-django-utils", "edx-celeryutils", "pytest-django", "djangorestframework", "edx-i18n-tools", "super-csv", "edx-opaque-keys", "pylint-django", "django-waffle"]',13,'["code-annotations", "django-model-utils", "edx-django-utils", "edx-celeryutils", "pytest-django", "jsonfield", "djangorestframework", "edx-i18n-tools", "super-csv", "edx-opaque-keys", "pylint-django", "django-crum", "django-waffle"]',7,'["code-annotations", "edx-django-utils", "edx-celeryutils", "edx-i18n-tools", "super-csv", "edx-opaque-keys", "django-waffle"]',1,NULL,1,0,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,10,'{"total_duration": "0 minutes 45 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52-celery55)", "duration": "0 minutes 43 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 41 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42-celery55)", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 30 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}]}','Other','2019-05-28 13:29:49','master','',410,11,1,0,0,0,0,0,0,'2026-05-30 15:07:20','GNU AGPLv3',5,1,0,0,662,0,5356,110667,0,1,1,0,0,1,0,0,'','openedx',2,'[''https://github.com/openedx/devstack: 504'', ''https://travis-ci.com/edx/edx-bulk-grades: 415'', ''http://edx-bulk-grades.readthedocs.io/en/latest/: 404'']',1,'[''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/edx-bulk-grades/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/edx-bulk-grades/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/edx-bulk-grades.svg'', ''https://pypi.python.org/pypi/edx-bulk-grades/'', ''https://travis-ci.com/edx/edx-bulk-grades.svg?branch=master'', ''http://codecov.io/github/edx/edx-bulk-grades/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-bulk-grades?branch=master'', ''https://readthedocs.org/projects/edx-bulk-grades/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-bulk-grades.svg'', ''https://img.shields.io/github/license/edx/edx-bulk-grades.svg'', ''https://github.com/openedx/edx-bulk-grades/blob/master/LICENSE.txt'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-bulk-grades','[''3'', ''3.12'']','https://github.com/openedx/edx-bulk-grades',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-enterprise-data',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,154,0,'[]',0,'',0,0,'','',81,'["django==4.2.30", "python-dateutil==2.9.0.post0", "docutils==0.19", "filelock==3.29.0", "jmespath==1.1.0", "edx-rest-api-client==7.0.0", "bcrypt==5.0.0", "psutil==7.2.2", "stevedore==5.7.0", "packaging==26.2", "faker==40.15.0", "vine==5.1.0", "pyjwt[crypto]==2.12.1", "asn1crypto==1.5.1", "requests==2.33.1", "pycparser==3.0", "snowflake-connector-python==4.4.0", "idna==3.14", "pyopenssl==26.2.0", "wcwidth==0.7.0", "pyasn1==0.6.3", "edx-opaque-keys==4.0.0", "djangorestframework-csv==3.0.2", "django-crum==0.7.9", "pytz==2026.2", "djangorestframework==3.17.1", "certifi==2026.4.22", "pynacl==1.6.2", "amqp==5.3.1", "cryptography==48.0.0", "celery==5.3.6", "edx-django-utils==8.0.1", "botocore==1.43.6", "pymongo==4.17.0", "edx-rbac==3.0.0", "semantic-version==2.10.0", "sqlparse==0.5.5", "click-repl==0.3.0", "boto3==1.43.6", "platformdirs==4.9.6", "pyminizip==0.2.6", "tomlkit==0.15.0", "unicodecsv==0.14.1", "paramiko==5.0.0", "monotonic==1.6", "click-didyoumean==0.3.1", "factory-boy==3.3.3", "awscli==1.45.6", "typing-extensions==4.15.0", "billiard==4.2.4", "django-fernet-fields-v2==0.9", "kombu==5.6.2", "edx-drf-extensions==10.6.0", "s3transfer==0.17.0", "drf-jwt==1.19.2", "pillow==12.2.0", "charset-normalizer==3.4.7", "click==8.3.3", "pyyaml==6.0.3", "vertica-python==1.4.0", "colorama==0.4.6", "pgpy==0.6.0", "sortedcontainers==2.4.0", "click-plugins==1.1.1.2", "prompt-toolkit==3.0.52", "six==1.17.0", "tzdata==2026.2", "invoke==3.0.3", "django-model-utils==5.0.0", "pygments==2.20.0", "interchange==2021.0.4", "django-waffle==5.0.0", "pansi==2024.11.0", "asgiref==3.11.1", "django-filter==25.1", "rules==3.5", "rsa==4.7.2", "dnspython==2.8.0", "mysql-connector-python==9.5.0", "cffi==2.0.0", "urllib3==2.7.0"]',154,'["pyjwt==2.12.1", "python-dateutil==2.9.0.post0", "django==4.2.30", "markupsafe==3.0.3", "pycodestyle==2.14.0", "wheel==0.47.0", "docutils==0.19", "filelock==3.29.0", "readme-renderer==43.0", "chardet==7.4.3", "jmespath==1.1.0", "jinja2==3.1.6", "secretstorage==3.5.0", "edx-rest-api-client==7.0.0", "bcrypt==5.0.0", "psutil==7.2.2", "stevedore==5.7.0", "python-discovery==1.3.0", "pip-tools==7.5.3", "packaging==26.2", "flaky==3.8.1", "pip==26.1.1", "ddt==1.1.2", "click-log==0.4.0", "faker==40.15.0", "nh3==0.3.5", "text-unidecode==1.3", "vine==5.1.0", "pyjwt[crypto]==2.12.1", "setuptools==82.0.1", "jaraco-context==6.1.2", "asn1crypto==1.5.1", "requests==2.33.1", "pycparser==3.0", "mock==2.0.0", "snowflake-connector-python==4.4.0", "coverage==7.14.0", "idna==3.14", "more-itertools==11.0.2", "build==1.5.0", "mock==5.2.0", "lxml[html-clean]==6.1.0", "pyproject-api==1.10.0", "pyopenssl==26.2.0", "wcwidth==0.7.0", "pylint-celery==0.3", "keyring==25.7.0", "pyasn1==0.6.3", "edx-opaque-keys==4.0.0", "snowballstemmer==3.0.1", "djangorestframework-csv==3.0.2", "path==16.16.0", "django-crum==0.7.9", "pytz==2026.2", "coverage[toml]==7.14.0", "pytest==8.0.2", "id==1.6.1", "djangorestframework==3.17.1", "distlib==0.4.0", "certifi==2026.4.22", "mccabe==0.7.0", "pynacl==1.6.2", "amqp==5.3.1", "cryptography==48.0.0", "pluggy==1.6.0", "celery==5.3.6", "edx-django-utils==8.0.1", "botocore==1.43.6", "pymongo==4.17.0", "edx-rbac==3.0.0", "markdown-it-py==4.2.0", "rfc3986==2.0.0", "pylint==4.0.5", "semantic-version==2.10.0", "sqlparse==0.5.5", "cachetools==7.1.1", "click-repl==0.3.0", "boto3==1.43.6", "platformdirs==4.9.6", "pyminizip==0.2.6", "tomlkit==0.15.0", "unicodecsv==0.14.1", "pydocstyle==6.3.0", "testfixtures==11.0.0", "paramiko==5.0.0", "iniconfig==2.3.0", "monotonic==1.6", "click-didyoumean==0.3.1", "factory-boy==3.3.3", "freezegun==1.5.5", "lxml-html-clean==0.4.4", "awscli==1.45.6", "typing-extensions==4.15.0", "responses==0.26.0", "astroid==4.0.4", "edx-lint==6.1.0", "billiard==4.2.4", "django-fernet-fields-v2==0.9", "tox==4.53.1", "twine==6.2.0", "mdurl==0.1.2", "kombu==5.6.2", "s3transfer==0.17.0", "edx-drf-extensions==10.6.0", "pytest-cov==7.1.0", "drf-jwt==1.19.2", "pillow==12.2.0", "tomli-w==1.2.0", "charset-normalizer==3.4.7", "click==8.3.3", "pyyaml==6.0.3", "vertica-python==1.4.0", "pylint-django==2.7.0", "pytest==9.0.3", "jaraco-functools==4.4.0", "colorama==0.4.6", "pytest-django==4.12.0", "pyproject-hooks==1.2.0", "jeepney==0.9.0", "pgpy==0.6.0", "sortedcontainers==2.4.0", "polib==1.2.0", "edx-i18n-tools==2.0.0", "click-plugins==1.1.1.2", "jaraco-classes==3.4.0", "pylint-plugin-utils==0.9.0", "prompt-toolkit==3.0.52", "isort==8.0.1", "six==1.17.0", "tzdata==2026.2", "invoke==3.0.3", "django-model-utils==5.0.0", "rich==15.0.0", "pygments==2.20.0", "interchange==2021.0.4", "code-annotations==3.0.0", "django-waffle==5.0.0", "pansi==2024.11.0", "requests-toolbelt==1.0.0", "ddt==1.7.2", "asgiref==3.11.1", "django-filter==25.1", "rules==3.5", "pytest-cov==4.1.0", "rsa==4.7.2", "dnspython==2.8.0", "pbr==7.0.3", "virtualenv==21.3.1", "dill==0.4.1", "mysql-connector-python==9.5.0", "cffi==2.0.0", "python-slugify==8.0.4", "urllib3==2.7.0", "diff-cover==10.2.0"]',13,'["edx-i18n-tools", "djangorestframework", "edx-rbac", "django-waffle", "pytest-django", "edx-rest-api-client", "code-annotations", "pylint-django", "django-filter", "factory-boy", "edx-drf-extensions", "edx-django-utils", "edx-opaque-keys"]',18,'["edx-i18n-tools", "djangorestframework", "edx-rbac", "drf-jwt", "django-crum", "django-waffle", "pytest-django", "edx-rest-api-client", "code-annotations", "djangorestframework-csv", "pylint-django", "rules", "django-filter", "django-model-utils", "factory-boy", "edx-drf-extensions", "edx-django-utils", "edx-opaque-keys"]',9,'["edx-i18n-tools", "edx-rbac", "django-waffle", "edx-rest-api-client", "code-annotations", "django-filter", "edx-drf-extensions", "edx-django-utils", "edx-opaque-keys"]',0,NULL,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,47,'{"total_duration": "6424 minutes 42 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, data-django42)", "duration": "1 minutes 56 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, reporting-django42)", "duration": "1 minutes 21 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 20 seconds"}, {"name": "check migrations (ubuntu-latest, 3.12)", "duration": "1 minutes 7 seconds"}, {"name": "push", "duration": "0 minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 35 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2017-10-04 19:19:49','master','The edX Enterprise Data repo is the home to tools and products related to providing access to Enterprise related data.',1564,21,1,0,0,0,0,0,0,'2026-06-08 03:12:50','GNU AGPLv3',9,1,0,0,0,0,3657,778304,974,0,0,0,0,1,0,0,'','openedx',4,'[]',0,'[''https://github.com/openedx/edx-analytics-data-api/'', ''https://github.com/openedx/edx-drf-extensions/blob/4569b9bf7e54a917d4acdd545b10c058c960dd1a/edx_rest_framework_extensions/auth/jwt/authentication.py'', ''https://github.com/openedx/devstack'', ''https://github.com/openedx/frontend-app-admin-portal/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-enterprise-data','[''3'', ''3.12'']','https://github.com/openedx/edx-enterprise-data',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-firebase-analytics-android',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "", "checks": []}','Other','2024-10-11 09:09:27','main','',118,2,1,0,0,0,0,0,0,'2026-05-30 15:28:46','Apache License 2.0',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://jitpack.io'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/codejail',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,34,0,'[]',0,'',0,0,'','',16,'["pluggy==1.6.0", "pygments==2.20.0", "iniconfig==2.3.0", "astroid==4.0.4", "pylint==4.0.5", "sqlparse==0.5.5", "mccabe==0.7.0", "isort==8.0.1", "packaging==26.2", "pytest==9.0.3", "tomlkit==0.15.0", "django==5.2.14", "platformdirs==4.10.0", "pycodestyle==2.14.0", "asgiref==3.11.1", "dill==0.4.1"]',34,'["numpy==2.4.6", "sqlparse==0.5.5", "astroid==4.0.4", "pylint==4.0.5", "mccabe==0.7.0", "pytest==9.0.3", "python-discovery==1.4.0", "virtualenv==21.4.2", "filelock==3.29.0", "build==1.5.0", "colorama==0.4.6", "click==8.4.1", "cachetools==7.1.4", "isort==8.0.1", "django==5.2.14", "dill==0.4.1", "pyproject-api==1.10.1", "six==1.17.0", "pyproject-hooks==1.2.0", "tomlkit==0.15.0", "pip-tools==7.5.3", "platformdirs==4.10.0", "setuptools==82.0.1", "tomli-w==1.2.0", "pygments==2.20.0", "iniconfig==2.3.0", "packaging==26.2", "distlib==0.4.0", "asgiref==3.11.1", "pip==26.1.2", "wheel==0.47.0", "tox==4.55.0", "pycodestyle==2.14.0", "pluggy==1.6.0"]',0,'[]',0,'[]',0,'[]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,13,'{"total_duration": "9086 minutes 4 seconds", "checks": [{"name": "tests (3.12, 22.04, django42)", "duration": "1 minutes 55 seconds"}, {"name": "tests (3.12, 22.04, django52)", "duration": "1 minutes 50 seconds"}, {"name": "tests (3.12, 24.04, django52)", "duration": "1 minutes 50 seconds"}, {"name": "tests (3.12, 24.04, django42)", "duration": "1 minutes 50 seconds"}, {"name": "tests (quality, 24.04, 3.12)", "duration": "1 minutes 39 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 3 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 35 seconds"}, {"name": "Dependabot", "duration": "0 minutes 19 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2013-04-26 20:48:06','master','Secure code execution',443,82,1,0,0,0,0,0,0,'2026-06-08 00:22:34','Apache License 2.0',2,1,0,3814,0,0,2084,77642,0,0,1,0,0,1,0,0,'','openedx',2,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-codejail','[''3'', ''3.12'']','https://github.com/openedx/codejail',1,1,1,0,0,0,0,0,0,'[]','[]','[''sudo'', ''curl'', ''python${python_version}-dev'', ''python${python_version}'', ''python${python_version}-venv'', ''vim'', ''git'', ''software-properties-common'', ''make'', ''build-essential'', ''python3-distutils'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblocks-extra',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,7,'{"total_duration": "78 minutes 59 seconds", "checks": [{"name": "copilot-pull-request-reviewer", "duration": "3 minutes 24 seconds"}, {"name": "release", "duration": "1 minutes 22 seconds"}, {"name": "run_ci / Test (Python 3.12, Django 4.2)", "duration": "0 minutes 22 seconds"}, {"name": "Test (Python 3.12, Django 5.2)", "duration": "0 minutes 20 seconds"}, {"name": "Test (Python 3.12, Django 4.2)", "duration": "0 minutes 17 seconds"}, {"name": "run_ci / Test (Python 3.12, Django 5.2)", "duration": "0 minutes 17 seconds"}, {"name": "publish_to_pypi", "duration": "0 minutes 14 seconds"}, {"name": "Lint", "duration": "0 minutes 9 seconds"}, {"name": "run_ci / Lint", "duration": "0 minutes 8 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2025-04-17 17:54:17','main','',951,4,1,0,0,0,0,0,0,'2026-06-08 00:44:28','GNU AGPLv3',6,1,9625,0,25498,26607,2183,195145,0,0,0,0,0,1,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx-unsupported/AudioXBlock'', ''https://github.com/openedx/FeedbackXBlock'', ''https://github.com/openedx/xblock-free-text-response'', ''https://github.com/openedx-unsupported/xblock-image-modal'', ''https://github.com/openedx-unsupported/xblock-qualtrics-survey'', ''https://github.com/openedx/xblock-sql-grader'', ''https://github.com/openedx-unsupported/xblock-submit-and-compare'', ''https://github.com/openedx/xblocks-extra.git'', ''https://docs.openedx.org/en/latest/developers/concepts/oep58.html'', ''https://github.com/openedx/openedx-translations'', ''https://openedx.org/contributor-guidelines'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-frontend',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "90718 minutes 11 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "Dependabot", "duration": "0 minutes 22 seconds"}, {"name": "Dependabot", "duration": "0 minutes 20 seconds"}, {"name": "Dependabot", "duration": "0 minutes 19 seconds"}]}','Other','2021-07-23 18:16:35','main','Open edX Frontend Working Group',18,2,1,0,0,0,0,0,0,'2025-10-30 15:16:42',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://openedx.atlassian.net/wiki/spaces/FEDX/pages/3090056949/Frontend+Working+Group'', ''https://github.com/orgs/openedx/projects/29'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-drag-and-drop-v2',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,91,0,'[]',0,'',0,0,'','',29,'["lxml==6.1.1", "fs-s3fs==1.1.1", "jmespath==1.1.0", "sqlparse==0.5.5", "asgiref==3.11.1", "mako==1.3.12", "pyyaml==6.0.3", "webob==1.8.9", "markupsafe==3.0.3", "lazy==1.6", "appdirs==1.4.4", "bleach[css]==6.3.0", "pytz==2026.2", "urllib3==2.7.0", "s3transfer==0.18.0", "tinycss2==1.4.0", "boto3==1.43.18", "botocore==1.43.18", "django-statici18n==2.7.1", "xblock[django]==6.1.0", "django==5.2.14", "django-appconf==1.2.0", "simplejson==4.1.1", "web-fragments==4.0.0", "webencodings==0.5.1", "openedx-django-pyfs==4.0.0", "six==1.17.0", "python-dateutil==2.9.0.post0", "fs==2.4.16"]',91,'["lxml==6.1.1", "tox==4.55.0", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", "pygments==2.20.0", "distlib==0.4.0", "ddt==1.7.2", "pip==26.1.2", "certifi==2026.5.20", "appdirs==1.4.4", "bleach[css]==6.3.0", "tzdata==2026.2", "idna==3.17", "dill==0.4.1", "rich==15.0.0", "django-statici18n==2.7.1", "xblock[django]==6.1.0", "tomli-w==1.2.0", "text-unidecode==1.3", "pytest-cov==7.1.0", "simplejson==4.1.1", "fs-s3fs==1.1.1", "edx-lint==6.1.0", "pyproject-api==1.10.1", "isort==8.0.1", "mdurl==0.1.2", "pytest==9.0.3", "polib==1.2.0", "asgiref==3.11.1", "code-annotations==3.0.0", "setuptools==82.0.1", "tomlkit==0.15.0", "binaryornot==0.6.0", "python-discovery==1.4.0", "stevedore==5.8.0", "iniconfig==2.3.0", "python-slugify==8.0.4", "s3transfer==0.18.0", "boto3==1.43.18", "botocore==1.43.18", "pypng==0.20220715.0", "django-appconf==1.2.0", "pluggy==1.6.0", "pylint-plugin-utils==0.9.0", "python-dateutil==2.9.0.post0", "fs==2.4.16", "jmespath==1.1.0", "pytest-django==4.12.0", "sqlparse==0.5.5", "mako==1.3.12", "packaging==26.2", "wheel==0.47.0", "click==8.4.1", "jinja2==3.1.6", "markupsafe==3.0.3", "charset-normalizer==3.4.7", "click-log==0.4.0", "colorama==0.4.6", "urllib3==2.7.0", "pip-tools==7.5.3", "virtualenv==21.4.2", "build==1.5.0", "requests==2.34.2", "coverage[toml]==7.14.1", "web-fragments==4.0.0", "openedx-django-pyfs==4.0.0", "six==1.17.0", "webencodings==0.5.1", "pylint-celery==0.3", "mccabe==0.7.0", "markdown-it-py==4.2.0", "xblock-sdk==0.14.0", "pyyaml==6.0.3", "webob==1.8.9", "platformdirs==4.10.0", "cachetools==7.1.4", "edx-i18n-tools==2.0.0", "mock==5.2.0", "lazy==1.6", "pytz==2026.2", "path==16.16.0", "lxml[html-clean]==6.1.1", "tinycss2==1.4.0", "django==5.2.14", "pylint==4.0.5", "pylint-django==2.7.0", "arrow==1.4.0", "astroid==4.0.4", "cookiecutter==2.7.1", "lxml-html-clean==0.4.5", "filelock==3.29.0"]',7,'["pytest-django", "django-appconf", "xblock-sdk", "edx-i18n-tools", "web-fragments", "code-annotations", "pylint-django"]',8,'["pytest-django", "django-appconf", "xblock-sdk", "edx-i18n-tools", "web-fragments", "code-annotations", "django-statici18n", "pylint-django"]',5,'["django-appconf", "xblock-sdk", "edx-i18n-tools", "web-fragments", "code-annotations"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,29,'{"total_duration": "6361 minutes 41 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 2 seconds"}, {"name": "tests (ubuntu-latest, 3.12, translations)", "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 43 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 42 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 51 seconds"}]}','Other','2014-06-30 15:30:30','master','',3548,72,1,0,0,0,0,0,0,'2026-06-08 00:45:01','GNU AGPLv3',1,1,30354,0,24507,393085,4385,154530,0,1,0,0,0,1,0,0,'','openedx',0,'[]',0,'[''https://docs.openedx.org/en/latest/educators/references/course_development/problem_settings.html'', ''https://github.com/open-craft/demo-courses/archive/drag-and-drop-v2.tar.gz'', ''https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html'', ''https://github.com/openedx/i18n-tools'', ''https://github.com/openedx/openedx-translations'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'xblock-drag-and-drop-v2','[''3.12'']','https://github.com/openedx/xblock-drag-and-drop-v2',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-translations',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',NULL,NULL,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "123 minutes 47 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 55 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2023-05-03 15:17:51','main','Repository for Translation Working Group docs and issues.',7,1,1,0,0,0,0,0,0,'2025-10-30 15:16:07',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-catalog',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,34,0,'',0,'{}',25,9,'{"@edx/browserslist-config": "^1.5.0", "@edx/stylelint-config-edx": "2.3.3", "@edx/typescript-config": "^1.1.0", "@openedx/frontend-build": "14.6.6", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "16.3.0", "@testing-library/user-event": "^14.6.1", "@types/lodash.capitalize": "^4.2.9", "glob": "13.0.6"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.7.1", "@edx/frontend-component-header": "^8.0.0", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.18.1", "@tanstack/react-query": "5.96.2", "classnames": "^2.5.1", "core-js": "3.49.0", "lodash.capitalize": "^4.2.1", "lodash.debounce": "^4.0.8", "prop-types": "15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "^6.1.0", "react-router": "6.30.3", "react-router-dom": "6.30.3", "regenerator-runtime": "0.14.1", "ts-node": "^10.9.2"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,7,'{"total_duration": "3 minutes 16 seconds", "checks": [{"name": "test", "duration": "3 minutes 15 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 6 seconds"}]}','Other','2025-05-05 20:11:00','master','',34782,14,1,0,0,0,0,0,0,'2026-05-20 13:25:36','GNU AGPLv3',5,1,0,0,369,976,1538,0,0,0,0,0,0,0,0,0,'@edx/frontend-app-catalog','openedx',0,'[''https://github.com/nvm-sh/nvm: 504'', ''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst: 504'', ''https://github.com/openedx/frontend-plugin-framework: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-catalog: 404'']',1,'[''https://img.shields.io/github/license/openedx/frontend-app-catalog.svg'', ''https://github.com/openedx/frontend-app-catalog/blob/master/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://codecov.io/github/openedx/frontend-app-catalog/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/frontend-app-catalog?branch=master'', ''https://docs.openedx.org/en/latest/community/release_notes/ulmo/ulmo_catalog.html'', ''https://github.com/openedx/frontend-app-catalog.git'', ''https://github.com/openedx/edx-search/releases/tag/v4.4.0'', ''https://github.com/openedx/openedx-platform/pull/37948'', ''https://github.com/openedx/openedx-platform/pull/37949'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://github.com/openedx/frontend-app-catalog/issues'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-04-06','2025-12-19','4',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-governance',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "21277 minutes 9 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "Dependabot", "duration": "0 minutes 23 seconds"}, {"name": "Dependabot", "duration": "0 minutes 16 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2021-02-19 13:34:48','main','',17,2,1,0,0,0,0,0,0,'2026-04-10 19:00:06',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx/community-wg/projects'', ''https://discuss.openedx.org/c/community/13'', ''https://discuss.openedx.org/t/community-wg-vs-core-contributors/9306/18'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/axim-engineering',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,7,'{"total_duration": "9206 minutes 36 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 21 seconds"}, {"name": "Create weekly issues", "duration": "0 minutes 5 seconds"}, {"name": "tag_and_notify", "duration": "0 minutes 4 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}]}','Other','2021-11-22 21:14:16','main','GitHub Issue repository for the Axim engineering team',4869,3,1,0,0,0,0,0,0,'2026-05-15 10:30:24',NULL,1,0,0,0,0,0,1475,3425,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3241640370/Axim+Collaborative+Engineering+Team'', ''https://github.com/openedx/axim-engineering/issues/new/choose'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/super-csv',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,134,0,'[]',0,'',0,0,'','',32,'["wcwidth==0.7.0", "celery==5.6.3", "django-crum==0.7.9", "prompt-toolkit==3.0.52", "packaging==26.2", "sqlparse==0.5.5", "click-repl==0.3.0", "cffi==2.0.0", "click-plugins==1.1.1.2", "kombu==5.6.2", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", "click==8.4.1", "amqp==5.3.1", "django-model-utils==5.0.0", "simplejson==4.1.1", "edx-django-utils==8.0.1", "djangorestframework==3.17.1", "tzdata==2026.2", "psutil==7.2.2", "six==1.17.0", "django==5.2.15", "tzlocal==5.3.1", "asgiref==3.11.1", "django-waffle==5.0.0", "stevedore==5.8.0", "billiard==4.2.4", "vine==5.1.0", "pycparser==3.0", "click-didyoumean==0.3.1", "edx-celeryutils==2.0.0", "jsonfield==3.2.0"]',134,'["wcwidth==0.7.0", "django-crum==0.7.9", "coverage[toml]==7.14.1", "pydocstyle==6.3.0", "tomlkit==0.15.0", "nh3==0.3.5", "markupsafe==3.0.3", "sqlparse==0.5.5", "sphinxcontrib-applehelp==2.0.0", "pytest-django==4.12.0", "path==16.16.0", "jeepney==0.9.0", "cffi==2.0.0", "more-itertools==11.1.0", "tomli-w==1.2.0", "django-model-utils==5.0.0", "requests-toolbelt==1.0.0", "sphinxcontrib-devhelp==2.0.0", "code-annotations==3.0.0", "roman-numerals==4.1.0", "sphinxcontrib-serializinghtml==2.0.0", "requests==2.34.2", "lxml-html-clean==0.4.5", "doc8==2.0.0", "asgiref==3.11.1", "amqp==5.2.0", "django-waffle==5.0.0", "stevedore==5.8.0", "billiard==4.2.4", "python-slugify==8.0.4", "markdown-it-py==4.2.0", "celery==5.3.6", "click-log==0.4.0", "pycodestyle==2.14.0", "pylint-django==2.7.0", "sphinxcontrib-qthelp==2.0.0", "pyproject-api==1.10.1", "alabaster==1.0.0", "pip-tools==7.5.3", "setuptools==82.0.1", "sphinx-book-theme==1.2.0", "packaging==26.2", "rich==15.0.0", "build==1.5.0", "kombu==5.6.2", "pynacl==1.6.2", "amqp==5.3.1", "pluggy==1.6.0", "pyyaml==6.0.3", "tox==4.55.1", "imagesize==2.0.0", "python-discovery==1.4.0", "edx-django-utils==8.0.1", "filelock==3.29.1", "pylint-plugin-utils==0.9.0", "sphinx==9.1.0", "six==1.17.0", "pygments==2.20.0", "cachetools==7.1.4", "django==5.2.15", "diff-cover==10.3.0", "ddt==1.7.2", "keyring==25.7.0", "sphinxcontrib-htmlhelp==2.1.0", "pip==26.1.2", "jaraco-context==6.1.2", "pycparser==3.0", "virtualenv==21.4.2", "id==1.6.1", "mock==5.2.0", "soupsieve==2.8.4", "sphinxcontrib-jsmath==1.0.1", "edx-lint==6.1.0", "celery==5.6.3", "jaraco-functools==4.5.0", "prompt-toolkit==3.0.52", "secretstorage==3.5.0", "twine==6.2.0", "pylint-celery==0.3", "text-unidecode==1.3", "snowballstemmer==3.1.1", "pytest-cov==7.1.0", "dill==0.4.1", "docutils==0.21.2", "pyproject-hooks==1.2.0", "click-repl==0.3.0", "mccabe==0.7.0", "urllib3==2.7.0", "freezegun==1.5.5", "cryptography==48.0.0", "mdurl==0.1.2", "colorama==0.4.6", "djangorestframework==3.17.1", "isort==8.0.1", "tzlocal==5.3.1", "restructuredtext-lint==2.0.2", "iniconfig==2.3.0", "wheel==0.47.0", "platformdirs==4.10.0", "polib==1.2.0", "readme-renderer==44.0", "chardet==7.4.3", "charset-normalizer==3.4.7", "jsonfield==3.2.0", "idna==3.18", "astroid==4.0.4", "lxml[html-clean]==6.1.1", "pylint==4.0.5", "click-plugins==1.1.1.2", "python-dateutil==2.9.0.post0", "click==8.4.1", "pydata-sphinx-theme==0.16.1", "greenlet==3.5.1", "simplejson==4.1.1", "kombu==5.3.5", "jinja2==3.1.6", "pytest==9.0.3", "distlib==0.4.1", "rfc3986==2.0.0", "tzdata==2026.2", "psutil==7.2.2", "typing-extensions==4.15.0", "certifi==2026.5.20", "billiard==4.2.0", "vine==5.1.0", "edx-i18n-tools==2.0.0", "click-didyoumean==0.3.1", "edx-celeryutils==2.0.0", "click==8.1.6", "beautifulsoup4==4.14.3", "sqlalchemy==2.0.50", "accessible-pygments==0.0.5", "babel==2.18.0", "jaraco-classes==3.4.0"]',8,'["djangorestframework", "edx-i18n-tools", "pylint-django", "edx-django-utils", "edx-celeryutils", "pytest-django", "code-annotations", "django-waffle"]',11,'["jsonfield", "django-model-utils", "djangorestframework", "edx-i18n-tools", "pylint-django", "edx-django-utils", "django-crum", "edx-celeryutils", "pytest-django", "code-annotations", "django-waffle"]',5,'["edx-i18n-tools", "edx-django-utils", "edx-celeryutils", "code-annotations", "django-waffle"]',1,NULL,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,12,'{"total_duration": "3507 minutes 51 seconds", "checks": [{"name": "update-pip-graph", "duration": "0 minutes 40 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-celery53-drflatest)", "duration": "0 minutes 33 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 32 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 28 seconds"}]}','Other','2019-05-15 20:16:52','master','Generic CSV Processor',466,11,1,0,0,0,0,0,0,'2026-06-08 03:14:18','Apache License 2.0',2,1,0,0,662,0,5175,48164,0,1,1,0,0,1,0,0,'','openedx',4,'[''https://github.com/openedx/super-csv/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 504'', ''https://github.com/openedx/super-csv/blob/master/.github/ISSUE_TEMPLATE.md: 504'', ''https://github.com/openedx/super-csv/workflows/Python%20CI/badge.svg?branch=master: 504'', ''https://github.com/openedx/super-csv/actions?query=workflow%3A%22Python+CI%22: 504'', ''http://super-csv.readthedocs.io/en/latest/: 404'']',1,'[''https://github.com/openedx/super-csv/blob/master/super_csv/csv_processor.py'', ''https://github.com/openedx/devstack'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/super-csv.svg'', ''https://pypi.python.org/pypi/super-csv/'', ''http://codecov.io/github/edx/super-csv/coverage.svg?branch=master'', ''http://codecov.io/github/edx/super-csv?branch=master'', ''https://readthedocs.org/projects/super-csv/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/super-csv.svg'', ''https://img.shields.io/github/license/edx/super-csv.svg'', ''https://github.com/openedx/super-csv/blob/master/LICENSE.txt'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'super-csv','[''3'', ''3.12'']','https://github.com/openedx/super-csv',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-enterprise',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,4,0,'',0,'{}',0,4,'{"@commitlint/config-conventional": "17.8.1", "conventional-changelog-conventionalcommits": "^5.0.0", "husky": "6.0.0", "lerna": "6.6.2"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,63,'{"total_duration": "1 minutes 24 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 16 seconds"}, {"name": "Dependabot", "duration": "1 minutes 13 seconds"}, {"name": "Dependabot", "duration": "0 minutes 57 seconds"}, {"name": "Dependabot", "duration": "0 minutes 55 seconds"}, {"name": "Dependabot", "duration": "0 minutes 52 seconds"}, {"name": "Dependabot", "duration": "0 minutes 51 seconds"}, {"name": "Dependabot", "duration": "0 minutes 46 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2019-09-17 19:51:18','master','Frontend utilities for enterprise features.',7852,13,1,0,0,0,0,0,0,'2026-06-02 17:08:06','GNU AGPLv3',8,1,0,0,0,174788,2529,0,0,0,0,0,0,0,0,0,'@edx/frontend-enterprise','openedx',0,'[]',0,'[''https://github.com/openedx/frontend-build'', ''https://github.com/conventional-changelog/commitlint'', ''https://github.com/openedx/frontend-enterprise/actions/workflows/publish-from-package.yml'', ''https://github.com/openedx/frontend-enterprise/actions/workflows/release.yml/badge.svg'', ''https://github.com/openedx/frontend-enterprise/actions'', ''https://codecov.io/gh/edx/frontend-enterprise/branch/master/graph/badge.svg?token=lBHoe5P4Q3'', ''https://codecov.io/gh/edx/frontend-enterprise'']',1,1,0,0,'','',1,'2025-12-15',NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-profile',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,44,0,'',0,'{}',35,9,'{"@commitlint/cli": "19.8.1", "@commitlint/config-angular": "19.8.1", "@edx/browserslist-config": "^1.1.1", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "14.3.1", "glob": "11.1.0", "jest-environment-jsdom": "^30.3.0", "redux-mock-store": "1.5.5"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-brands-svg-icons": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.4.5", "@pact-foundation/pact": "^11.0.2", "@redux-devtools/extension": "3.3.0", "classnames": "2.5.1", "core-js": "3.48.0", "history": "5.3.0", "lodash.camelcase": "4.3.0", "lodash.get": "4.4.2", "lodash.pick": "4.4.0", "lodash.snakecase": "4.1.1", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", "react-helmet": "6.1.0", "react-redux": "7.2.9", "react-router": "6.30.3", "react-router-dom": "6.30.3", "redux": "4.2.1", "redux-logger": "3.0.6", "redux-saga": "1.4.2", "redux-thunk": "2.4.2", "regenerator-runtime": "0.14.1", "reselect": "5.1.1", "universal-cookie": "4.0.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,45,'{"total_duration": "0 minutes 0 seconds", "checks": [{"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2019-01-10 17:55:59','master','Open edX micro-frontend application for managing user profile information.',23497,152,1,0,0,0,0,0,0,'2026-06-08 00:46:02','GNU AGPLv3',17,1,0,0,387,191644,1972,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-profile','openedx',0,'[''https://github.com/openedx/frontend-app-profile/blob/main/LICENSE: 404'', ''https://backstage.herokuapp.com/catalog/default/component/frontend-app-profile: 502'']',1,'[''https://img.shields.io/github/license/openedx/frontend-app-profile.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-profile/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-app-profile/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-app-profile/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-app-profile?branch=main'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-app-profile.git'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-profile/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-04-06','2025-07-21','8',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-tutor-plugins',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,5,'{"total_duration": "", "checks": []}','Other','2023-05-31 16:33:08','main','A set of Tutor plugins maintained by the Open edX community.',178,15,1,0,0,0,0,0,0,'2026-05-17 01:02:12','GNU AGPLv3',3,0,0,196,0,0,4316,39661,3277,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/overhangio/cookiecutter-tutor-plugin: 504'', ''https://github.com/openedx/openedx-tutor-plugins/issues: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-tutor-plugins: 404'']',1,'[''https://img.shields.io/github/license/openedx/openedx-tutor-plugins.svg'', ''https://github.com/openedx/openedx-tutor-plugins/blob/main/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://docs.tutor.overhang.io/install.html'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/CGE253B7V'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-enterprise-subsidy-client',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,103,0,'[]',0,'',0,0,'','',19,'["sqlparse==0.5.5", "django-crum==0.7.9", "django-waffle==5.0.0", "certifi==2026.4.22", "requests==2.33.1", "cffi==2.0.0", "idna==3.13", "edx-django-utils==8.0.1", "urllib3==2.6.3", "psutil==7.2.2", "asgiref==3.11.1", "click==8.3.3", "pynacl==1.6.2", "edx-rest-api-client==7.0.0", "pycparser==3.0", "django==5.2.13", "charset-normalizer==3.4.7", "pyjwt==2.12.1", "stevedore==5.7.0"]',103,'["sqlparse==0.5.5", "tomli-w==1.2.0", "wheel==0.47.0", "build==1.5.0", "iniconfig==2.3.0", "doc8==2.0.0", "certifi==2026.4.22", "requests==2.33.1", "alabaster==1.0.0", "cffi==2.0.0", "accessible-pygments==0.0.5", "more-itertools==11.0.2", "babel==2.18.0", "twine==6.2.0", "psutil==7.2.2", "sphinx==9.1.0", "pylint-django==2.7.0", "pynacl==1.6.2", "pytest-cov==7.1.0", "edx-rest-api-client==7.0.0", "pytest==9.0.3", "pycparser==3.0", "dill==0.4.1", "platformdirs==4.9.6", "python-slugify==8.0.4", "readme-renderer==44.0", "packaging==26.2", "pydata-sphinx-theme==0.16.1", "pylint==4.0.5", "tomlkit==0.14.0", "snowballstemmer==3.0.1", "pyproject-hooks==1.2.0", "cachetools==7.1.1", "pluggy==1.6.0", "typing-extensions==4.15.0", "click-log==0.4.0", "mccabe==0.7.0", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", "urllib3==2.6.3", "virtualenv==21.3.0", "coverage[toml]==7.13.5", "edx-lint==6.1.0", "secretstorage==3.5.0", "sphinxcontrib-qthelp==2.0.0", "id==1.6.1", "asgiref==3.11.1", "pip==26.1", "click==8.3.3", "isort==8.0.1", "markdown-it-py==4.0.0", "markupsafe==3.0.3", "django==5.2.13", "stevedore==5.7.0", "setuptools==82.0.1", "restructuredtext-lint==2.0.2", "django-crum==0.7.9", "django-waffle==5.0.0", "nh3==0.3.5", "chardet==7.4.3", "pylint-plugin-utils==0.9.0", "colorama==0.4.6", "python-discovery==1.2.2", "sphinxcontrib-serializinghtml==2.0.0", "requests-toolbelt==1.0.0", "pydocstyle==6.3.0", "imagesize==2.0.0", "sphinxcontrib-applehelp==2.0.0", "pycodestyle==2.14.0", "jeepney==0.9.0", "pyproject-api==1.10.0", "six==1.17.0", "code-annotations==3.0.0", "mdurl==0.1.2", "jaraco-classes==3.4.0", "cryptography==47.0.0", "tox==4.53.1", "soupsieve==2.8.3", "pyyaml==6.0.3", "docutils==0.22.4", "astroid==4.0.4", "pyjwt==2.12.1", "roman-numerals==4.1.0", "rfc3986==2.0.0", "filelock==3.29.0", "beautifulsoup4==4.14.3", "sphinxcontrib-htmlhelp==2.1.0", "idna==3.13", "edx-django-utils==8.0.1", "rich==15.0.0", "distlib==0.4.0", "sphinx-book-theme==1.2.0", "pygments==2.20.0", "jaraco-functools==4.4.0", "docutils==0.21.2", "jaraco-context==6.1.2", "keyring==25.7.0", "pylint-celery==0.3", "pip-tools==7.5.3", "diff-cover==10.2.0", "text-unidecode==1.3", "charset-normalizer==3.4.7", "jinja2==3.1.6"]',5,'["pylint-django", "edx-rest-api-client", "code-annotations", "django-waffle", "edx-django-utils"]',6,'["pylint-django", "edx-rest-api-client", "code-annotations", "django-waffle", "django-crum", "edx-django-utils"]',4,'["code-annotations", "edx-rest-api-client", "django-waffle", "edx-django-utils"]',1,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,22,'{"total_duration": "13922 minutes 27 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 13 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 8 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, unittests)", "duration": "0 minutes 27 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2022-12-21 21:19:15','main','Client for making requests to edx-enterprise-subsidy.',246,5,1,0,0,0,0,0,0,'2026-06-08 03:03:41','GNU AGPLv3',3,1,0,0,0,0,3529,34065,0,0,1,0,0,1,0,0,'','openedx',0,'[''https://docs.openedx.org/projects/edx-enterprise-subsidy-client/how-tos/how-to-deploy-this-component.html: 404'', ''https://docs.openedx.org/projects/edx-enterprise-subsidy-client: 404'', ''https://github.com/openedx/edx-enterprise-subsidy-client/issues: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/edx-enterprise-subsidy-client: 404'', ''https://edx-enterprise-subsidy-client.readthedocs.io/en/latest/: 404'']',1,'[''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/pypi/v/edx-enterprise-subsidy-client.svg'', ''https://pypi.python.org/pypi/edx-enterprise-subsidy-client/'', ''https://github.com/openedx/edx-enterprise-subsidy-client/workflows/Python%20CI/badge.svg?branch=main'', ''https://github.com/openedx/edx-enterprise-subsidy-client/actions'', ''https://codecov.io/github/openedx/edx-enterprise-subsidy-client/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/edx-enterprise-subsidy-client?branch=main'', ''https://readthedocs.org/projects/edx-enterprise-subsidy-client/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-enterprise-subsidy-client.svg'', ''https://img.shields.io/github/license/openedx/edx-enterprise-subsidy-client.svg'', ''https://github.com/openedx/edx-enterprise-subsidy-client/blob/main/LICENSE.txt'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'edx-enterprise-subsidy-client','[''3'', ''3.12'']','https://github.com/openedx/edx-enterprise-subsidy-client',0,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xapi-db-load',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,123,0,'[]',0,'',0,0,'','',35,'["pyarrow==24.0.0", "click==8.4.1", "uvloop==0.22.1", "attrs==26.1.0", "six==1.17.0", "wcwidth==0.8.0", "propcache==0.5.2", "urwid==4.0.2", "clickhouse-connect[async]==1.1.1", "numpy==2.4.6", "python-dateutil==2.9.0.post0", "charset-normalizer==3.4.7", "idna==3.18", "aiosignal==1.4.0", "aiohappyeyeballs==2.6.2", "frozenlist==1.8.0", "smart-open[s3]==7.6.1", "pandas==3.0.3", "multidict==6.7.1", "jmespath==1.1.0", "botocore==1.43.24", "chdb-core==26.3.0", "s3transfer==0.18.0", "urllib3==2.7.0", "requests==2.34.2", "yarl==1.24.2", "boto3==1.43.24", "aiohttp==3.14.1", "certifi==2026.5.20", "pyyaml==6.0.3", "lz4==4.4.5", "chdb==4.1.8", "zstandard==0.25.0", "typing-extensions==4.15.0", "wrapt==2.2.1"]',123,'["packaging==26.2", "virtualenv==21.4.2", "python-slugify==8.0.4", "isort==8.0.1", "coverage[toml]==7.14.1", "uvloop==0.22.1", "jaraco-functools==4.5.0", "sphinx-book-theme==1.2.0", "urwid==4.0.2", "clickhouse-connect[async]==1.1.1", "click-log==0.4.0", "python-dateutil==2.9.0.post0", "docutils==0.23", "python-discovery==1.4.0", "wheel==0.47.0", "cachetools==7.1.4", "aiohappyeyeballs==2.6.2", "filelock==3.29.1", "colorama==0.4.6", "diff-cover==10.3.0", "botocore==1.43.24", "s3transfer==0.18.0", "pycparser==3.0", "keyring==25.7.0", "boto3==1.43.24", "more-itertools==11.1.0", "jeepney==0.9.0", "accessible-pygments==0.0.5", "pylint-django==2.7.0", "pycodestyle==2.14.0", "zstandard==0.25.0", "pydata-sphinx-theme==0.16.1", "ast-serialize==0.5.0", "pylint-plugin-utils==0.9.0", "wrapt==2.2.1", "yarl==1.24.2", "roman-numerals==4.1.0", "attrs==26.1.0", "imagesize==2.0.0", "librt==0.11.0", "mypy-extensions==1.1.0", "markupsafe==3.0.3", "soupsieve==2.8.4", "idna==3.18", "markdown-it-py==4.2.0", "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-applehelp==2.0.0", "code-annotations==3.0.0", "distlib==0.4.1", "frozenlist==1.8.0", "pip-tools==7.5.3", "requests-toolbelt==1.0.0", "text-unidecode==1.3", "smart-open[s3]==7.6.1", "multidict==6.7.1", "readme-renderer==44.0", "mdurl==0.1.2", "urllib3==2.7.0", "pyproject-api==1.10.1", "pytest-cov==7.1.0", "babel==2.18.0", "dill==0.4.1", "chdb==4.1.8", "sphinx==9.1.0", "typing-extensions==4.15.0", "jaraco-classes==3.4.0", "alabaster==1.0.0", "pathspec==1.1.1", "id==1.6.1", "wcwidth==0.8.0", "sphinxcontrib-jsmath==1.0.1", "nh3==0.3.5", "propcache==0.5.2", "cryptography==48.0.0", "platformdirs==4.10.0", "numpy==2.4.6", "pip==26.1.2", "tomlkit==0.15.0", "charset-normalizer==3.4.7", "build==1.5.0", "aiosignal==1.4.0", "pytest==9.0.3", "pandas==3.0.3", "requests==2.34.2", "setuptools==82.0.1", "sphinxcontrib-htmlhelp==2.1.0", "certifi==2026.5.20", "astroid==4.0.4", "lz4==4.4.5", "iniconfig==2.3.0", "twine==6.2.0", "pydocstyle==6.3.0", "tomli-w==1.2.0", "rich==15.0.0", "pyarrow==24.0.0", "click==8.4.1", "pyproject-hooks==1.2.0", "stevedore==5.8.0", "chardet==7.4.3", "six==1.17.0", "pylint-celery==0.3", "pygments==2.20.0", "pylint==4.0.5", "beautifulsoup4==4.15.0", "tox==4.55.1", "cffi==2.0.0", "pytest-asyncio==1.4.0", "jinja2==3.1.6", "docutils==0.22.4", "jmespath==1.1.0", "pluggy==1.6.0", "chdb-core==26.3.0", "secretstorage==3.5.0", "snowballstemmer==3.1.1", "edx-lint==6.1.0", "mccabe==0.7.0", "rfc3986==2.0.0", "aiohttp==3.14.1", "pyyaml==6.0.3", "sphinxcontrib-devhelp==2.0.0", "jaraco-context==6.1.2", "mypy==2.1.0", "sphinxcontrib-serializinghtml==2.0.0"]',2,'["pylint-django", "code-annotations"]',2,'["pylint-django", "code-annotations"]',1,'["code-annotations"]',0,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,8,'{"total_duration": "1 minutes 12 seconds", "checks": [{"name": "tests (3.12)", "duration": "1 minutes 12 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 33 seconds"}]}','Other','2022-11-21 15:37:46','main','',5926,6,1,0,0,0,0,0,0,'2026-06-08 06:49:58','GNU AGPLv3',0,1,0,0,0,0,3027,212088,0,1,1,0,0,1,0,0,'','openedx',0,'[''http://ralph.tutor-nightly-local.orb.local/xAPI/statements: HTTPConnectionPool(host=\''ralph.tutor-nightly-local.orb.local\'', port=80): Max retries exceeded with url: /xAPI/statements (Caused by NameResolutionError("HTTPConnection(host=\''ralph.tutor-nightly-local.orb.local\'', port=80): Failed to resolve \''ralph.tutor-nightly-local.orb.local\'' ([Errno -3] Temporary failure in name resolution)"))'', ''https://openedx-aspects-loadtest.s3.amazonaws.com/logs/large_test/: 403'', ''https://docs.openedx.org/projects/xapi-db-load: 404'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/xapi-db-load: 404'']',1,'[''https://github.com/openedx/xapi-db-load/issues'', ''https://vector.dev'', ''https://pypi.org/project/smart-open/'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,1,'{ + "Code": "https://github.com/openedx/xapi-db-load", + "Issue tracker": "https://github.com/openedx/xapi-db-load/issues", + }',0,'xapi-db-load','[''3.12'']','https://github.com/openedx/xapi-db-load',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-k8s-harmony',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,19,'{"total_duration": "18648 minutes 56 seconds", "checks": [{"name": "release", "duration": "0 minutes 7 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}]}','Other','2022-11-25 18:03:47','main','A Prototype Helm Chart for deploying multiple Open edX instances (via Tutor) onto a cluster.',1791,19,1,0,0,0,0,0,0,'2026-06-03 23:51:30','GNU AGPLv3',16,0,0,0,0,0,1262,12486,1535,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/aws/karpenter/blob/main/website/content/en/docs/upgrade-guide.md: 404'', ''https://XYZ.eks.amazonaws.com: HTTPSConnectionPool(host=\''xyz.eks.amazonaws.com\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''xyz.eks.amazonaws.com\'', port=443): Failed to resolve \''xyz.eks.amazonaws.com\'' ([Errno -2] Name or service not known)"))'', ''https://karpenter.sh/docs/concepts/provisioners/: 404'', ''https://karpenter.sh/docs/concepts/node-templates/: 404'', ''https://ms-yourinstanceid.meilisearch.io: HTTPSConnectionPool(host=\''ms-yourinstanceid.meilisearch.io\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''ms-yourinstanceid.meilisearch.io\'', port=443): Failed to resolve \''ms-yourinstanceid.meilisearch.io\'' ([Errno -2] Name or service not known)"))'', ''http://10.1.2.3: HTTPConnectionPool(host=\''10.1.2.3\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''10.1.2.3\'', port=80): Failed to establish a new connection: [Errno 113] No route to host"))'', ''https://meilisearch: HTTPSConnectionPool(host=\''meilisearch\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''meilisearch\'', port=443): Failed to resolve \''meilisearch\'' ([Errno -3] Temporary failure in name resolution)"))'']',0,'[''https://www.openedx.org'', ''https://docs.tutor.overhang.io/'', ''https://kubernetes.github.io/ingress-nginx/'', ''https://traefik.io/traefik/'', ''https://cert-manager.io/'', ''https://github.com/prometheus-community/helm-charts'', ''https://grove.opencraft.com/'', ''https://github.com/eduNEXT/tutor-contrib-pod-autoscaling'', ''https://cert-manager.io/docs/installation/upgrading/'', ''https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/'', ''https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler'', ''https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler'', ''https://karpenter.sh/'', ''https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/'', ''https://doc.traefik.io/traefik/migrate/nginx-to-traefik/'', ''https://helm.sh/'', ''https://openedx.github.io/openedx-k8s-harmony'', ''https://github.com/cert-manager/cert-manager/releases/download/v1.10.1/cert-manager.crds.yaml'', ''https://minikube.sigs.k8s.io/docs/start/'', ''https://github.com/openedx/openedx-k8s-harmony.git'', ''https://www.meilisearch.com/cloud'', ''https://www.meilisearch.com/docs/learn/self_hosted/getting_started_with_self_hosted_meilisearch'']',1,1,0,0,'','',1,'2026-04-04','2024-11-07','9',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xqueue',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,59,0,'[]',0,'',0,0,'','',57,'["django-waffle==5.0.0", "pytest-cov==7.1.0", "requests==2.33.1", "filelock==3.25.2", "packaging==26.0", "pluggy==1.6.0", "django==5.2.13", "s3transfer==0.16.0", "cachetools==7.0.5", "click==8.3.2", "pip-tools==7.5.3", "botocore==1.42.84", "pycodestyle==2.14.0", "coverage[toml]==7.13.5", "sqlparse==0.5.5", "tomli-w==1.2.0", "pyproject-hooks==1.2.0", "urllib3==2.6.3", "python-memcached==1.62", "gunicorn==25.3.0", "virtualenv==21.2.0", "django-crum==0.7.9", "build==1.4.2", "python-dateutil==2.9.0.post0", "wheel==0.46.3", "django-storages==1.14.6", "mysqlclient==2.2.8", "pytest==9.0.2", "six==1.17.0", "boto3==1.42.84", "charset-normalizer==3.4.7", "colorama==0.4.6", "tox==4.52.0", "pywatchman==3.0.0 ; \"linux\" in sys_platform", "asgiref==3.11.1", "cffi==2.0.0", "jmespath==1.1.0", "isort==8.0.1", "platformdirs==4.9.4", "certifi==2026.2.25", "pytest-django==4.12.0", "distlib==0.4.0", "edx-django-release-util==1.5.0", "idna==3.11", "pycparser==3.0", "path==17.1.1", "pyproject-api==1.10.0", "psutil==7.2.2", "stevedore==5.7.0", "pynacl==1.6.2", "pyyaml==6.0.3", "python-discovery==1.2.1", "newrelic==12.1.0", "backoff==2.2.1", "iniconfig==2.3.0", "pygments==2.20.0", "edx-django-utils==8.0.1"]',59,'["django-waffle==5.0.0", "pytest-cov==7.1.0", "requests==2.33.1", "filelock==3.25.2", "packaging==26.0", "pluggy==1.6.0", "django==5.2.13", "s3transfer==0.16.0", "cachetools==7.0.5", "click==8.3.2", "pip-tools==7.5.3", "botocore==1.42.84", "pycodestyle==2.14.0", "coverage[toml]==7.13.5", "sqlparse==0.5.5", "tomli-w==1.2.0", "pyproject-hooks==1.2.0", "urllib3==2.6.3", "python-memcached==1.62", "gunicorn==25.3.0", "virtualenv==21.2.0", "django-crum==0.7.9", "build==1.4.2", "python-dateutil==2.9.0.post0", "wheel==0.46.3", "django-storages==1.14.6", "mysqlclient==2.2.8", "pytest==9.0.2", "six==1.17.0", "boto3==1.42.84", "charset-normalizer==3.4.7", "colorama==0.4.6", "tox==4.52.0", "pywatchman==3.0.0 ; \"linux\" in sys_platform", "pip==26.0.1", "setuptools==82.0.1", "asgiref==3.11.1", "cffi==2.0.0", "jmespath==1.1.0", "isort==8.0.1", "platformdirs==4.9.4", "certifi==2026.2.25", "pytest-django==4.12.0", "distlib==0.4.0", "edx-django-release-util==1.5.0", "idna==3.11", "pycparser==3.0", "path==17.1.1", "pyproject-api==1.10.0", "psutil==7.2.2", "stevedore==5.7.0", "pynacl==1.6.2", "pyyaml==6.0.3", "python-discovery==1.2.1", "newrelic==12.1.0", "backoff==2.2.1", "iniconfig==2.3.0", "pygments==2.20.0", "edx-django-utils==8.0.1"]',5,'["django-waffle", "edx-django-release-util", "pytest-django", "django-storages", "edx-django-utils"]',7,'["django-crum", "django-waffle", "newrelic", "edx-django-release-util", "pytest-django", "django-storages", "edx-django-utils"]',3,'["django-waffle", "edx-django-release-util", "edx-django-utils"]',0,NULL,1,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0,1,1,1,77,'{"total_duration": "74885 minutes 1 seconds", "checks": [{"name": "check migration for MySql8 (ubuntu-latest, 3.12)", "duration": "3 minutes 49 seconds"}, {"name": "build (3.12, django52, mysql80)", "duration": "1 minutes 10 seconds"}, {"name": "build (3.12, quality, mysql80)", "duration": "1 minutes 4 seconds"}, {"name": "build (3.12, django42, mysql80)", "duration": "0 minutes 58 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)", "duration": "0 minutes 17 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)", "duration": "0 minutes 14 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)", "duration": "0 minutes 13 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements (3.8)", "duration": "0 minutes 13 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2012-08-09 14:43:31','master','XQueue defines an interface for the LMS to communicate with external grader services.',906,101,1,0,0,0,0,0,0,'2026-05-15 04:43:52','GNU AGPLv3',5,1,0,0,51,0,3766,143881,297,1,1,0,0,1,0,0,'','openedx',2,'[''https://open.edx.org/getting-help: 403'']',1,'[''https://github.com/openedx/public-engineering/issues/286'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,NULL,'[]',NULL,1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-enterprise',NULL,NULL,NULL,1,'2026-06-08',1,1,0,1,255,0,'[]',0,'{}',2,10,'{"css-loader": "^0.28.7", "extract-text-webpack-plugin": "^3.0.0", "jasmine-ajax": "^3.1.1", "jasmine-jquery": "^2.1.1", "jquery": "^2.2.4", "jshint": "^2.9.5", "sass-loader": "^7.2.0", "sass": "^1.22.10", "style-loader": "^0.18.2", "webpack": "^3.12.0"}','{"@edx/brand": "npm:@edx/brand-edx.org@^1.3.0", "@openedx/paragon": "^21.5.7"}',206,'["lxml[html-clean]==5.3.2", "google-api-core[grpc]==2.30.3", "pyasn1-modules==0.4.2", "httpcore==1.0.9", "typing-extensions==4.15.0", "django-model-utils==5.0.0", "googleapis-common-protos==1.75.0", "httpx[http2]==0.28.1", "tqdm==4.67.3", "python-discovery==1.3.0", "urllib3==2.7.0", "pynacl==1.6.2", "edx-ace==1.15.0", "pytest==9.0.3", "simplejson==4.1.1", "edx-lint==6.1.0", "tincan==1.0.0", "path==16.11.0", "pylint-celery==0.3", "doc8==2.0.0", "fastavro==1.12.2", "python3-saml==1.16.0", "inflection==0.5.1", "bleach==6.3.0", "pytest-cov==7.1.0", "attrs==26.1.0", "google-cloud-core==2.6.0", "rules==3.5", "h2==4.3.0", "colorama==0.4.6", "defusedxml==0.7.1", "django-waffle==5.0.0", "vine==5.1.0", "click-plugins==1.1.1.2", "openedx-atlas==0.7.0", "google-cloud-storage==3.10.1", "model-bakery==1.23.4", "pytest-django==4.12.0", "mccabe==0.7.0", "sphinx-book-theme==1.2.0", "faker==40.15.0", "edx-rest-api-client==7.0.0", "djangorestframework==3.17.1", "imagesize==2.0.0", "factory-boy==3.3.3", "django-mock-queries==2.3.0", "pluggy==1.6.0", "ddt==1.3.1", "virtualenv==21.3.1", "click-didyoumean==0.3.1", "psutil==7.2.2", "tox==4.53.1", "cachetools==7.1.1", "distlib==0.4.0", "google-resumable-media==2.9.0", "pycparser==3.0", "pylint-django==2.7.0", "celery==5.6.3", "tomli-w==1.2.0", "anyio==4.13.0", "sphinxcontrib-applehelp==2.0.0", "click-repl==0.3.0", "google-auth==2.52.0", "amqp==5.3.1", "django-config-models==3.0.0", "edx-api-doc-tools==3.0.0", "nh3==0.3.5", "snowballstemmer==3.0.1", "pymongo==4.4.0", "django-oauth-toolkit==1.7.1", "google-crc32c==1.8.0", "pyproject-hooks==1.2.0", "edx-opaque-keys[django]==4.0.0", "accessible-pygments==0.0.5", "hyperframe==6.1.0", "django-filter==25.2", "click==8.3.3", "pyjwt[crypto]==2.12.1", "pylint==3.3.9", "polib==1.2.0", "python-ipware==3.0.0", "edx-rbac==3.0.0", "isort==6.1.0", "pyasn1==0.6.3", "pyyaml==6.0.3", "python3-openid==3.2.0 ; python_version >= \"3\"", "jwcrypto==1.5.7", "slumber==0.7.1", "alabaster==1.0.0", "sailthru-client==2.2.3", "sqlparse==0.5.5", "unicodecsv==0.14.1", "edx-django-utils==8.0.1", "certifi==2026.4.22", "kombu==5.6.2", "google-cloud-firestore==2.27.0", "cffi==2.0.0", "hpack==4.1.0", "social-auth-core==4.9.1", "openedx-filters==3.3.0", "freezegun==1.5.5", "restructuredtext-lint==2.0.2", "wheel==0.47.0", "pyproject-api==1.10.0", "openedx-events==11.2.0", "markupsafe==3.0.3", "soupsieve==2.8.3", "wcwidth==0.7.0", "xmlsec==1.3.14", "sphinxcontrib-htmlhelp==2.1.0", "build==1.5.0", "django-fernet-fields-v2==0.9", "dnspython==2.8.0", "requests-toolbelt==1.0.0", "jsondiff==2.2.1", "drf-jwt==1.19.2", "click-log==0.4.0", "jsonfield==3.2.0", "twine==1.11.0", "idna==3.13", "coverage[toml]==7.14.0", "cryptography==48.0.0", "diff-cover==10.2.0", "text-unidecode==1.3", "semantic-version==2.10.0", "code-annotations==3.0.0", "oauthlib==3.3.1", "tzlocal==5.3.1", "edx-ccx-keys==2.0.2", "django-push-notifications==3.3.0", "pip-tools==7.5.3", "protobuf==6.33.6", "dill==0.4.1", "roman-numerals-py==4.1.0", "six==1.17.0", "aniso8601==10.0.1", "path-py==12.5.0", "requests==2.33.1", "tomlkit==0.15.0", "sphinx==8.2.3", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-qthelp==2.0.0", "asgiref==3.11.1", "cachecontrol==0.14.4", "webencodings==0.5.1", "python-dateutil==2.9.0.post0", "astroid==3.3.11", "firebase-admin==7.4.0", "django-crum==0.7.9", "grpcio-status==1.80.0", "responses==0.26.0", "roman-numerals==4.1.0", "filelock==3.29.0", "pygments==2.20.0", "edx-drf-extensions==10.6.0", "django-ipware==7.0.1", "iniconfig==2.3.0", "h11==0.16.0", "pgpy==0.6.0", "django-simple-history==3.11.0", "requests-oauthlib==2.0.0", "beautifulsoup4==4.14.3", "pydocstyle==6.3.0", "social-auth-app-django==5.4.1", "grpcio==1.80.0", "sphinxcontrib-serializinghtml==2.0.0", "prompt-toolkit==3.0.52", "drf-yasg==1.21.15", "pylint-plugin-utils==0.9.0", "pkginfo==1.12.1.2", "testfixtures==11.0.0", "django==5.2.14", "bcrypt==5.0.0", "django-countries==8.2.0", "pytz==2026.2", "babel==2.18.0", "proto-plus==1.28.0", "jinja2==3.1.6", "stevedore==5.7.0", "packaging==26.2", "pycodestyle==2.14.0", "isodate==0.7.2", "django-object-actions==5.0.1", "djangorestframework-xml==2.0.0", "paramiko==4.0.0", "docutils==0.21.2", "python-slugify==8.0.4", "billiard==4.2.4", "charset-normalizer==3.4.7", "sphinxcontrib-devhelp==2.0.0", "chardet==7.4.3", "django-cache-memoize==0.2.1", "django-multi-email-field==0.8.0", "lxml-html-clean==0.4.4", "pydata-sphinx-theme==0.16.1", "invoke==3.0.3", "edx-i18n-tools==2.0.0", "tzdata==2026.2", "edx-toggles==6.0.0", "platformdirs==4.9.6", "edx-braze-client==1.1.3", "mock==5.2.0", "pillow==12.2.0", "uritemplate==4.2.0", "readme-renderer==44.0", "msgpack==1.1.2"]',243,'["jaraco-classes==3.4.0", "annotated-doc==0.0.4", "lxml[html-clean]==5.3.2", "google-api-core[grpc]==2.30.3", "pyasn1-modules==0.4.2", "httpcore==1.0.9", "typing-extensions==4.15.0", "django-model-utils==5.0.0", "googleapis-common-protos==1.75.0", "httpx[http2]==0.28.1", "tqdm==4.67.3", "python-discovery==1.3.0", "urllib3==2.7.0", "mdurl==0.1.2", "pynacl==1.6.2", "trio==0.33.0", "edx-ace==1.15.0", "pytest==9.0.3", "simplejson==4.1.1", "glob2==0.7", "edx-lint==6.1.0", "portend==3.2.1", "tempora==5.9.0", "tincan==1.0.0", "path==16.11.0", "pylint-celery==0.3", "doc8==2.0.0", "fastavro==1.12.2", "python3-saml==1.16.0", "inflection==0.5.1", "bleach==6.3.0", "pytest-cov==7.1.0", "attrs==26.1.0", "google-cloud-core==2.6.0", "rules==3.5", "h2==4.3.0", "typer-slim==0.24.0", "colorama==0.4.6", "defusedxml==0.7.1", "django-waffle==5.0.0", "vine==5.1.0", "click-plugins==1.1.1.2", "openedx-atlas==0.7.0", "more-itertools==11.0.2", "google-cloud-storage==3.10.1", "model-bakery==1.23.4", "pytest-django==4.12.0", "mccabe==0.7.0", "sphinx-book-theme==1.2.0", "jaraco-text==4.2.0", "trio-websocket==0.12.2", "faker==40.15.0", "edx-rest-api-client==7.0.0", "djangorestframework==3.17.1", "imagesize==2.0.0", "factory-boy==3.3.3", "django-mock-queries==2.3.0", "pluggy==1.6.0", "ddt==1.3.1", "lxml==5.3.2", "virtualenv==21.3.1", "click-didyoumean==0.3.1", "psutil==7.2.2", "tox==4.53.1", "wsproto==1.3.2", "selenium==4.43.0", "cachetools==7.1.1", "distlib==0.4.0", "google-resumable-media==2.9.0", "pycparser==3.0", "pylint-django==2.7.0", "celery==5.6.3", "tomli-w==1.2.0", "anyio==4.13.0", "sphinxcontrib-applehelp==2.0.0", "sniffio==1.3.1", "click-repl==0.3.0", "google-auth==2.52.0", "jaraco-collections==5.2.1", "amqp==5.3.1", "django-config-models==3.0.0", "edx-api-doc-tools==3.0.0", "nh3==0.3.5", "snowballstemmer==3.0.1", "pymongo==4.4.0", "django-oauth-toolkit==1.7.1", "google-crc32c==1.8.0", "pyproject-hooks==1.2.0", "edx-opaque-keys[django]==4.0.0", "accessible-pygments==0.0.5", "hyperframe==6.1.0", "django-filter==25.2", "click==8.3.3", "pyjwt[crypto]==2.12.1", "pylint==3.3.9", "polib==1.2.0", "python-ipware==3.0.0", "edx-rbac==3.0.0", "isort==6.1.0", "setuptools==82.0.1", "pyasn1==0.6.3", "pyyaml==6.0.3", "python3-openid==3.2.0 ; python_version >= \"3\"", "jwcrypto==1.5.7", "slumber==0.7.1", "alabaster==1.0.0", "sailthru-client==2.2.3", "sqlparse==0.5.5", "unicodecsv==0.14.1", "edx-django-utils==8.0.1", "certifi==2026.4.22", "ordereddict==1.1", "kombu==5.6.2", "google-cloud-firestore==2.27.0", "cffi==2.0.0", "hpack==4.1.0", "social-auth-core==4.9.1", "cherrypy==18.10.0", "openedx-filters==3.3.0", "freezegun==1.5.5", "restructuredtext-lint==2.0.2", "wheel==0.47.0", "cheroot==11.1.2", "pyproject-api==1.10.0", "openedx-events==11.2.0", "markupsafe==3.0.3", "soupsieve==2.8.3", "wcwidth==0.7.0", "xmlsec==1.3.14", "sphinxcontrib-htmlhelp==2.1.0", "typer==0.25.1", "build==1.5.0", "django-fernet-fields-v2==0.9", "dnspython==2.8.0", "requests-toolbelt==1.0.0", "jsondiff==2.2.1", "drf-jwt==1.19.2", "click-log==0.4.0", "jsonfield==3.2.0", "twine==1.11.0", "urllib3[socks]==2.7.0", "idna==3.13", "coverage[toml]==7.14.0", "cryptography==48.0.0", "diff-cover==10.2.0", "text-unidecode==1.3", "semantic-version==2.10.0", "code-annotations==3.0.0", "oauthlib==3.3.1", "tzlocal==5.3.1", "jaraco-functools==4.4.0", "edx-ccx-keys==2.0.2", "django-push-notifications==3.3.0", "pip==26.1.1", "shellingham==1.5.4", "pip-tools==7.5.3", "protobuf==6.33.6", "jaraco-context==6.1.2", "jasmine-core==3.99.0", "dill==0.4.1", "roman-numerals-py==4.1.0", "six==1.17.0", "aniso8601==10.0.1", "path-py==12.5.0", "requests==2.33.1", "tomlkit==0.15.0", "sphinx==8.2.3", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-qthelp==2.0.0", "asgiref==3.11.1", "cachecontrol==0.14.4", "webencodings==0.5.1", "pysocks==1.7.1", "python-dateutil==2.9.0.post0", "astroid==3.3.11", "firebase-admin==7.4.0", "django-crum==0.7.9", "grpcio-status==1.80.0", "responses==0.26.0", "roman-numerals==4.1.0", "filelock==3.29.0", "pygments==2.20.0", "edx-drf-extensions==10.6.0", "django-ipware==7.0.1", "iniconfig==2.3.0", "h11==0.16.0", "outcome==1.3.0.post0", "pgpy==0.6.0", "django-simple-history==3.11.0", "idna==3.14", "requests-oauthlib==2.0.0", "beautifulsoup4==4.14.3", "pydocstyle==6.3.0", "social-auth-app-django==5.4.1", "grpcio==1.80.0", "sphinxcontrib-serializinghtml==2.0.0", "prompt-toolkit==3.0.52", "drf-yasg==1.21.15", "pylint-plugin-utils==0.9.0", "pkginfo==1.12.1.2", "testfixtures==11.0.0", "markdown-it-py==4.2.0", "django==5.2.14", "bcrypt==5.0.0", "django-countries==8.2.0", "pytz==2026.2", "babel==2.18.0", "proto-plus==1.28.0", "jinja2==3.1.6", "stevedore==5.7.0", "packaging==26.2", "pycodestyle==2.14.0", "isodate==0.7.2", "django-object-actions==5.0.1", "djangorestframework-xml==2.0.0", "paramiko==4.0.0", "docutils==0.21.2", "python-slugify==8.0.4", "billiard==4.2.4", "charset-normalizer==3.4.7", "sphinxcontrib-devhelp==2.0.0", "chardet==7.4.3", "django-cache-memoize==0.2.1", "django-multi-email-field==0.8.0", "lxml-html-clean==0.4.4", "pydata-sphinx-theme==0.16.1", "invoke==3.0.3", "jasmine==3.99.0", "websocket-client==1.9.0", "edx-i18n-tools==2.0.0", "tzdata==2026.2", "edx-toggles==6.0.0", "sortedcontainers==2.4.0", "zc-lockfile==4.0", "platformdirs==4.9.6", "edx-braze-client==1.1.3", "mock==5.2.0", "rich==15.0.0", "pillow==12.2.0", "uritemplate==4.2.0", "jinja2==2.11.3", "readme-renderer==44.0", "msgpack==1.1.2"]',22,'["code-annotations", "django-multi-email-field", "edx-api-doc-tools", "pylint-django", "edx-ace", "factory-boy", "pytest-django", "django-waffle", "social-auth-app-django", "django-countries", "django-object-actions", "django-cache-memoize", "edx-drf-extensions", "edx-toggles", "edx-rest-api-client", "edx-django-utils", "edx-rbac", "edx-i18n-tools", "djangorestframework", "django-config-models", "django-oauth-toolkit", "django-filter"]',32,'["code-annotations", "django-multi-email-field", "edx-api-doc-tools", "django-ipware", "django-crum", "pylint-django", "edx-ace", "factory-boy", "drf-jwt", "pytest-django", "django-waffle", "drf-yasg", "jsonfield", "social-auth-app-django", "djangorestframework-xml", "django-countries", "django-model-utils", "django-object-actions", "django-cache-memoize", "edx-drf-extensions", "edx-toggles", "edx-rest-api-client", "django-simple-history", "rules", "edx-django-utils", "edx-rbac", "edx-i18n-tools", "jasmine-core", "djangorestframework", "django-config-models", "django-oauth-toolkit", "django-filter"]',16,'["django-countries", "code-annotations", "edx-django-utils", "django-cache-memoize", "edx-ace", "edx-drf-extensions", "edx-toggles", "edx-rbac", "django-multi-email-field", "edx-api-doc-tools", "django-waffle", "edx-rest-api-client", "edx-i18n-tools", "django-config-models", "social-auth-app-django", "django-filter"]',1,NULL,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,350,'{"total_duration": "799 minutes 35 seconds", "checks": [{"name": "run_tests (3.12, django52)", "duration": "13 minutes 42 seconds"}, {"name": "run_tests (3.12, quality)", "duration": "3 minutes 12 seconds"}, {"name": "check migrations (ubuntu-latest, 3.12)", "duration": "2 minutes 22 seconds"}, {"name": "run_tests (3.12, docs)", "duration": "2 minutes 8 seconds"}, {"name": "run_tests (3.12, pii_check)", "duration": "1 minutes 0 seconds"}, {"name": "Dependabot", "duration": "0 minutes 44 seconds"}, {"name": "Dependabot", "duration": "0 minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 7 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2016-10-12 13:48:42','master','',15891,71,1,0,0,0,0,0,0,'2026-06-08 04:59:26','GNU AGPLv3',86,1,0,2741,95485,36447,10718,5772901,604,1,1,0,0,1,0,0,'','openedx',5,'[''https://github.com/openedx/edx-enterprise/blob/master/LICENSE.txt: 404'', ''https://github.com/openedx/edx-enterprise/blob/master/.github/PULL_REQUEST_TEMPLATE_TEMPLATE.md: 404'', ''https://openedx.org/getting-help: 403'']',1,'[''https://img.shields.io/pypi/v/edx-enterprise.svg'', ''https://pypi.python.org/pypi/edx-enterprise/'', ''http://codecov.io/github/edx/edx-enterprise/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-enterprise?branch=master'', ''https://readthedocs.org/projects/open-edx-enterprise-service-documentation/badge/?version=latest'', ''http://open-edx-enterprise-service-documentation.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/edx-enterprise.svg'', ''https://img.shields.io/github/license/edx/edx-enterprise.svg'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,1,'.readthedocs.yaml','2',1,NULL,NULL,'0',0,1,0,1,NULL,0,'edx-enterprise','[''3'', ''3.12'']','https://github.com/openedx/edx-enterprise',1,1,1,0,0,0,0,0,0,'[]','[]','[''curl'', ''build-essential'', ''python3.12-dev'', ''install'', ''locales'', ''python3.12-venv'', ''gcc'', ''default-libmysqlclient-dev'', ''git'', ''libssl-dev'', ''language-pack-en'', ''python3.12'', ''pkg-config'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/cc2olx',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,67,0,'[]',0,'',0,0,'','',11,'["django==5.2.13", "charset-normalizer==3.4.7", "youtube-dl==2021.12.17", "urllib3==2.6.3", "requests==2.33.1", "asgiref==3.11.1", "certifi==2026.2.25", "attrs==26.1.0", "sqlparse==0.5.5", "idna==3.11", "lxml==6.0.2"]',67,'["nh3==0.3.4", "django==5.2.13", "mypy-extensions==1.1.0", "mdurl==0.1.2", "pygments==2.20.0", "urllib3==2.6.3", "asgiref==3.11.1", "pyproject-api==1.10.0", "sqlparse==0.5.5", "idna==3.11", "jaraco-context==6.1.2", "pytest-mock==3.15.1", "pytest-cov==7.1.0", "cryptography==46.0.6", "jeepney==0.9.0", "pycodestyle==2.14.0", "rich==14.3.3", "pyflakes==3.4.0", "charset-normalizer==3.4.7", "build==1.4.2", "rfc3986==2.0.0", "docutils==0.22.4", "pip-tools==7.5.3", "filelock==3.25.2", "platformdirs==4.9.4", "pyproject-hooks==1.2.0", "pip==26.0.1", "iniconfig==2.3.0", "pytest-django==4.12.0", "requests-toolbelt==1.0.0", "pathspec==1.0.4", "pytokens==0.4.1", "black==26.3.1", "colorama==0.4.6", "requests==2.33.1", "mccabe==0.7.0", "tomli-w==1.2.0", "keyring==25.7.0", "attrs==26.1.0", "secretstorage==3.5.0", "jaraco-functools==4.4.0", "coverage[toml]==7.13.5", "tox==4.52.0", "flake8==7.3.0", "markdown-it-py==4.0.0", "id==1.6.1", "readme-renderer==44.0", "virtualenv==21.2.0", "jaraco-classes==3.4.0", "more-itertools==11.0.1", "pycparser==3.0", "setuptools==82.0.1", "packaging==26.0", "cffi==2.0.0", "pluggy==1.6.0", "youtube-dl==2021.12.17", "cachetools==7.0.5", "python-discovery==1.2.1", "distlib==0.4.0", "wheel==0.46.3", "certifi==2026.2.25", "pytest==9.0.2", "xmlformatter==0.2.8", "twine==6.2.0", "bump2version==1.0.1", "click==8.3.2", "lxml==6.0.2"]',1,'["pytest-django"]',1,'["pytest-django"]',0,'[]',0,NULL,1,1,1,0,0,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,56,'{"total_duration": "4431 minutes 26 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 11 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 45 seconds"}, {"name": "Dependabot", "duration": "0 minutes 36 seconds"}, {"name": "Dependabot", "duration": "0 minutes 36 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 32 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, formatting)", "duration": "0 minutes 30 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2020-06-29 20:14:54','master','A library to convert Common Cartridge Courses to OLX.',43122,17,1,0,0,0,0,0,0,'2026-06-03 02:18:58','GNU AGPLv3',5,1,0,111,7120,0,3811,268868,0,1,0,0,0,1,0,0,'','openedx',2,'[''https://github.com/openedx/cc2olx/actions?query=workflow%3A%22Python+CI%22: 504'']',0,'[''https://github.com/openedx/cc2olx/workflows/Python%20CI/badge.svg?branch=master'', ''https://www.imsglobal.org/activity/common-cartridge'', ''https://github.com/raccoongang/xblock-pdf'', ''https://github.com/openedx/xblock-google-drive'', ''https://s3.amazonaws.com/public-imscc/c075c6df1f674a7b9d9192307e812f74.imscc'', ''https://lor.instructure.com/resources/c075c6df1f674a7b9d9192307e812f74'', ''https://s3.amazonaws.com/public-imscc/faa3332ffd834070ad81d97bdb236649.imscc'', ''https://lor.instructure.com/resources/faa3332ffd834070ad81d97bdb236649'', ''https://s3.amazonaws.com/public-imscc/d933c048da6d4fd5a9cb552148d628cb.imscc'', ''https://lor.instructure.com/resources/d933c048da6d4fd5a9cb552148d628cb'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'cc2olx','[''3'', ''3.12'']','https://github.com/openedx/cc2olx',1,1,1,0,0,0,0,0,0,'[]','[]','[]','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-bootstrap',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,19,0,'',0,'{}',1,18,'{"@edx/browserslist-config": "^1.1.1", "@edx/stylelint-config-edx": "2.3.0", "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "0.2.6", "chroma-js": "3.2.0", "classnames": "2.5.1", "gh-pages": "6.3.0", "husky": "9.1.7", "jquery": "3.7.1", "lodash": "4.18.1", "node-sass": "9.0.0", "popper.js": "1.16.1", "prop-types": "15.8.1", "react": "17.0.2", "react-dom": "17.0.2", "react-router-dom": "6.30.3", "react-router-hash-link": "2.4.3"}','{"bootstrap": "4.6.2"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,27,'{"total_duration": "2 minutes 5 seconds", "checks": [{"name": "Release", "duration": "2 minutes 5 seconds"}, {"name": "tests", "duration": "1 minutes 57 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2017-06-23 20:12:07','master','Bootstrap theme for Open edX',9245,23,1,0,0,0,0,0,0,'2026-06-05 09:07:44','Apache License 2.0',10,1,0,0,5465,144263,0,0,0,0,0,0,0,0,0,0,'@edx/edx-bootstrap','openedx',0,'[''https://badge.fury.io/js/%40edx%2Fedx-bootstrap: 403'']',0,'[''https://badge.fury.io/js/%40edx%2Fedx-bootstrap.svg'', ''http://getbootstrap.com'', ''https://github.com/openedx/edx-bootstrap.git'', ''https://github.com/nvm-sh/nvm'', ''https://openedx.slack.com/messages/C0EUBSV7D'', ''https://openedx.slack.com/messages/C02BMP2RD5Y'', ''https://github.com/openedx/edx-bootstrap/blob/master/LICENSE'', ''https://open.edx.org/wp-content/uploads/2019/01/individual-contributor-agreement.pdf'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,0,'','',1,'2026-04-06','2021-08-23','7',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/platform-plugin-aspects',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,148,0,'[]',0,'',0,0,'','',60,'["celery==5.6.3", "click-plugins==1.1.1.2", "stevedore==5.8.0", "amqp==5.3.1", "web-fragments==4.0.0", "idna==3.17", "wcwidth==0.7.0", "openedx-atlas==0.7.0", "edx-opaque-keys[django]==4.0.0", "text-unidecode==1.3", "oauthlib==3.3.1", "requests-oauthlib==2.0.0", "kombu==5.6.2", "six==1.17.0", "simplejson==4.1.1", "click==8.4.1", "pycparser==3.0", "psutil==7.2.2", "pyyaml==6.0.3", "edx-django-utils==8.0.1", "prompt-toolkit==3.0.52", "click-didyoumean==0.3.1", "mako==1.3.12", "python-slugify==8.0.4", "dnspython==2.8.0", "charset-normalizer==3.4.7", "markupsafe==3.0.3", "pytz==2026.2", "webob==1.8.9", "edx-toggles==6.0.0", "djangorestframework==3.17.1", "tzdata==2026.2", "vine==5.1.0", "xblock==6.1.0", "prison==0.2.1", "python-dateutil==2.9.0.post0", "packaging==26.2", "appdirs==1.4.4", "openedx-filters==3.4.1", "django==5.2.14", "jinja2==3.1.6", "tzlocal==5.3.1", "superset-api-client==0.6.0", "cffi==2.0.0", "code-annotations==3.0.0", "django-waffle==5.0.0", "requests==2.34.2", "billiard==4.2.4", "sqlparse==0.5.5", "lxml==6.1.1", "certifi==2026.5.20", "django-crum==0.7.9", "typing-extensions==4.15.0", "urllib3==2.7.0", "fs==2.4.16", "pymongo==4.17.0", "click-repl==0.3.0", "pynacl==1.6.2", "redis==8.0.0", "asgiref==3.11.1"]',148,'["tomlkit==0.15.0", "black==26.5.1", "pytokens==0.4.1", "filelock==3.29.0", "pycodestyle==2.14.0", "coverage[toml]==7.14.1", "pathspec==1.1.1", "edx-django-utils==8.0.1", "pyproject-hooks==1.2.0", "charset-normalizer==3.4.7", "sphinxcontrib-jsmath==1.0.1", "webob==1.8.9", "restructuredtext-lint==2.0.2", "cryptography==48.0.0", "chardet==7.4.3", "tzdata==2026.2", "pyproject-api==1.10.1", "sphinx-book-theme==1.2.0", "prison==0.2.1", "responses==0.26.1", "babel==2.18.0", "pylint-django==2.7.0", "appdirs==1.4.4", "openedx-filters==3.4.1", "pluggy==1.6.0", "sphinxcontrib-htmlhelp==2.1.0", "jinja2==3.1.6", "mdurl==0.1.2", "id==1.6.1", "accessible-pygments==0.0.5", "distlib==0.4.0", "edx-lint==6.1.0", "alabaster==1.0.0", "sphinx==9.1.0", "lxml-html-clean==0.4.5", "pylint-celery==0.3", "requests==2.34.2", "imagesize==2.0.0", "django-crum==0.7.9", "setuptools==82.0.1", "pymongo==4.17.0", "click-log==0.4.0", "readme-renderer==44.0", "pylint-plugin-utils==0.9.0", "celery==5.6.3", "stevedore==5.8.0", "virtualenv==21.4.2", "edx-opaque-keys[django]==4.0.0", "rfc3986==2.0.0", "six==1.17.0", "model-bakery==1.23.4", "mccabe==0.7.0", "click-didyoumean==0.3.1", "jaraco-functools==4.5.0", "snowballstemmer==3.1.0", "python-slugify==8.0.4", "dnspython==2.8.0", "pytz==2026.2", "edx-i18n-tools==2.0.0", "python-discovery==1.4.0", "jaraco-classes==3.4.0", "xblock==6.1.0", "iniconfig==2.3.0", "packaging==26.2", "pytest==9.0.3", "soupsieve==2.8.4", "django==5.2.14", "secretstorage==3.5.0", "platformdirs==4.10.0", "cffi==2.0.0", "typing-extensions==4.15.0", "lxml==6.1.1", "urllib3==2.7.0", "fs==2.4.16", "roman-numerals==4.1.0", "sphinxcontrib-serializinghtml==2.0.0", "path==16.16.0", "click-plugins==1.1.1.2", "web-fragments==4.0.0", "amqp==5.3.1", "sphinxcontrib-devhelp==2.0.0", "idna==3.17", "wcwidth==0.7.0", "pydocstyle==6.3.0", "text-unidecode==1.3", "oauthlib==3.3.1", "requests-oauthlib==2.0.0", "sphinxcontrib-qthelp==2.0.0", "kombu==5.6.2", "django-mock-queries==2.3.0", "simplejson==4.1.1", "click==8.4.1", "lxml[html-clean]==6.1.1", "pycparser==3.0", "twine==6.2.0", "psutil==7.2.2", "prompt-toolkit==3.0.52", "doc8==2.0.0", "rich==15.0.0", "mypy-extensions==1.1.0", "cachetools==7.1.4", "djangorestframework==3.17.1", "pytest-cov==7.1.0", "jeepney==0.9.0", "beautifulsoup4==4.14.3", "colorama==0.4.6", "polib==1.2.0", "tzlocal==5.3.1", "docutils==0.21.2", "ddt==1.7.2", "billiard==4.2.4", "build==1.5.0", "sqlparse==0.5.5", "more-itertools==11.1.0", "click-repl==0.3.0", "redis==8.0.0", "markdown-it-py==4.2.0", "keyring==25.7.0", "openedx-atlas==0.7.0", "pydata-sphinx-theme==0.16.1", "pyyaml==6.0.3", "pip==26.1.2", "wheel==0.47.0", "tox==4.55.0", "sphinxcontrib-applehelp==2.0.0", "mako==1.3.12", "dill==0.4.1", "markupsafe==3.0.3", "edx-toggles==6.0.0", "requests-toolbelt==1.0.0", "vine==5.1.0", "isort==8.0.1", "python-dateutil==2.9.0.post0", "diff-cover==10.3.0", "superset-api-client==0.6.0", "tomli-w==1.2.0", "nh3==0.3.5", "pip-tools==7.5.3", "code-annotations==3.0.0", "django-waffle==5.0.0", "certifi==2026.5.20", "pylint==4.0.5", "pytest-django==4.12.0", "pynacl==1.6.2", "pygments==2.20.0", "astroid==4.0.4", "jaraco-context==6.1.2", "asgiref==3.11.1"]',10,'["djangorestframework", "code-annotations", "pylint-django", "web-fragments", "edx-toggles", "xblock", "pytest-django", "edx-i18n-tools", "django-waffle", "edx-django-utils"]',11,'["djangorestframework", "code-annotations", "pylint-django", "web-fragments", "edx-toggles", "xblock", "pytest-django", "edx-i18n-tools", "django-waffle", "edx-django-utils", "django-crum"]',7,'["code-annotations", "web-fragments", "edx-toggles", "xblock", "edx-i18n-tools", "django-waffle", "edx-django-utils"]',0,NULL,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,14,'{"total_duration": "6457 minutes 56 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 16 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, quality)", "duration": "1 minutes 6 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django52)", "duration": "1 minutes 4 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django42)", "duration": "0 minutes 53 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, docs)", "duration": "0 minutes 52 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, pii_check)", "duration": "0 minutes 40 seconds"}, {"name": "Dependabot", "duration": "0 minutes 35 seconds"}, {"name": "Run tests & display coverage", "duration": "0 minutes 9 seconds"}, {"name": "Run tests & display coverage", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}]}','Other','2024-02-29 19:49:46','main','Aspects plugins for the Open edX LMS and Studio',3807,13,1,0,0,0,0,0,0,'2026-06-08 00:59:42','Apache License 2.0',1,1,841,0,2484,4162,5302,234888,0,1,1,0,0,1,0,0,'','openedx',1,'[''https://openedx.org/getting-help: 403'', ''https://github.com/openedx/edx-platform: 504'', ''https://www.npmjs.com/package/@superset-ui/embedded-sdk: 403'']',1,'[''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://docs.openedx.org/projects/platform-plugin-aspects'', ''https://discuss.openedx.org'', ''https://github.com/openedx/platform-plugin-aspects/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/platform-plugin-aspects'', ''https://github.com/openedx/openedx-events'', ''https://clickhouse.com'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html'', ''https://docs.openedx.org/projects/openedx-filters/en/latest/'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/backfill.html'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'platform-plugin-aspects','[''3'', ''3.12'']','https://github.com/openedx/platform-plugin-aspects',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/mockprock',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,46,0,'[]',0,'{}',1,0,'{}','{"@edx/edx-proctoring": "^4.9.0"}',0,'[]',45,'["code-annotations==2.3.0", "pylint-django==2.6.1", "jinja2==2.11.3", "setuptools==79.0.0", "pyyaml==6.0.2", "requests==2.32.3", "mccabe==0.7.0", "pip==24.2", "platformdirs==4.3.7", "werkzeug==1.0.1", "click-log==0.4.0", "pbr==6.1.1", "pylint-plugin-utils==0.8.2", "python-slugify==8.0.4", "flask==1.1.4", "pluggy==1.5.0", "pytest==8.3.5", "coverage[toml]==7.8.0", "certifi==2025.1.31", "pylint-celery==0.3", "charset-normalizer==3.4.1", "jinja2==3.1.6", "urllib3==2.4.0", "idna==3.10", "build==1.2.2.post1", "tomlkit==0.13.2", "pylint==3.3.6", "packaging==25.0", "stevedore==5.4.1", "dill==0.4.0", "click==7.1.2", "text-unidecode==1.3", "pip-tools==7.4.1", "pytest-cov==6.1.1", "markupsafe==3.0.2", "wheel==0.45.1", "astroid==3.3.9", "itsdangerous==1.1.0", "isort==6.0.1", "pyproject-hooks==1.2.0", "click==8.1.8", "edx-lint==5.6.0", "six==1.17.0", "iniconfig==2.1.0", "pyjwt==2.10.1"]',2,'["pylint-django", "code-annotations"]',2,'["pylint-django", "code-annotations"]',1,'["code-annotations"]',0,NULL,0,0,1,0,0,0,1,1,1,0,1,1,1,1,0,1,0,0,1,1,1,15,'{"total_duration": "0 minutes 4 seconds", "checks": [{"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2018-11-16 19:08:31','master','mock proctoring package',387,8,1,0,0,0,0,0,0,'2026-05-30 15:27:16','Apache License 2.0',3,0,0,0,544,1728,1928,27357,0,1,1,0,1,1,0,1,'@edx/mockprock','openedx',5,'[]',0,'[''https://github.com/openedx/edx-proctoring/'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,1,NULL,0,'mockprock','[''3'', ''3.11'', ''3.12'']',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-gradebook',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,47,0,'',0,'{}',35,12,'{"@edx/browserslist-config": "^1.1.1", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "^6.6.4", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "es-check": "^2.3.0", "fetch-mock": "^12.2.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "react-dev-utils": "^12.0.1", "react-test-renderer": "^18.3.1", "redux-mock-store": "^1.5.3"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^6.6.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.6.0", "@fortawesome/fontawesome-svg-core": "^1.2.25", "@fortawesome/free-brands-svg-icons": "^5.11.2", "@fortawesome/free-solid-svg-icons": "^5.11.2", "@fortawesome/react-fontawesome": "^0.1.5", "@openedx/frontend-plugin-framework": "^1.6.0", "@openedx/paragon": "^23.4.5", "@redux-beacon/segment": "^1.0.0", "@reduxjs/toolkit": "^1.5.1", "classnames": "^2.2.6", "core-js": "3.6.5", "email-prop-type": "^1.1.7", "font-awesome": "4.7.0", "history": "4.10.1", "prop-types": "15.8.1", "query-string": "6.13.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "^6.1.0", "react-redux": "^7.2.9", "react-router": "6.15.0", "react-router-dom": "6.15.0", "react-router-redux": "^5.0.0-alpha.9", "redux": "4.0.5", "redux-beacon": "^2.1.0", "redux-devtools-extension": "2.13.8", "redux-logger": "3.0.6", "redux-thunk": "2.3.0", "regenerator-runtime": "^0.13.7", "sass": "^1.49.0", "whatwg-fetch": "^2.0.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,60,'{"total_duration": "26620 minutes 27 seconds", "checks": [{"name": "test", "duration": "2 minutes 53 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 0 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 57 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2018-10-17 15:49:15','master','Instructor grade book tool',10198,116,1,0,0,0,0,0,0,'2026-06-08 01:04:46','GNU AGPLv3',17,1,0,0,381,559794,1890,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-gradebook','openedx',0,'[''http://apps.local.openedx.io/gradebook/course-v1: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: /gradebook/course-v1 (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://travis-ci.com/edx/frontend-app-gradebook: 415'']',0,'[''https://docs.openedx.org/en/latest/educators/how-tos/data/view_learner_grades.html'', ''https://docs.openedx.org/en/latest/educators/how-tos/data/manage_learner_grades.html'', ''https://github.com/openedx/frontend-app-gradebook.git'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://webpack.js.org/'', ''https://github.com/edx-unsupported/frontend-auth'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-gradebook/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'', ''https://api.travis-ci.com/edx/frontend-app-gradebook.svg?branch=master'', ''https://img.shields.io/codecov/c/gh/openedx/frontend-app-gradebook'', ''https://app.codecov.io/gh/openedx/frontend-app-gradebook'', ''https://img.shields.io/npm/v/@edx/frontend-app-gradebook.svg'', ''https://img.shields.io/npm/dt/@edx/frontend-app-gradebook.svg'', ''https://img.shields.io/npm/l/@edx/frontend-app-gradebook.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'', ''https://github.com/semantic-release/semantic-release'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-sdk',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,84,0,'[]',0,'',0,0,'','',41,'["webob==1.8.9", "web-fragments==4.0.0", "xblock[django]==6.1.0", "pypng==0.20220715.0", "charset-normalizer==3.4.7", "click==8.4.1", "certifi==2026.5.20", "django==5.2.14", "pyyaml==6.0.3", "jmespath==1.1.0", "mako==1.3.12", "cookiecutter==2.7.1", "text-unidecode==1.3", "asgiref==3.11.1", "jinja2==3.1.6", "markdown-it-py==4.2.0", "urllib3==2.7.0", "markupsafe==3.0.3", "lxml==6.1.1", "appdirs==1.4.4", "simplejson==4.1.1", "fs-s3fs==1.1.1", "python-slugify==8.0.4", "boto3==1.43.18", "python-dateutil==2.9.0.post0", "botocore==1.43.18", "pygments==2.20.0", "arrow==1.4.0", "lazy==1.6", "tzdata==2026.2", "s3transfer==0.18.0", "mdurl==0.1.2", "pytz==2026.2", "rich==15.0.0", "openedx-django-pyfs==4.0.0", "sqlparse==0.5.5", "fs==2.4.16", "six==1.17.0", "requests==2.34.2", "binaryornot==0.6.0", "idna==3.17"]',84,'["certifi==2026.5.20", "django==5.2.14", "ddt==1.7.2", "mako==1.3.12", "colorama==0.4.6", "dill==0.4.1", "pylint-django==2.7.0", "click-log==0.4.0", "astroid==4.0.4", "distlib==0.4.0", "stevedore==5.8.0", "python-slugify==8.0.4", "edx-lint==6.1.0", "tomlkit==0.15.0", "code-annotations==3.0.0", "setuptools==81.0.0", "cachetools==7.1.4", "acid-xblock==0.4.1", "mdurl==0.1.2", "pytz==2026.2", "pytest==9.0.3", "isort==8.0.1", "jmespath==1.1.0", "wheel==0.47.0", "mccabe==0.7.0", "asgiref==3.11.1", "jinja2==3.1.6", "pycodestyle==2.14.0", "appdirs==1.4.4", "botocore==1.43.18", "pydocstyle==6.3.0", "filelock==3.29.0", "python-discovery==1.4.0", "snowballstemmer==3.1.0", "pyproject-hooks==1.2.0", "pylint-plugin-utils==0.9.0", "coverage[toml]==7.14.1", "pip-tools==7.5.3", "pypng==0.20220715.0", "click==8.4.1", "pyyaml==6.0.3", "cookiecutter==2.7.1", "text-unidecode==1.3", "pytest-django==4.12.0", "markdown-it-py==4.2.0", "urllib3==2.7.0", "markupsafe==3.0.3", "lxml==6.1.1", "simplejson==4.1.1", "pip==26.1.1", "platformdirs==4.10.0", "virtualenv==21.4.1", "pygments==2.20.0", "pylint==4.0.5", "lazy==1.6", "iniconfig==2.3.0", "pytest-cov==7.1.0", "pytest-rerunfailures==16.3", "fs==2.4.16", "pyproject-api==1.10.1", "binaryornot==0.6.0", "tox==4.55.0", "webob==1.8.9", "web-fragments==4.0.0", "xblock[django]==6.1.0", "charset-normalizer==3.4.7", "pylint-celery==0.3", "fs-s3fs==1.1.1", "packaging==26.2", "boto3==1.43.18", "python-dateutil==2.9.0.post0", "pluggy==1.6.0", "mock==5.2.0", "arrow==1.4.0", "tzdata==2026.2", "s3transfer==0.18.0", "sqlparse==0.5.5", "rich==15.0.0", "openedx-django-pyfs==4.0.0", "build==1.5.0", "tomli-w==1.2.0", "six==1.17.0", "requests==2.34.2", "idna==3.17"]',4,'["pytest-django", "code-annotations", "web-fragments", "pylint-django"]',4,'["pytest-django", "code-annotations", "web-fragments", "pylint-django"]',2,'["code-annotations", "web-fragments"]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,35,'{"total_duration": "4908 minutes 52 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 21 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 13 seconds"}, {"name": "run_tests (3.12, quality)", "duration": "0 minutes 40 seconds"}, {"name": "run_tests (3.12, django42)", "duration": "0 minutes 38 seconds"}, {"name": "run_tests (3.12, django52)", "duration": "0 minutes 31 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}]}','Other','2014-03-06 20:34:41','master','Workbench and example xblocks',1877,104,1,0,0,0,0,0,0,'2026-06-07 00:36:57','Apache License 2.0',2,1,14419,0,8892,237928,3559,135793,0,1,1,0,0,1,0,0,'','openedx',3,'[''http://docs.seleniumhq.org/: HTTPConnectionPool(host=\''docs.seleniumhq.org\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''docs.seleniumhq.org\'', port=80): Failed to resolve \''docs.seleniumhq.org\'' ([Errno -2] Name or service not known)"))'', ''http://coverage.readthedocs.org/: 429'', ''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'', ''https://docs.openedx.org/projects/xblock-sdk: 404'', ''https://github.com/openedx/xblock-sdk/blob/main/LICENSE.txt: 404'']',1,'[''https://docs.djangoproject.com/en/1.11/topics/testing/tools/'', ''https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/sdk/get_started_sdk.html'', ''https://discuss.openedx.org'', ''https://github.com/openedx/xblock-sdk/issues'', ''https://openedx.slack.com/'', ''https://backstage.openedx.org/catalog/default/component/xblock-sdk'', ''https://img.shields.io/pypi/v/xblock-sdk.svg'', ''https://pypi.python.org/pypi/xblock-sdk/'', ''https://github.com/openedx/xblock-sdk/workflows/Python%20CI/badge.svg?branch=main'', ''https://github.com/openedx/xblock-sdk/actions'', ''https://codecov.io/github/openedx/xblock-sdk/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/xblock-sdk?branch=main'', ''https://readthedocs.org/projects/xblock-sdk/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/xblock-sdk.svg'', ''https://img.shields.io/github/license/openedx/xblock-sdk.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/index.html'', ''https://openedx.atlassian.net/wiki/display/OPEN/XBlock+review+guidelines'', ''https://github.com/openedx/xblock-sdk/blob/master/sample_xblocks/README.rst'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/43385346/XBlocks+Directory'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'xblock-sdk','[''3'', ''3.12'']',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/help-tokens',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,92,0,'[]',0,'',0,0,'','',5,'["django==4.2.11", "asgiref==3.8.1", "sqlparse==0.4.4", "backports-zoneinfo==0.2.1 ; python_version < \"3.9\"", "typing-extensions==4.10.0"]',92,'["pylint-plugin-utils==0.9.0", "pytest-cov==7.1.0", "pylint-django==2.7.0", "pylint-celery==0.3", "id==1.6.1", "pylint==4.0.5", "jaraco-context==6.1.2", "tomlkit==0.15.0", "astroid==4.0.4", "rfc3986==2.0.0", "certifi==2026.5.20", "asgiref==3.11.1", "requests-toolbelt==1.0.0", "typing-extensions==4.10.0", "diff-cover==10.3.0", "lxml[html-clean]==6.1.1", "nh3==0.3.5", "pydocstyle==6.3.0", "django==4.2.11", "twine==6.2.0", "jinja2==3.1.6", "code-annotations==3.0.0", "urllib3==2.7.0", "sqlparse==0.5.5", "pluggy==1.6.0", "pygments==2.20.0", "setuptools==82.0.1", "jaraco-functools==4.5.0", "edx-lint==6.1.0", "path==16.16.0", "readme-renderer==44.0", "python-slugify==8.0.4", "click==8.4.1", "keyring==25.7.0", "edx-i18n-tools==2.0.0", "click-log==0.4.0", "pip==26.1.2", "cffi==2.0.0", "requests==2.34.2", "platformdirs==4.10.0", "secretstorage==3.5.0", "sqlparse==0.4.4", "tox==4.55.0", "pytest-catchlog==1.2.2", "pyproject-hooks==1.2.0", "pytest==9.0.3", "colorama==0.4.6", "build==1.5.0", "mccabe==0.7.0", "tomli-w==1.2.0", "filelock==3.29.0", "pip-tools==7.5.3", "more-itertools==11.1.0", "distlib==0.4.1", "rich==15.0.0", "charset-normalizer==3.4.7", "snowballstemmer==3.1.1", "markupsafe==3.0.3", "polib==1.2.0", "jaraco-classes==3.4.0", "coverage[toml]==7.14.1", "dill==0.4.1", "cachetools==7.1.4", "pyproject-api==1.10.1", "pycodestyle==2.14.0", "idna==3.18", "django==5.2.14", "isort==8.0.1", "jeepney==0.9.0", "pyyaml==6.0.3", "docutils==0.23", "pytest-django==4.12.0", "six==1.17.0", "virtualenv==21.4.2", "py==1.11.0", "chardet==7.4.3", "cryptography==48.0.0", "python-discovery==1.4.0", "coverage==7.14.1", "lxml-html-clean==0.4.5", "pycparser==3.0", "wheel==0.47.0", "markdown-it-py==4.2.0", "packaging==26.2", "asgiref==3.8.1", "backports-zoneinfo==0.2.1 ; python_version < \"3.9\"", "edx-django-release-util==1.5.0", "iniconfig==2.3.0", "mdurl==0.1.2", "text-unidecode==1.3", "codecov==2.1.13", "stevedore==5.8.0"]',5,'["pylint-django", "edx-django-release-util", "pytest-django", "code-annotations", "edx-i18n-tools"]',5,'["pylint-django", "edx-django-release-util", "pytest-django", "code-annotations", "edx-i18n-tools"]',3,'["edx-django-release-util", "code-annotations", "edx-i18n-tools"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,61,'{"total_duration": "0 minutes 37 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 37 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 35 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 27 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 27 seconds"}, {"name": "tests (ubuntu-latest, 3.12, check_keywords)", "duration": "0 minutes 25 seconds"}]}','Other','2017-04-26 19:09:45','master','A Django app for resolving help tokens to full URLs.',344,6,1,0,0,0,0,0,0,'2026-06-03 21:47:00','GNU AGPLv3',6,1,0,0,0,0,3137,15760,0,1,1,0,0,1,0,0,'','openedx',2,'[''https://open.edx.org/getting-help: 403'']',1,'[''https://docs.openedx.org/en/latest/learners'', ''https://docs.openedx.org/en/latest/educators'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/help-tokens/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/help-tokens/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://img.shields.io/pypi/v/help-tokens.svg'', ''https://pypi.python.org/pypi/help-tokens/'', ''https://github.com/openedx/help-tokens/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/help-tokens/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/help-tokens/coverage.svg?branch=master'', ''http://codecov.io/github/edx/help-tokens?branch=master'', ''https://img.shields.io/pypi/pyversions/help-tokens.svg'', ''https://img.shields.io/github/license/edx/help-tokens.svg'', ''https://github.com/openedx/help-tokens/blob/master/LICENSE.txt'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'help-tokens','[''3'', ''3.11'', ''3.12'']','https://github.com/openedx/help-tokens',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-free-text-response',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,81,0,'[]',0,'{}',0,3,'{"eslint": "8.12.0", "less": "4.1.2", "csslint": "1.0.5"}','{}',16,'["python-dateutil==2.9.0.post0", "django==4.2.19", "appdirs==1.4.4", "simplejson==3.19.3", "markupsafe==3.0.2", "pyyaml==6.0.2", "six==1.17.0", "webob==1.8.9", "asgiref==3.8.1", "pytz==2025.1", "lxml==4.9.4", "mako==1.3.9", "web-fragments==2.2.0", "fs==2.4.16", "xblock==5.1.2", "sqlparse==0.5.3"]',78,'["astroid==3.3.8", "django==4.2.19", "wheel==0.45.1", "asgiref==3.8.1", "botocore==1.36.17", "pypng==0.20220715.0", "xblock==5.1.2", "tox==4.24.1", "pytz==2025.1", "build==1.2.2.post1", "edx-opaque-keys==2.11.0", "mock==5.1.0", "requests==2.32.3", "isort==6.0.0", "fs==2.4.16", "pylint==3.3.4", "coverage[toml]==7.6.11", "tomlkit==0.13.2", "packaging==24.2", "mccabe==0.7.0", "typing-extensions==4.12.2", "platformdirs==4.3.6", "pymongo==4.11.1", "python-dateutil==2.9.0.post0", "fs-s3fs==1.1.1", "docopt==0.6.2", "click==8.1.8", "idna==3.10", "lxml==4.9.4", "mdurl==0.1.2", "binaryornot==0.4.4", "python-slugify==8.0.4", "pbr==6.1.1", "dnspython==2.7.0", "boto3==1.36.17", "s3transfer==0.11.2", "pycodestyle==2.12.1", "pip==24.2", "virtualenv==20.29.2", "dill==0.3.9", "lazy==1.6", "cookiecutter==2.6.0", "web-fragments==2.2.0", "sqlparse==0.5.3", "pyproject-hooks==1.2.0", "pyproject-api==1.9.0", "django-pyfs==3.2.0", "pip-tools==7.4.1", "jmespath==1.0.1", "types-python-dateutil==2.9.0.20241206", "appdirs==1.4.4", "webob==1.8.9", "stevedore==5.4.0", "pyyaml==6.0.2", "six==1.17.0", "pluggy==1.5.0", "certifi==2025.1.31", "markupsafe==3.0.2", "charset-normalizer==3.4.1", "filelock==3.17.0", "mako==1.3.9", "setuptools==75.8.0", "coveralls==4.0.1", "chardet==5.2.0", "coverage==7.6.11", "text-unidecode==1.3", "jinja2==3.1.5", "xblock-sdk==0.12.0", "markdown-it-py==3.0.0", "cachetools==5.5.1", "ddt==1.7.2", "colorama==0.4.6", "simplejson==3.19.3", "rich==13.9.4", "distlib==0.3.9", "pygments==2.19.1", "arrow==1.3.0", "urllib3==2.2.3"]',5,'["xblock-sdk", "web-fragments", "xblock", "django-pyfs", "edx-opaque-keys"]',5,'["xblock-sdk", "web-fragments", "xblock", "django-pyfs", "edx-opaque-keys"]',4,'["xblock-sdk", "xblock", "edx-opaque-keys", "web-fragments"]',0,NULL,1,0,1,0,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,15,'{"total_duration": "71852 minutes 58 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, translations_validate)", "duration": "1 minutes 30 seconds"}, {"name": "Tests (ubuntu-latest, 3.11, translations_validate)", "duration": "1 minutes 4 seconds"}, {"name": "Tests (ubuntu-latest, 3.11, csslint)", "duration": "0 minutes 46 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 46 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 44 seconds"}, {"name": "Tests (ubuntu-latest, 3.11, quality)", "duration": "0 minutes 40 seconds"}, {"name": "Tests (ubuntu-latest, 3.11, django42)", "duration": "0 minutes 38 seconds"}, {"name": "Tests (ubuntu-latest, 3.11, django52)", "duration": "0 minutes 37 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 31 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 31 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, eslint)", "duration": "0 minutes 28 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 23 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 23 seconds"}, {"name": "Tests (ubuntu-latest, 3.11, eslint)", "duration": "0 minutes 22 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 22 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 22 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 21 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 20 seconds"}]}','Other','2020-01-27 18:09:29','master','',428,20,1,0,0,0,1,0,0,'2026-05-15 04:57:19','GNU AGPLv3',5,1,3078,236,2484,7271,6853,58878,0,0,1,0,0,1,0,0,'','openedx',7,'[''https://github.com/openedx/xblock-free-text-response/actions?query=workflow%3A%22Python+CI%22: 504'']',0,'[''https://coveralls.io/repos/github/Stanford-Online/xblock-free-text-response/badge.svg?branch=master'', ''https://coveralls.io/github/Stanford-Online/xblock-free-text-response?branch=master'', ''https://github.com/openedx/xblock-free-text-response/workflows/Python%20CI/badge.svg?branch=master'']',1,1,0,0,'','',1,NULL,NULL,'0',0,1,0,0,NULL,0,'xblock-free-text-response','[''3'', ''3.11'', ''3.12'']','https://github.com/Stanford-Online/xblock-free-text-response',1,1,1,0,0,0,0,0,0,'[]','[]','[]','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-communications',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,39,0,'',0,'{}',29,10,'{"@edx/browserslist-config": "^1.2.0", "@edx/typescript-config": "^1.1.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "axios-mock-adapter": "1.21.2", "glob": "7.2.3", "jest": "29.7.0", "prettier": "2.8.1", "rosie": "2.1.0"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^6.6.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.6.0", "@edx/tinymce-language-selector": "1.1.0", "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "0.2.0", "@openedx/frontend-plugin-framework": "^1.6.0", "@openedx/paragon": "^23.3.0", "@tinymce/tinymce-react": "3.14.0", "axios": "0.27.2", "classnames": "2.3.2", "core-js": "3.26.1", "jquery": "3.6.1", "popper.js": "1.16.1", "prop-types": "15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "^6.1.0", "react-redux": "7.2.9", "react-router": "6.15.0", "react-router-dom": "6.15.0", "redux": "4.2.0", "regenerator-runtime": "0.13.11", "tinymce": "5.10.7"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,21,'{"total_duration": "33699 minutes 0 seconds", "checks": [{"name": "tests", "duration": "2 minutes 29 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 5 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 6 seconds"}]}','Other','2021-12-03 16:33:28','master','Frontend to manage instructor-learner communications',5221,61,1,0,0,0,0,0,0,'2026-06-08 00:38:16','GNU AGPLv3',3,1,0,0,386,152177,1716,0,0,0,0,0,0,0,0,0,'@edx/frontend-app-communications','openedx',0,'[''https://github.com/overhangio/tutor: 504'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file: 504'', ''https://github.com/edx/frontend-app-communications.git: 504'', ''https://github.com/openedx/frontend-plugin-framework: 504'', ''https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst: 504'', ''https://github.com/openedx/frontend-app-communications/issues: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-communications: 404'', ''https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml: 504'']',0,'[''https://github.com/nvm-sh/nvm'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-app-communications.svg'', ''https://github.com/openedx/frontend-app-communications/blob/master/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml/badge.svg'', ''https://codecov.io/github/openedx/frontend-app-communications/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/frontend-app-communications?branch=master'']',1,1,0,0,'','',1,'2022-12-12',NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/browserslist-config',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,1,0,'',0,'{}',0,1,'{"browserslist": "4.24.2"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,'{"total_duration": "0 minutes 20 seconds", "checks": [{"name": "Release", "duration": "0 minutes 20 seconds"}]}','Other','2021-11-02 20:06:24','master','',41,6,1,0,0,0,0,0,0,'2026-05-20 13:27:14','GNU AGPLv3',0,0,0,0,0,341,0,0,0,0,0,0,0,0,0,0,'@edx/browserslist-config','openedx',0,'[''https://www.npmjs.com/package/@edx/browserslist-config: 403'', ''https://github.com/browserslist/browserslist: 504'']',0,'[''https://img.shields.io/npm/l/@edx/browserslist-config'', ''https://img.shields.io/npm/v/@edx/browserslist-config'', ''https://support.edx.org/hc/en-us/articles/206211848-What-are-the-system-requirements-and-supported-browsers-on-edX'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/auth-backends',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,76,0,'[]',0,'',0,0,'','',33,'["django-waffle==5.0.0", "click==8.3.1", "social-auth-core==4.8.5", "edx-django-utils==8.0.1", "python3-openid==3.2.0", "edx-toggles==5.4.1", "jinja2==3.1.6", "python-slugify==8.0.4", "six==1.17.0", "stevedore==5.7.0", "sqlparse==0.5.5", "django-crum==0.7.9", "urllib3==2.6.3", "defusedxml==0.7.1", "idna==3.11", "cffi==2.0.0", "django==5.2.12", "text-unidecode==1.3", "pyjwt[crypto]==2.11.0", "social-auth-app-django==5.7.0", "psutil==7.2.2", "asgiref==3.11.1", "markupsafe==3.0.3", "requests-oauthlib==2.0.0", "requests==2.32.5", "code-annotations==2.3.2", "charset-normalizer==3.4.5", "certifi==2026.2.25", "cryptography==46.0.5", "pycparser==3.0", "oauthlib==3.3.1", "pynacl==1.6.2", "pyyaml==6.0.3"]',76,'["pytest-django==4.12.0", "tox==3.28.0", "pylint-plugin-utils==0.9.0", "django-waffle==5.0.0", "click==8.3.1", "click-log==0.4.0", "mccabe==0.7.0", "setuptools==82.0.0", "typing-extensions==4.15.0", "astroid==4.0.4", "pluggy==1.6.0", "social-auth-core==4.8.5", "edx-django-utils==8.0.1", "python3-openid==3.2.0", "edx-toggles==5.4.1", "jinja2==3.1.6", "httpretty==1.1.4", "python-slugify==8.0.4", "pylint-celery==0.3", "six==1.17.0", "tomlkit==0.14.0", "filelock==3.25.0", "packaging==26.0", "stevedore==5.7.0", "distlib==0.4.0", "wheel==0.46.3", "pylint-django==2.7.0", "python-discovery==1.1.0", "argparse==1.4.0", "django-crum==0.7.9", "sqlparse==0.5.5", "unittest2==1.1.0", "urllib3==2.6.3", "pycodestyle==2.14.0", "pygments==2.19.2", "defusedxml==0.7.1", "idna==3.11", "cffi==2.0.0", "platformdirs==4.9.4", "virtualenv==21.1.0", "build==1.4.0", "isort==8.0.1", "django==5.2.12", "text-unidecode==1.3", "pyjwt[crypto]==2.11.0", "coverage[toml]==7.13.4", "social-auth-app-django==5.7.0", "psutil==7.2.2", "dill==0.4.1", "asgiref==3.11.1", "pip==26.0.1", "edx-lint==5.6.0", "markupsafe==3.0.3", "requests-oauthlib==2.0.0", "edx-django-release-util==1.5.0", "requests==2.32.5", "traceback2==1.4.0", "pyproject-hooks==1.2.0", "ddt==1.7.2", "responses==0.26.0", "pylint==4.0.5", "linecache2==1.0.0", "code-annotations==2.3.2", "iniconfig==2.3.0", "pytest-cov==7.0.0", "pip-tools==7.5.3", "py==1.11.0", "charset-normalizer==3.4.5", "certifi==2026.2.25", "cryptography==46.0.5", "pycparser==3.0", "oauthlib==3.3.1", "pycryptodomex==3.23.0", "pynacl==1.6.2", "pytest==9.0.2", "pyyaml==6.0.3"]',8,'["edx-django-release-util", "social-auth-app-django", "edx-django-utils", "pytest-django", "code-annotations", "pylint-django", "edx-toggles", "django-waffle"]',9,'["edx-django-release-util", "social-auth-app-django", "edx-django-utils", "pytest-django", "code-annotations", "pylint-django", "edx-toggles", "django-waffle", "django-crum"]',6,'["edx-django-release-util", "social-auth-app-django", "edx-django-utils", "code-annotations", "edx-toggles", "django-waffle"]',0,NULL,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,18,'{"total_duration": "6500 minutes 14 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 7 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 44 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, check_keywords)", "duration": "0 minutes 32 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 49 seconds"}]}','Other','2015-02-17 19:08:53','master','Custom authentication backends and views for edX services',411,24,1,0,0,0,0,0,0,'2026-06-04 03:18:20','GNU AGPLv3',5,1,0,0,0,0,2244,41146,0,1,1,0,0,1,0,0,'','openedx',4,'[''http://edx.devstack.lms: HTTPConnectionPool(host=\''edx.devstack.lms\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''edx.devstack.lms\'', port=80): Failed to resolve \''edx.devstack.lms\'' ([Errno -2] Name or service not known)"))'']',0,'[''https://github.com/openedx/auth-backends/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/auth-backends/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/auth-backends/coverage.svg?branch=master'', ''http://codecov.io/github/edx/auth-backends?branch=master'', ''https://courses.stage.edx.org'', ''http://python-social-auth.readthedocs.io/en/latest/strategies.html'', ''https://github.com/openedx/auth-backends/releases'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://groups.google.com/forum/'']',1,0,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-auth-backends','[''3'', ''3.12'']','https://github.com/openedx/auth-backends',1,1,1,1,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/enterprise-subsidy',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,178,0,'[]',0,'',0,0,'','',92,'["stevedore==5.6.0", "markupsafe==3.0.3", "pycparser==2.23", "text-unidecode==1.3", "python-slugify==8.0.4", "zope-interface==8.2", "jinja2==3.1.6", "psutil==7.2.1", "openedx-ledger==1.6.15", "edx-rbac==2.1.0", "getsmarter-api-clients==0.6.3", "djangorestframework==3.16.1", "redis==7.1.0", "social-auth-core==4.8.3", "drf-spectacular==0.29.0", "edx-toggles==5.4.1", "python-memcached==1.62", "httpx==0.28.1", "pynacl==1.6.2", "pyyaml==6.0.3", "openedx-events==10.5.0", "cachetools==6.2.4", "python-dateutil==2.9.0.post0", "packaging==25.0", "pymemcache==4.0.0", "ply==3.11", "edx-django-utils==8.0.1", "gevent==25.9.1", "cffi==2.0.0", "jsonfield2==4.0.0.post0", "drf-jwt==1.19.2", "cryptography==46.0.3", "edx-ccx-keys==2.0.2", "sqlparse==0.5.5", "edx-django-release-util==1.5.0", "django-extensions==4.1", "requests==2.32.5", "fastavro==1.12.1", "semantic-version==2.10.0", "pymongo==4.16.0", "edx-event-bus-kafka==6.1.0", "django-log-request-id==2.1.0", "confluent-kafka[avro,schema-registry]==2.13.0", "zope-event==6.1", "edx-rest-api-client==6.2.0", "jsonschema-specifications==2025.9.1", "python3-openid==3.2.0", "edx-drf-extensions==10.6.0", "defusedxml==0.7.1", "authlib==1.6.6", "uritemplate==4.2.0", "idna==3.11", "pytz==2025.2", "certifi==2026.1.4", "dnspython==2.8.0", "httpcore==1.0.9", "djangoql==0.18.1", "mysqlclient==2.2.7", "jsonschema==4.26.0", "requests-oauthlib==2.0.0", "drf-yasg==1.21.11", "greenlet==3.3.0", "anyio==4.12.1", "social-auth-app-django==5.7.0", "django-waffle==5.0.0", "django-object-actions==5.0.0", "django-crum==0.7.9", "rpds-py==0.30.0", "django-cors-headers==4.9.0", "pyjwt[crypto]==2.10.1", "six==1.17.0", "asgiref==3.11.0", "gunicorn==23.0.0", "rules==3.5", "h11==0.16.0", "django==5.2.10", "avro==1.12.1", "charset-normalizer==3.4.4", "code-annotations==2.3.0", "edx-auth-backends==4.6.2", "referencing==0.37.0", "urllib3==2.6.3", "click==8.3.1", "django-clearcache==1.2.1", "oauthlib==3.3.1", "attrs==25.4.0", "django-model-utils==5.0.0", "typing-extensions==4.15.0", "edx-opaque-keys[django]==3.0.0", "django-simple-history==3.4.0", "inflection==0.5.1", "django-filter==25.2"]',178,'["pylint-plugin-utils==0.9.0", "imagesize==1.4.1", "docutils==0.22.4", "stevedore==5.6.0", "markupsafe==3.0.3", "pycparser==2.23", "text-unidecode==1.3", "python-slugify==8.0.4", "zope-interface==8.2", "rich==14.2.0", "jinja2==3.1.6", "colorama==0.4.6", "psutil==7.2.1", "django-dynamic-fixture==4.0.1", "openedx-ledger==1.6.15", "pytest==9.0.2", "pydata-sphinx-theme==0.15.4", "pylint-celery==0.3", "edx-rbac==2.1.0", "beautifulsoup4==4.14.3", "getsmarter-api-clients==0.6.3", "djangorestframework==3.16.1", "redis==7.1.0", "social-auth-core==4.8.3", "drf-spectacular==0.29.0", "sphinxcontrib-devhelp==2.0.0", "edx-toggles==5.4.1", "python-memcached==1.62", "httpx==0.28.1", "pynacl==1.6.2", "accessible-pygments==0.0.5", "pyyaml==6.0.3", "sphinxcontrib-applehelp==2.0.0", "django-debug-toolbar==6.1.0", "openedx-events==10.5.0", "sphinxcontrib-jsmath==1.0.1", "cachetools==6.2.4", "python-dateutil==2.9.0.post0", "jaraco-functools==4.4.0", "packaging==25.0", "jaraco-context==6.0.2", "pyproject-hooks==1.2.0", "path==16.16.0", "pymemcache==4.0.0", "sphinx-book-theme==1.1.4", "pylint-django==2.7.0", "ply==3.11", "edx-django-utils==8.0.1", "edx-lint==5.6.0", "gevent==25.9.1", "secretstorage==3.5.0", "wheel==0.45.1", "sphinxcontrib-htmlhelp==2.1.0", "cffi==2.0.0", "faker==40.1.0", "jsonfield2==4.0.0.post0", "mccabe==0.7.0", "chardet==5.2.0", "id==1.5.0", "snowballstemmer==3.0.1", "drf-jwt==1.19.2", "coverage[toml]==7.13.1", "cryptography==46.0.3", "pluggy==1.6.0", "edx-ccx-keys==2.0.2", "sqlparse==0.5.5", "edx-django-release-util==1.5.0", "sphinxcontrib-serializinghtml==2.0.0", "django-extensions==4.1", "sphinxcontrib-qthelp==2.0.0", "babel==2.17.0", "requests==2.32.5", "nh3==0.3.2", "pytest-cov==7.0.0", "polib==1.2.0", "tox==4.34.1", "distlib==0.4.0", "ddt==1.7.2", "isort==7.0.0", "fastavro==1.12.1", "semantic-version==2.10.0", "pymongo==4.16.0", "edx-event-bus-kafka==6.1.0", "django-log-request-id==2.1.0", "pygments==2.19.2", "confluent-kafka[avro,schema-registry]==2.13.0", "zope-event==6.1", "edx-rest-api-client==6.2.0", "jsonschema-specifications==2025.9.1", "python3-openid==3.2.0", "factory-boy==3.3.3", "edx-drf-extensions==10.6.0", "pip==25.3", "defusedxml==0.7.1", "authlib==1.6.6", "pyproject-api==1.10.0", "uritemplate==4.2.0", "idna==3.11", "twine==6.2.0", "alabaster==1.0.0", "pytz==2025.2", "certifi==2026.1.4", "build==1.4.0", "dnspython==2.8.0", "django-test-migrations==1.5.0", "setuptools==80.9.0", "httpcore==1.0.9", "djangoql==0.18.1", "virtualenv==20.36.1", "more-itertools==10.8.0", "edx-i18n-tools==1.9.0", "docutils==0.21.2", "mysqlclient==2.2.7", "jsonschema==4.26.0", "pydocstyle==6.3.0", "click-log==0.4.0", "requests-oauthlib==2.0.0", "drf-yasg==1.21.11", "greenlet==3.3.0", "anyio==4.12.1", "social-auth-app-django==5.7.0", "django-waffle==5.0.0", "django-object-actions==5.0.0", "django-crum==0.7.9", "tzdata==2025.3", "jaraco-classes==3.4.0", "rpds-py==0.30.0", "lxml[html-clean]==6.0.2", "django-cors-headers==4.9.0", "pyjwt[crypto]==2.10.1", "six==1.17.0", "asgiref==3.11.0", "iniconfig==2.3.0", "keyring==25.7.0", "astroid==4.0.3", "gunicorn==23.0.0", "rules==3.5", "roman-numerals==4.1.0", "h11==0.16.0", "rfc3986==2.0.0", "readme-renderer==44.0", "django==5.2.10", "avro==1.12.1", "soupsieve==2.8.1", "charset-normalizer==3.4.4", "pylint==4.0.4", "code-annotations==2.3.0", "responses==0.25.8", "requests-toolbelt==1.0.0", "sphinx==9.1.0", "edx-auth-backends==4.6.2", "filelock==3.20.3", "pycodestyle==2.14.0", "markdown-it-py==4.0.0", "mdurl==0.1.2", "referencing==0.37.0", "tomlkit==0.13.3", "lxml-html-clean==0.4.3", "doc8==2.0.0", "urllib3==2.6.3", "restructuredtext-lint==2.0.2", "click==8.3.1", "django-clearcache==1.2.1", "oauthlib==3.3.1", "diff-cover==10.2.0", "attrs==25.4.0", "django-model-utils==5.0.0", "typing-extensions==4.15.0", "edx-opaque-keys[django]==3.0.0", "django-simple-history==3.4.0", "inflection==0.5.1", "dill==0.4.0", "platformdirs==4.5.1", "pip-tools==7.5.2", "pytest-django==4.11.1", "jeepney==0.9.0", "django-filter==25.2", "mock==5.2.0"]',20,'["edx-drf-extensions", "edx-django-release-util", "factory-boy", "django-object-actions", "django-cors-headers", "code-annotations", "djangorestframework", "edx-toggles", "social-auth-app-django", "edx-auth-backends", "edx-i18n-tools", "django-waffle", "pylint-django", "edx-django-utils", "django-debug-toolbar", "edx-rest-api-client", "edx-rbac", "django-extensions", "pytest-django", "django-filter"]',28,'["edx-drf-extensions", "edx-django-release-util", "drf-jwt", "rules", "factory-boy", "django-model-utils", "django-object-actions", "drf-yasg", "django-cors-headers", "code-annotations", "djangorestframework", "edx-toggles", "social-auth-app-django", "edx-auth-backends", "django-simple-history", "edx-i18n-tools", "django-crum", "django-waffle", "authlib", "pylint-django", "edx-django-utils", "django-debug-toolbar", "edx-rest-api-client", "django-dynamic-fixture", "edx-rbac", "django-extensions", "pytest-django", "django-filter"]',15,'["edx-toggles", "edx-drf-extensions", "django-debug-toolbar", "edx-rest-api-client", "social-auth-app-django", "edx-django-release-util", "edx-auth-backends", "edx-rbac", "django-extensions", "django-filter", "edx-i18n-tools", "django-waffle", "edx-django-utils", "django-cors-headers", "code-annotations"]',0,NULL,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,96,'{"total_duration": "25787 minutes 5 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "360 minutes 14 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "3 minutes 44 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 5 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 42 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 22 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 21 seconds"}, {"name": "Dependabot", "duration": "0 minutes 21 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}]}','Other','2022-12-21 21:18:24','main','Captures and balances enterprise-subsidized transactions.',1997,13,1,0,0,0,0,0,0,'2026-05-18 20:36:24','GNU AGPLv3',5,1,0,0,856,0,10403,687743,2314,1,1,0,0,1,0,0,'','openedx',3,'[''https://open-edx-backstage.herokuapp.com/catalog/default/component/enterprise-subsidy: 404'', ''https://github.com/openedx/enterprise-subsidy/workflows/Python%20CI/badge.svg?branch=main: 504'']',1,'[''https://github.com/openedx/enterprise-subsidy/tree/main/docs/decisions'', ''https://github.com/openedx/enterprise-subsidy/tree/main/docs/caching.rst'', ''https://discuss.openedx.org'', ''https://github.com/openedx/enterprise-subsidy/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://github.com/openedx/enterprise-subsidy/actions'', ''https://codecov.io/github/openedx/enterprise-subsidy/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/enterprise-subsidy?branch=main'', ''https://img.shields.io/github/license/openedx/enterprise-subsidy.svg'', ''https://github.com/openedx/enterprise-subsidy/blob/main/LICENSE.txt'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',1,NULL,NULL,'0',0,1,0,1,NULL,0,NULL,'[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-learner-dashboard',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,42,0,'',0,'{}',28,14,'{"@edx/browserslist-config": "^1.3.0", "@edx/typescript-config": "^1.1.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.6.1", "copy-webpack-plugin": "^13.0.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-expect-message": "^1.1.3", "jest-when": "^3.6.0", "react-dev-utils": "^12.0.0", "react-test-renderer": "^18.3.1"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-enterprise-hotjar": "7.2.0", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/fontawesome-svg-core": "^1.2.36", "@fortawesome/free-brands-svg-icons": "^5.15.4", "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/react-fontawesome": "^0.2.0", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.4.5", "@tanstack/react-query": "^5.90.16", "classnames": "^2.3.1", "core-js": "3.49.0", "font-awesome": "4.7.0", "history": "5.3.0", "lodash": "^4.17.21", "moment": "^2.29.4", "prop-types": "15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "^6.1.0", "react-intl": "6.8.9", "react-router-dom": "6.30.3", "react-share": "^5.2.2", "regenerator-runtime": "^0.14.0", "util": "^0.12.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,28,'{"total_duration": "5012 minutes 38 seconds", "checks": [{"name": "tests", "duration": "2 minutes 35 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}]}','Other','2022-06-03 14:59:36','master','Learner Dashboard MFE',9510,197,1,0,0,0,0,0,0,'2026-06-03 00:28:28','GNU AGPLv3',10,1,0,0,224,409312,2330,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-learner-dashboard','openedx',0,'[''https://github.com/openedx/frontend-app-learner-dashboard/blob/master/LICENSE: 504'', ''https://github.com/openedx/frontend-plugin-framework: 504'', ''https://github.com/openedx/frontend-app-learner-dashboard/issues: 504'']',0,'[''https://img.shields.io/github/license/openedx/frontend-app-learner-dashboard.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-app-learner-dashboard/coverage.svg?branch=master'', ''https://app.codecov.io/github/openedx/frontend-app-learner-dashboard?branch=master'', ''https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3875962884/How+to+submit+an+open+source+contribution+for+Product+Review'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575906333/Learner+Home'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-04-06','2025-02-17','4',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/forum',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,163,0,'[]',0,'',0,0,'','',67,'["anyio==4.12.1", "asgiref==3.11.1", "psutil==7.2.2", "dnspython==2.8.0", "tzlocal==5.3.1", "sqlparse==0.5.5", "meilisearch==0.40.0", "python-slugify==8.0.4", "typing-extensions==4.15.0", "h11==0.16.0", "tzdata==2025.3", "pyyaml==6.0.3", "beautifulsoup4==4.14.3", "httpx==0.28.1", "camel-converter[pydantic]==5.1.0", "celery==5.6.2", "edx-django-utils==8.0.1", "fastavro==1.12.1", "pytz==2026.1.post1", "openedx-events==10.5.0", "soupsieve==2.8.3", "python-dateutil==2.9.0.post0", "amqp==5.3.1", "text-unidecode==1.3", "charset-normalizer==3.4.5", "idna==3.11", "pydantic==2.12.5", "djangorestframework==3.16.1", "attrs==25.4.0", "pymongo==4.16.0", "stevedore==5.7.0", "django-waffle==5.0.0", "requests==2.32.5", "typing-inspection==0.4.2", "edx-search==4.4.0", "click==8.3.1", "edx-toggles==5.4.1", "jinja2==3.1.6", "pycparser==3.0", "markupsafe==3.0.3", "pynacl==1.6.2", "edx-opaque-keys[django]==3.1.0", "prompt-toolkit==3.0.52", "six==1.17.0", "wcwidth==0.6.0", "django==5.2.12", "annotated-types==0.7.0", "click-repl==0.3.0", "elasticsearch==7.13.4", "packaging==26.0", "code-annotations==2.3.2", "kombu==5.6.2", "typesense==2.0.0", "cffi==2.0.0", "click-plugins==1.1.1.2", "django-crum==0.7.9", "pydantic-core==2.41.5", "urllib3==1.26.20", "certifi==2026.2.25", "vine==5.1.0", "openedx-atlas==0.7.0", "event-tracking==3.3.0", "edx-ccx-keys==2.0.2", "mysqlclient==2.2.8", "billiard==4.2.4", "click-didyoumean==0.3.1", "httpcore==1.0.9"]',163,'["docutils==0.22.4", "pycodestyle==2.14.0", "rich==14.3.3", "restructuredtext-lint==2.0.2", "sqlparse==0.5.5", "rfc3986==2.0.0", "django-stubs==5.2.9", "alabaster==1.0.0", "fastavro==1.12.1", "edx-django-utils==8.0.1", "text-unidecode==1.3", "tomli-w==1.2.0", "python-discovery==1.1.0", "polib==1.2.0", "pymongo==4.16.0", "requests==2.32.5", "jinja2==3.1.6", "pylint-django==2.7.0", "snowballstemmer==3.0.1", "wcwidth==0.6.0", "distlib==0.4.0", "isort==8.0.1", "build==1.4.0", "jaraco-classes==3.4.0", "packaging==26.0", "setuptools==82.0.0", "vine==5.1.0", "cffi==2.0.0", "tomlkit==0.14.0", "django-crum==0.7.9", "sphinx==9.1.0", "openedx-atlas==0.7.0", "event-tracking==3.3.0", "jaraco-functools==4.4.0", "accessible-pygments==0.0.5", "billiard==4.2.4", "sentinels==1.1.1", "pylint-plugin-utils==0.9.0", "roman-numerals==4.1.0", "sphinxcontrib-jsmath==1.0.1", "more-itertools==10.8.0", "mypy-extensions==1.1.0", "jaraco-context==6.1.0", "faker==40.8.0", "httpcore==1.0.9", "typing-extensions==4.15.0", "tzdata==2025.3", "pyproject-hooks==1.2.0", "pylint==4.0.5", "wheel==0.46.3", "camel-converter[pydantic]==5.1.0", "cryptography==46.0.5", "pytz==2026.1.post1", "types-beautifulsoup4==4.12.0.20250516", "keyring==25.7.0", "soupsieve==2.8.3", "charset-normalizer==3.4.5", "pydantic==2.12.5", "djangorestframework==3.16.1", "diff-cover==10.2.0", "filelock==3.25.0", "edx-lint==5.6.0", "types-requests==2.31.0.6", "django-waffle==5.0.0", "pytokens==0.4.1", "path==16.16.0", "pip-tools==7.5.3", "click==8.3.1", "pycparser==3.0", "sphinxcontrib-serializinghtml==2.0.0", "edx-opaque-keys[django]==3.1.0", "django==5.2.12", "types-pyyaml==6.0.12.20250915", "markdown-it-py==4.0.0", "annotated-types==0.7.0", "mdurl==0.1.2", "elasticsearch==7.13.4", "platformdirs==4.9.4", "click-plugins==1.1.1.2", "pathspec==1.0.4", "edx-ccx-keys==2.0.2", "edx-i18n-tools==1.9.0", "click-didyoumean==0.3.1", "lxml[html-clean]==6.0.2", "nh3==0.3.3", "anyio==4.12.1", "requests-toolbelt==1.0.0", "asgiref==3.11.1", "mccabe==0.7.0", "dnspython==2.8.0", "click-log==0.4.0", "babel==2.18.0", "pylint-celery==0.3", "mypy==1.19.1", "types-webencodings==0.5.0.20251108", "sphinx-book-theme==1.1.4", "celery==5.6.2", "twine==6.2.0", "imagesize==2.0.0", "openedx-events==10.5.0", "pyproject-api==1.10.0", "iniconfig==2.3.0", "attrs==25.4.0", "sphinxcontrib-htmlhelp==2.1.0", "doc8==0.11.2", "typing-inspection==0.4.2", "edx-search==4.4.0", "pynacl==1.6.2", "six==1.17.0", "markupsafe==3.0.3", "prompt-toolkit==3.0.52", "jeepney==0.9.0", "chardet==7.0.1", "django-stubs-ext==5.2.9", "readme-renderer==44.0", "kombu==5.6.2", "pip==26.0.1", "certifi==2026.2.25", "colorama==0.4.6", "pytest==9.0.2", "sphinxcontrib-qthelp==2.0.0", "cachetools==7.0.3", "pydata-sphinx-theme==0.15.4", "h11==0.16.0", "astroid==4.0.4", "pytest-django==4.12.0", "psutil==7.2.2", "pluggy==1.6.0", "tzlocal==5.3.1", "black==26.3.0", "sphinxcontrib-devhelp==2.0.0", "meilisearch==0.40.0", "python-slugify==8.0.4", "librt==0.8.1", "dill==0.4.1", "pyyaml==6.0.3", "beautifulsoup4==4.14.3", "httpx==0.28.1", "pydocstyle==6.3.0", "lxml-html-clean==0.4.4", "python-dateutil==2.9.0.post0", "amqp==5.3.1", "idna==3.11", "pytest-cov==7.0.0", "stevedore==5.7.0", "edx-toggles==5.4.1", "djangorestframework-stubs==3.16.8", "coverage[toml]==7.13.4", "types-urllib3==1.26.25.14", "types-html5lib==1.1.11.20251117", "virtualenv==21.1.0", "sphinxcontrib-applehelp==2.0.0", "click-repl==0.3.0", "pygments==2.19.2", "code-annotations==2.3.2", "typesense==2.0.0", "secretstorage==3.5.0", "pydantic-core==2.41.5", "urllib3==1.26.20", "mongomock==4.3.0", "tox==4.49.0", "mysqlclient==2.2.8", "id==1.5.0"]',10,'["edx-django-utils", "edx-toggles", "edx-i18n-tools", "pytest-django", "djangorestframework", "django-waffle", "pylint-django", "edx-search", "code-annotations", "event-tracking"]',11,'["edx-django-utils", "edx-toggles", "edx-i18n-tools", "pytest-django", "djangorestframework", "django-waffle", "pylint-django", "django-crum", "edx-search", "code-annotations", "event-tracking"]',7,'["edx-django-utils", "edx-toggles", "edx-i18n-tools", "django-waffle", "edx-search", "code-annotations", "event-tracking"]',0,NULL,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,14,'{"total_duration": "11760 minutes 40 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, e2e)", "duration": "3 minutes 10 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "2 minutes 1 seconds"}, {"name": "tests (ubuntu-latest, 3.12, py)", "duration": "1 minutes 19 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 19 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 18 seconds"}, {"name": "tests (ubuntu-latest, 3.12, package)", "duration": "1 minutes 4 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 45 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2024-07-25 08:43:29','master','Python rewrite of the legacy Open edX Ruby forum',777,22,1,0,0,0,0,0,0,'2026-06-07 19:24:47','GNU AGPLv3',4,1,0,0,873,0,5775,701211,0,0,0,0,0,1,0,0,'','openedx',1,'[''https://github.com/openedx/cs_comments_service: 504'', ''https://docs.openedx.org/projects/forum/how-tos/how-to-deploy-this-component.html: 404'', ''https://docs.openedx.org/projects/forum: 404'']',1,'[''https://openedx.org'', ''https://github.com/openedx/frontend-app-discussions'', ''https://discuss.openedx.org/t/axim-funded-contribution-proposal-forum-rewrite-from-ruby-mongodb-to-python-mysql/12788'', ''https://github.com/overhangio/tutor-forum'', ''https://docs.tutor.edly.io/'', ''https://docs.tutor.edly.io/tutorials/main.html'', ''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://discuss.openedx.org'', ''https://github.com/openedx/forum/issues'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/forum'', ''https://github.com/openedx/forum/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/forum/actions/workflows/ci.yml'', ''https://img.shields.io/github/license/openedx/forum.svg'', ''https://github.com/openedx/forum/blob/master/LICENSE.txt'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-forum','[''3'', ''3.12'']','https://github.com/openedx/forum',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/paragon',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,93,0,'',0,'{}',44,49,'{"@babel/cli": "^7.16.8", "@babel/core": "^7.17.8", "@babel/eslint-parser": "^7.18.2", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/plugin-proposal-object-rest-spread": "^7.16.7", "@babel/preset-env": "^7.16.8", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.16.7", "@edx/browserslist-config": "^1.5.0", "@edx/eslint-config": "^4.4.0", "@edx/stylelint-config-edx": "^2.3.0", "@edx/typescript-config": "^1.1.0", "@formatjs/cli": "^5.0.2", "@semantic-release/changelog": "^6.0.1", "@semantic-release/git": "^10.0.1", "@testing-library/jest-dom": "^6.6", "@testing-library/react": "^16.1", "@testing-library/user-event": "^14.5", "@types/jest": "^29.5.10", "@types/react": "^18", "@types/react-dom": "^18", "@types/react-responsive": "^9.0.0", "@types/react-table": "^7.7.19", "@types/react-test-renderer": "^18.0.0", "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.22.0", "@typescript-eslint/parser": "^5.22.0", "axios-mock-adapter": "^2.0.0", "babel-jest": "^29.7.0", "babel-loader": "^8.2.4", "commander": "^9.3.0", "eslint": "8.57.1", "eslint-config-airbnb": "19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-plugin-import": "2.32.0", "eslint-plugin-jsonc": "^2.18.1", "eslint-plugin-jsx-a11y": "6.10.2", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-cli": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "markdown-loader-jest": "^0.1.1", "react": "^18", "react-test-renderer": "^18", "regenerator-runtime": "^0.14.0", "semantic-release": "^25.0.0", "stylelint": "^15.11.0", "ts-jest": "^29.1.2", "typescript": "^4.7.4"}','{"@popperjs/core": "^2.11.4", "@tokens-studio/sd-transforms": "^1.2.4", "axios": "^1.0.0", "bootstrap": "^4.6.2", "chalk": "^4.1.2", "child_process": "^1.0.2", "chroma-js": "^3.0.0", "classnames": "^2.3.1", "cli-progress": "^3.12.0", "commander": "^9.4.1", "email-prop-type": "^3.0.0", "file-selector": "^0.10.0", "glob": "^13.0.0", "inquirer": "^8.2.5", "js-toml": "^1.0.0", "lodash.uniqby": "^4.7.0", "log-update": "^4.0.0", "lz-string": "^1.5.0", "mailto-link": "^2.0.0", "minimist": "^1.2.8", "ora": "^5.4.1", "postcss": "^8.4.21", "postcss-combine-duplicated-selectors": "^10.0.3", "postcss-custom-media": "^9.1.2", "postcss-import": "^15.1.0", "postcss-map": "^0.11.0", "postcss-minify": "^1.1.0", "prop-types": "^15.8.1", "react-bootstrap": "^1.6.5", "react-colorful": "^5.6.1", "react-dropzone": "^14.2.1", "react-focus-on": "^3.5.4", "react-imask": "^7.1.3", "react-loading-skeleton": "^3.1.0", "react-popper": "^2.2.5", "react-proptype-conditional-require": "^1.0.4", "react-responsive": "^10.0.0", "react-table": "^7.7.0", "react-transition-group": "^4.4.2", "sass": "^1.58.3", "style-dictionary": "^4.4.0", "tabbable": "^5.3.3", "uncontrollable": "^7.2.1", "uuid": "^9.0.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,177,'{"total_duration": "0 minutes 0 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}]}','Other','2017-04-27 18:57:22','release-23.x','💎 An accessible, theme-ready design system built for learning applications and Open edX.',349963,99,1,0,0,0,0,0,0,'2026-06-08 00:50:50','Apache License 2.0',56,1,271597,0,237,4367759,2202,0,2709,0,0,0,0,1,0,0,'','openedx',0,'[''https://www.npmjs.com/package/@openedx/paragon: 403'', ''https://openedx.org/slack: 403'', ''https://cdn.jsdelivr.net/npm/@my-brand/core.min.css: 404'', ''https://cdn.jsdelivr.net/npm/@my-brand/light.min.css: 404'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'', ''https://github.com/openedx/eslint-config-edx/tree/master/packages/eslint-config-edx: 404'', ''https://www.npmjs.com/package/eslint-config-airbnb: 403'', ''https://facebook.github.io/jest/: 404'', ''https://facebook.github.io/jest/docs/en/api.html: 404'', ''https://facebook.github.io/jest/docs/en/getting-started.html: 404'', ''http://facebook.github.io/jest/docs/en/snapshot-testing.html: 404'']',0,'[''https://github.com/openedx/paragon/actions/workflows/release.yml/badge.svg'', ''https://github.com/openedx/paragon/actions/workflows/release.yml'', ''https://img.shields.io/npm/v/@openedx/paragon.svg'', ''https://img.shields.io/badge/status-Maintained-brightgreen'', ''https://img.shields.io/github/license/openedx/paragon.svg'', ''https://codecov.io/gh/edx/paragon/branch/master/graph/badge.svg?token=x1tZmNduy9'', ''https://codecov.io/gh/edx/paragon'', ''https://img.shields.io/npm/dw/@openedx/paragon'', ''https://www.w3.org/WAI/standards-guidelines/aria/'', ''https://openedx.org/'', ''https://paragon-openedx.netlify.app/'', ''https://openedx.slack.com/archives/C02NR285KV4'', ''https://github.com/openedx/paragon/issues/new?template=blank-issue.md'', ''https://calendar.google.com/calendar/embed?src=c_v86shrnegshsqgp4fj2k94u7bc%40group.calendar.google.com&ctz=America%2FNew_York'', ''https://github.com/openedx/brand-openedx'', ''https://formatjs.io/docs/react-intl/'', ''https://github.com/openedx/paragon/tree/release-22.x'', ''https://paragon-openedx-v22.netlify.app/'', ''https://github.com/openedx/paragon/tree/release-23.x'', ''https://paragon-openedx-v23.netlify.app/'', ''https://github.com/openedx/paragon/tree/next'', ''https://github.com/openedx/paragon/issues'', ''https://github.com/orgs/openedx/projects/43/views/15'', ''https://github.com/openedx/frontend-build'', ''http://eslint.org/docs/user-guide/integrations'', ''http://eslint.org/docs/rules/comma-dangle'', ''https://github.com/evcohen/eslint-plugin-jsx-a11y'', ''https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md'', ''https://github.com/airbnb/enzyme'', ''http://airbnb.io/enzyme/'', ''http://airbnb.io/enzyme/docs/api/index.html'', ''https://github.com/openedx/paragon/blob/master/src/Dropdown/deprecated/Dropdown.test.jsx'', ''https://github.com/openedx/paragon/blob/master/src/CheckBox/CheckBox.test.jsx'', ''https://github.com/semantic-release/semantic-release'', ''https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular'', ''https://github.com/conventional-changelog/commitlint/blob/master/%40commitlint/config-angular-type-enum/index.js'', ''https://github.com/openedx/frontend-app-payment/pull/48'', ''https://backstage.openedx.org/catalog/default/component/paragon'', ''https://github.com/amzn/style-dictionary'', ''https://github.com/openedx/frontend-platform/pull/440'']',1,1,0,0,'','',1,'2026-04-22','2025-10-10','10',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-ios',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,16,'{"total_duration": "10793 minutes 28 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2023-03-13 09:15:29','main','The mobile app for iOS for the Open EdX Platform.',13069,31,1,0,0,0,0,0,0,'2026-05-28 08:47:00','Apache License 2.0',3,0,0,0,0,537,433,70039,1844,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-atlas: 504'', ''https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403'', ''https://app.transifex.com/open-edx/openedx-translations/openedx-app-ios/: 404'']',0,'[''https://github.com/openedx/openedx-app-ios.git'', ''https://docs.openedx.org/en/latest/developers/concepts/oep58.html'', ''https://github.com/openedx/openedx-translations'', ''https://github.com/openedx/openedx-translations/blob/6448167e9695a921f003ff6bd8f40f006a2d6743/translations/openedx-app-ios/I18N/I18N/uk.lproj/Localizable.strings'', ''https://github.com/openedx/openedx-atlas/issues/20'', ''https://github.com/apps/transifex-integration'', ''https://github.com/openedx/openedx-app-ios/blob/main/LICENSE'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-authn',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,41,0,'',0,'{}',30,11,'{"@edx/browserslist-config": "^1.1.1", "@edx/typescript-config": "^1.1.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "^6.9.1", "babel-plugin-formatjs": "10.5.41", "eslint-plugin-import": "2.32.0", "glob": "7.2.3", "history": "5.3.0", "jest": "30.3.0", "react-test-renderer": "^18.3.1", "ts-jest": "^29.4.0"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.6.0", "@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-brands-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.4.2", "@optimizely/react-sdk": "^2.9.1", "@tanstack/react-query": "^5.90.19", "@testing-library/react": "^16.2.0", "algoliasearch": "^4.14.3", "algoliasearch-helper": "^3.26.0", "classnames": "2.5.1", "core-js": "3.43.0", "fastest-levenshtein": "1.0.16", "form-urlencoded": "6.1.6", "prop-types": "15.8.1", "query-string": "7.1.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "6.1.0", "react-loading-skeleton": "3.5.0", "react-responsive": "8.2.0", "react-router": "6.30.3", "react-router-dom": "6.30.3", "react-zendesk": "^0.1.13", "regenerator-runtime": "0.14.1", "universal-cookie": "7.2.2"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,50,'{"total_duration": "2 minutes 31 seconds", "checks": [{"name": "tests", "duration": "2 minutes 31 seconds"}, {"name": "autoupdate", "duration": "0 minutes 20 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2020-09-28 13:08:13','master','Open edX micro-frontend application for new login and registration experience.',17283,261,1,0,0,0,0,0,0,'2026-06-07 05:15:47','GNU AGPLv3',19,1,0,0,1165,555109,1657,0,0,0,0,0,0,0,0,0,'@edx/frontend-app-authn','openedx',0,'[''https://support.example.com: HTTPSConnectionPool(host=\''support.example.com\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''support.example.com\'', port=443): Failed to resolve \''support.example.com\'' ([Errno -5] No address associated with hostname)"))'', ''https://github.com/openedx/frontend-app-authn/blob/master/LICENSE: 504'', ''https://travis-ci.com/edx/frontend-app-authn: 415'', ''https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml: 504'', ''https://github.com/semantic-release/semantic-release: 504'']',0,'[''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file'', ''https://github.com/edx/frontend-app-authn.git'', ''https://github.com/nvm-sh/nvm'', ''https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html'', ''https://github.com/openedx/frontend-app-authn/blob/master/.github/pull_request_template.md'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-authn/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/group/2u-infinity'', ''https://api.travis-ci.com/edx/frontend-app-authn.svg?branch=master'', ''https://img.shields.io/codecov/c/github/edx/frontend-app-authn'', ''https://codecov.io/gh/edx/frontend-app-authn'', ''https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'']',1,1,0,0,'','',1,'2026-03-27','2024-12-05','8',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-marketing',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "1388 minutes 55 seconds", "checks": [{"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2023-04-19 17:26:44','main','Marketing Working Group',6,2,1,0,0,0,0,0,0,'2025-10-30 15:17:11',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/didkit-python',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "6 minutes 54 seconds", "checks": [{"name": "windows", "duration": "6 minutes 54 seconds"}, {"name": "linux-x86_64", "duration": "6 minutes 6 seconds"}, {"name": "CI (3.11)", "duration": "6 minutes 0 seconds"}, {"name": "CI (3.10)", "duration": "5 minutes 40 seconds"}, {"name": "CI (3.12)", "duration": "5 minutes 35 seconds"}, {"name": "macos (aarch64)", "duration": "5 minutes 5 seconds"}, {"name": "macos (x64)", "duration": "4 minutes 47 seconds"}, {"name": "linux-aarch64", "duration": "4 minutes 41 seconds"}, {"name": "Release", "duration": "0 minutes 0 seconds"}]}','Other','2026-03-12 15:11:16','main','Python bindings for DIDKit.',183,1,1,0,0,0,1,0,0,'2026-05-30 14:52:54',NULL,0,1,0,0,0,0,0,7345,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://badge.fury.io/py/openedx-didkit.svg'', ''https://badge.fury.io/py/openedx-didkit'', ''https://spruceid.dev/docs/didkit/'', ''https://github.com/spruceid/ssi'', ''https://pypi.org/project/openedx-didkit/'', ''https://github.com/GlugovGrGlib/didkit-python'', ''https://github.com/spruceid/didkit-python'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-component-footer',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,26,0,'',0,'{}',8,18,'{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/browserslist-config": "^1.1.1", "@edx/frontend-platform": "^8.2.1", "@openedx/frontend-build": "^14.3.1", "@openedx/paragon": "^23.3.0", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^16.2.0", "@testing-library/dom": "^10.4.0", "@testing-library/user-event": "^14.6.1", "prop-types": "15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "8.1.3", "react-router-dom": "6.30.2", "react-test-renderer": "18.3.1", "redux": "4.2.1", "semantic-release": "21.1.2", "ts-jest": "^29.1.2"}','{"@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-brands-svg-icons": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/frontend-plugin-framework": "^1.7.0", "classnames": "^2.5.1", "lodash": "^4.17.21"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,22,'{"total_duration": "2 minutes 21 seconds", "checks": [{"name": "Release", "duration": "2 minutes 21 seconds"}, {"name": "tests", "duration": "1 minutes 48 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2019-01-02 20:14:34','master','Site footer component for edX frontend apps.',16297,155,1,0,0,0,0,0,0,'2026-06-04 18:40:07','GNU AGPLv3',15,1,0,0,252,40107,1299,0,0,0,0,0,0,0,0,0,'@edx/frontend-component-footer','openedx',0,'[''https://edx.github.io/frontend-platform/module-Internationalization.html: 404'', ''https://travis-ci.com/edx/frontend-component-footer: 415'']',0,'[''https://github.com/openedx/devstack'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx'', ''https://github.com/openedx/frontend-component-footer.git'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-component-footer/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'', ''https://api.travis-ci.com/edx/frontend-component-footer.svg?branch=master'', ''https://img.shields.io/codecov/c/github/edx/frontend-component-footer'', ''https://img.shields.io/npm/v/@edx/frontend-component-footer.svg'', ''https://img.shields.io/npm/dt/@edx/frontend-component-footer.svg'', ''https://img.shields.io/npm/l/@edx/frontend-component-footer.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'', ''https://github.com/semantic-release/semantic-release'']',1,1,0,0,'','',1,'2026-04-06','2022-11-21','9',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/codejail-service',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,138,0,'[]',0,'',0,0,'','',58,'["typing-extensions==4.15.0", "gunicorn==23.0.0", "openedx-calc==5.0.0", "django-crum==0.7.9", "python-slugify==8.0.4", "matplotlib==3.10.8", "sympy==1.14.0", "psutil==7.1.0", "django==4.2.24", "edx-codejail==4.0.0", "stevedore==5.5.0", "networkx==3.6.1", "attrs==25.3.0", "chem==2.0.0", "jinja2==3.1.6", "djangorestframework==3.16.1", "scipy==1.17.1", "pycparser==3.0", "jsonschema==4.25.1", "codejail-includes==2.0.0", "django-waffle==5.0.0", "edx-django-utils==8.0.0", "sqlparse==0.5.3", "pillow==12.1.1", "markupsafe==3.0.2", "contourpy==1.3.3", "markupsafe==3.0.3", "lxml[html-clean]==5.3.2", "cffi==2.0.0", "kiwisolver==1.5.0", "edx-toggles==5.4.1", "lxml-html-clean==0.4.4", "numpy==1.26.4", "python-dateutil==2.9.0.post0", "pyyaml==6.0.2", "six==1.17.0", "pyparsing==3.3.2", "text-unidecode==1.3", "asgiref==3.9.1", "pycparser==2.23", "fonttools==4.62.1", "click==8.3.0", "jsonschema-specifications==2025.9.1", "mpmath==1.3.0", "joblib==1.5.3", "cycler==0.12.1", "packaging==26.0", "code-annotations==2.3.0", "pynacl==1.6.0", "referencing==0.36.2", "rpds-py==0.27.1", "packaging==25.0", "click==8.3.1", "nltk==3.9.3", "regex==2026.2.28", "tqdm==4.67.3", "cryptography==45.0.7", "random2==1.0.2"]',138,'["cachetools==6.2.0", "openedx-calc==5.0.0", "mdurl==0.1.2", "sympy==1.14.0", "platformdirs==4.4.0", "nh3==0.3.0", "jinja2==3.1.6", "pylint-django==2.6.1", "isort==6.0.1", "pillow==12.1.1", "ddt==1.7.2", "pylint-celery==0.3", "markdown-it-py==4.0.0", "lxml[html-clean]==5.3.2", "edx-toggles==5.4.1", "lxml-html-clean==0.4.4", "python-dateutil==2.9.0.post0", "pyyaml==6.0.2", "iniconfig==2.1.0", "pyparsing==3.3.2", "text-unidecode==1.3", "soupsieve==2.8", "dill==0.4.0", "cycler==0.12.1", "pip-tools==7.5.0", "pynacl==1.6.0", "packaging==25.0", "nltk==3.9.3", "random2==1.0.2", "setuptools==80.9.0", "click-log==0.4.0", "alabaster==1.0.0", "roman-numerals-py==3.1.0", "typing-extensions==4.15.0", "secretstorage==3.4.0", "django-crum==0.7.9", "babel==2.17.0", "pip==24.2", "wheel==0.45.1", "psutil==7.1.0", "edx-codejail==4.0.0", "distlib==0.4.0", "chardet==5.2.0", "attrs==25.3.0", "chem==2.0.0", "pycparser==3.0", "pylint==3.3.8", "restructuredtext-lint==1.4.0", "colorama==0.4.6", "tox==4.30.2", "pluggy==1.6.0", "virtualenv==20.34.0", "sphinxcontrib-jsmath==1.0.1", "rich==14.1.0", "pylint-plugin-utils==0.9.0", "markupsafe==3.0.3", "keyring==25.6.0", "docutils==0.22.2", "fonttools==4.62.1", "asgiref==3.9.1", "sphinxcontrib-serializinghtml==2.0.0", "sphinxcontrib-htmlhelp==2.1.0", "pytest==8.4.2", "urllib3==2.5.0", "filelock==3.19.1", "readme-renderer==44.0", "gunicorn==23.0.0", "pycodestyle==2.14.0", "pyproject-api==1.9.1", "matplotlib==3.10.8", "pygments==2.19.2", "sphinxcontrib-applehelp==2.0.0", "django==4.2.24", "stevedore==5.5.0", "accessible-pygments==0.0.5", "djangorestframework==3.16.1", "docutils==0.21.2", "codejail-includes==2.0.0", "django-waffle==5.0.0", "pytest-cov==7.0.0", "sphinx==8.2.3", "more-itertools==10.8.0", "sphinxcontrib-devhelp==2.0.0", "cryptography==46.0.1", "rfc3986==2.0.0", "coverage[toml]==7.10.7", "markupsafe==3.0.2", "build==1.3.0", "imagesize==1.4.1", "numpy==1.26.4", "pycparser==2.23", "twine==6.2.0", "tomlkit==0.13.3", "jaraco-functools==4.3.0", "diff-cover==9.6.0", "pydata-sphinx-theme==0.15.4", "mpmath==1.3.0", "rpds-py==0.27.1", "referencing==0.36.2", "pytest-django==4.11.1", "id==1.5.0", "click==8.3.1", "cryptography==45.0.7", "doc8==2.0.0", "requests==2.32.5", "sphinx-book-theme==1.1.4", "python-slugify==8.0.4", "requests-toolbelt==1.0.0", "jaraco-classes==3.4.0", "networkx==3.6.1", "scipy==1.17.1", "sphinxcontrib-qthelp==2.0.0", "pyproject-hooks==1.2.0", "certifi==2025.8.3", "jsonschema==4.25.1", "edx-django-utils==8.0.0", "charset-normalizer==3.4.3", "sqlparse==0.5.3", "astroid==3.3.11", "contourpy==1.3.3", "cffi==2.0.0", "kiwisolver==1.5.0", "six==1.17.0", "beautifulsoup4==4.13.5", "jeepney==0.9.0", "click==8.3.0", "idna==3.10", "pydocstyle==6.3.0", "jaraco-context==6.0.1", "jsonschema-specifications==2025.9.1", "mccabe==0.7.0", "joblib==1.5.3", "packaging==26.0", "code-annotations==2.3.0", "edx-lint==5.6.0", "regex==2026.2.28", "tqdm==4.67.3", "snowballstemmer==3.0.1"]',7,'["edx-toggles", "pytest-django", "edx-django-utils", "djangorestframework", "code-annotations", "django-waffle", "pylint-django"]',8,'["edx-toggles", "django-crum", "pytest-django", "edx-django-utils", "djangorestframework", "code-annotations", "django-waffle", "pylint-django"]',4,'["edx-toggles", "code-annotations", "edx-django-utils", "django-waffle"]',1,NULL,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,4,'{"total_duration": "0 minutes 36 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 36 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 35 seconds"}, {"name": "tests (ubuntu-latest, 3.12, py312)", "duration": "0 minutes 34 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2025-01-13 21:44:45','main','Experimental repository for refactoring codejail for containerization',229,3,1,0,0,0,0,0,0,'2026-05-19 10:43:24','Apache License 2.0',1,1,0,0,0,0,4039,89024,0,0,1,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/codejail: 504'', ''https://docs.openedx.org/projects/codejail-service: 404'']',1,'[''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://github.com/openedx/codejail-service/issues/3'', ''https://discuss.openedx.org'', ''https://github.com/openedx/codejail-service/issues'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/codejail-service'', ''https://github.com/openedx/codejail-service/workflows/Python%20CI/badge.svg'', ''https://github.com/openedx/codejail-service/actions'', ''https://codecov.io/github/openedx/codejail-service/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/codejail-service?branch=main'', ''https://readthedocs.org/projects/codejail-service/badge/?version=latest'', ''https://img.shields.io/github/license/openedx/codejail-service.svg'', ''https://github.com/openedx/codejail-service/blob/main/LICENSE.txt'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',1,NULL,NULL,'0',0,1,0,1,NULL,0,NULL,'[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-drf-extensions',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,90,0,'[]',0,'',0,0,'','',26,'["pynacl==1.6.0", "cffi==2.0.0", "requests==2.32.5", "djangorestframework==3.16.1", "charset-normalizer==3.4.3", "stevedore==5.5.0", "dnspython==2.8.0", "pyjwt[crypto]==2.10.1", "drf-jwt==1.19.2", "cryptography==46.0.2", "edx-django-utils==8.0.1", "django-waffle==5.0.0", "idna==3.10", "semantic-version==2.10.0", "psutil==7.1.0", "pymongo==4.15.3", "edx-opaque-keys==3.0.0", "sqlparse==0.5.3", "django-crum==0.7.9", "pycparser==2.23", "typing-extensions==4.15.0", "urllib3==2.5.0", "django==4.2.25", "click==8.3.0", "asgiref==3.10.0", "certifi==2025.10.5"]',90,'["snowballstemmer==3.0.1", "cffi==2.0.0", "tzdata==2025.2", "dill==0.4.0", "dnspython==2.8.0", "httpretty==1.1.4", "distlib==0.4.0", "babel==2.17.0", "coverage[toml]==7.10.7", "tomlkit==0.13.3", "chardet==5.2.0", "idna==3.10", "soupsieve==2.8", "virtualenv==20.35.1", "sphinx-book-theme==1.1.3", "edx-opaque-keys==3.0.0", "iniconfig==2.1.0", "sphinxcontrib-serializinghtml==2.0.0", "pylint-plugin-utils==0.9.0", "factory-boy==2.12.0", "beautifulsoup4==4.14.2", "six==1.17.0", "pynacl==1.6.0", "setuptools==80.9.0", "pygments==2.19.2", "djangorestframework==3.16.1", "pytest-cov==7.0.0", "charset-normalizer==3.4.3", "faker==37.11.0", "pluggy==1.6.0", "stevedore==5.5.0", "pyjwt[crypto]==2.10.1", "alabaster==0.7.16", "click-log==0.4.0", "cryptography==46.0.2", "platformdirs==4.5.0", "django-waffle==5.0.0", "pylint-celery==0.3", "edx-lint==5.6.0", "semantic-version==2.10.0", "psutil==7.1.0", "tox==4.31.0", "pymongo==4.15.3", "isort==6.1.0", "sphinxcontrib-applehelp==2.0.0", "ddt==1.7.2", "certifi==2025.10.5", "pip-tools==7.5.1", "imagesize==1.4.1", "pyproject-hooks==1.2.0", "requests==2.32.5", "docutils==0.19", "pyproject-api==1.10.0", "pydata-sphinx-theme==0.15.4", "wheel==0.45.1", "edx-django-utils==8.0.1", "python-slugify==8.0.4", "pytest-django==4.11.1", "sphinxcontrib-htmlhelp==2.1.0", "pylint==3.3.9", "django-crum==0.7.9", "colorama==0.4.6", "jinja2==3.1.6", "django==4.2.25", "click==8.3.0", "asgiref==3.10.0", "build==1.3.0", "cachetools==6.2.0", "pip==25.2", "sphinx==5.3.0", "packaging==25.0", "drf-jwt==1.19.2", "accessible-pygments==0.0.5", "filelock==3.20.0", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-qthelp==2.0.0", "pylint-django==2.6.1", "code-annotations==2.3.0", "sphinxcontrib-devhelp==2.0.0", "sqlparse==0.5.3", "pycparser==2.23", "typing-extensions==4.15.0", "urllib3==2.5.0", "text-unidecode==1.3", "mccabe==0.7.0", "astroid==3.3.11", "pycodestyle==2.14.0", "markupsafe==3.0.3", "pytest==8.4.2", "pyyaml==6.0.3"]',8,'["pylint-django", "code-annotations", "edx-opaque-keys", "edx-django-utils", "djangorestframework", "django-waffle", "factory-boy", "pytest-django"]',10,'["drf-jwt", "pylint-django", "django-crum", "code-annotations", "edx-opaque-keys", "edx-django-utils", "djangorestframework", "django-waffle", "factory-boy", "pytest-django"]',4,'["edx-opaque-keys", "edx-django-utils", "django-waffle", "code-annotations"]',1,NULL,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,44,'{"total_duration": "1 minutes 30 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": "1 minutes 30 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42-drflatest)", "duration": "1 minutes 22 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 58 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 45 seconds"}]}','Other','2016-03-11 12:28:52','master','edX extensions for Django REST Framework',796,22,1,0,0,0,0,0,0,'2026-05-30 15:13:08','Apache License 2.0',12,1,0,0,0,0,3063,221404,0,1,1,0,0,1,0,1,'','openedx',4,'[]',0,'[''https://github.com/openedx/edx-drf-extensions/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-drf-extensions/actions?query=workflow%3A%22Python+CI%22'', ''https://codecov.io/github/edx/edx-drf-extensions/coverage.svg?branch=master'', ''https://codecov.io/github/edx/edx-drf-extensions?branch=master'', ''https://readthedocs.org/projects/edx-drf-extensions/badge/?version=latest'', ''http://edx-drf-extensions.readthedocs.io/en/latest/'', ''https://www.django-rest-framework.org/'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-drf-extensions','[''3'', ''3.11'']','https://github.com/openedx/edx-drf-extensions',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-translations',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,41,0,'[]',0,'{}',0,1,'{"@formatjs/cli": "^6.7.2"}','{}',0,'[]',40,'["responses==0.25.8", "setuptools==80.9.0", "pytest-cov==7.0.0", "click==8.3.1", "pip==25.3", "pluggy==1.6.0", "build==1.3.0", "future==1.0.0", "regex==2025.11.3", "transifex-python==3.7.0", "text-unidecode==1.3", "iniconfig==2.3.0", "packaging==25.0", "edx-i18n-tools==1.9.0", "requests==2.32.5", "charset-normalizer==3.4.4", "django==5.2.9", "python-slugify==8.0.4", "urllib3==2.6.2", "asttokens==3.0.1", "idna==3.11", "pyproject-hooks==1.2.0", "transifex-client==0.12.5", "pyseeyou==1.0.2", "coverage[toml]==7.13.0", "parsimonious==0.11.0", "certifi==2025.11.12", "path==16.16.0", "sqlparse==0.5.4", "pygments==2.19.2", "wheel==0.45.1", "pip-tools==7.5.2", "six==1.17.0", "pytest==9.0.2", "asgiref==3.11.0", "lxml-html-clean==0.4.3", "toolz==1.1.0", "lxml[html-clean]==6.0.2", "pyyaml==6.0.3", "polib==1.2.0"]',1,'["edx-i18n-tools"]',1,'["edx-i18n-tools"]',1,'["edx-i18n-tools"]',0,NULL,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,0,0,0,1,1,1,71,'{"total_duration": "", "checks": []}','Other','2022-08-03 20:53:06','main','Open edX Translation files in sync with Transifex',481580,159,1,0,0,0,0,0,0,'2026-06-08 01:57:48','Creative Commons Attribution Share Alike 4.0 International',57,0,0,0,0,0,2291,52681,1375,0,0,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-atlas: 504'', ''https://github.com/openedx/openedx-translations/actions/workflows/sync-translations.yml: 504'', ''https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403'', ''https://github.com/openedx/openedx-translations/tree/main/.github/workflows: 504'']',0,'[''https://app.transifex.com/open-edx/'', ''https://github.com/openedx/open-edx-proposals/pull/367'', ''https://docs.tutor.edly.io/tutorials/nightly.html'', ''https://github.com/openedx/openedx-platform'', ''https://docs.tutor.edly.io/'', ''https://github.com/openedx/openedx-platform/tree/release/ulmo'', ''https://github.com/openedx/openedx-translations/blob/main/Makefile'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-events',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,121,0,'[]',0,'',0,0,'','',20,'["dnspython==2.8.0", "attrs==26.1.0", "edx-ccx-keys==2.0.2", "django-waffle==5.0.0", "cffi==2.0.0", "click==8.4.1", "edx-django-utils==8.0.1", "pymongo==4.17.0", "django==5.2.14", "typing-extensions==4.15.0", "six==1.17.0", "sqlparse==0.5.5", "stevedore==5.8.0", "fastavro==1.12.2", "edx-opaque-keys[django]==4.0.0", "psutil==7.2.2", "django-crum==0.7.9", "pynacl==1.6.2", "asgiref==3.11.1", "pycparser==3.0"]',121,'["alabaster==1.0.0", "wheel==0.47.0", "jaraco-context==6.1.2", "soupsieve==2.8.4", "idna==3.17", "coverage[toml]==7.14.1", "ruff==0.15.15", "pycodestyle==2.14.0", "pytest==9.0.3", "babel==2.18.0", "distlib==0.4.0", "edx-django-utils==8.0.1", "pluggy==1.6.0", "watchfiles==1.2.0", "restructuredtext-lint==2.0.2", "sphinxcontrib-jsmath==1.0.1", "pymongo==4.17.0", "rfc3986==2.0.0", "django==5.2.14", "starlette==1.2.1", "tomli-w==1.2.0", "typing-extensions==4.15.0", "ddt==1.7.2", "jinja2==3.1.6", "tomlkit==0.15.0", "platformdirs==4.10.0", "twine==6.2.0", "more-itertools==11.1.0", "uvicorn==0.48.0", "sqlparse==0.5.5", "iniconfig==2.3.0", "cachetools==7.1.4", "pygments==2.20.0", "jaraco-functools==4.5.0", "sphinx-autobuild==2025.8.25", "markdown-it-py==4.2.0", "asgiref==3.11.1", "pylint-django==2.7.0", "gitpython==3.1.50", "requests==2.34.2", "id==1.6.1", "packaging==26.2", "websockets==16.0", "build==1.5.0", "pylint-celery==0.3", "nh3==0.3.5", "pyproject-hooks==1.2.0", "docutils==0.23", "smmap==5.0.3", "requests-toolbelt==1.0.0", "code-annotations==3.0.0", "filelock==3.29.0", "virtualenv==21.4.2", "sphinx-book-theme==1.2.0", "pylint-plugin-utils==0.9.0", "sphinx==9.1.0", "accessible-pygments==0.0.5", "docutils==0.21.2", "mdurl==0.1.2", "pydata-sphinx-theme==0.16.1", "cryptography==48.0.0", "certifi==2026.5.20", "sphinxcontrib-qthelp==2.0.0", "fastavro==1.12.2", "python-discovery==1.4.0", "sphinxcontrib-serializinghtml==2.0.0", "edx-lint==6.1.0", "sphinxcontrib-htmlhelp==2.1.0", "mccabe==0.7.0", "charset-normalizer==3.4.7", "imagesize==2.0.0", "diff-cover==10.3.0", "cffi==2.0.0", "snowballstemmer==3.1.0", "secretstorage==3.5.0", "pip==26.1.2", "jeepney==0.9.0", "isort==8.0.1", "colorama==0.4.6", "six==1.17.0", "setuptools==82.0.1", "edx-opaque-keys[django]==4.0.0", "pylint==4.0.5", "dill==0.4.1", "chardet==7.4.3", "django-crum==0.7.9", "keyring==25.7.0", "pynacl==1.6.2", "sphinx-copybutton==0.5.2", "beautifulsoup4==4.14.3", "markupsafe==3.0.3", "pycparser==3.0", "roman-numerals==4.1.0", "dnspython==2.8.0", "pyproject-api==1.10.1", "rich==15.0.0", "attrs==26.1.0", "pip-tools==7.5.3", "click-log==0.4.0", "edx-ccx-keys==2.0.2", "django-waffle==5.0.0", "sphinxcontrib-mermaid==2.0.2", "sphinxcontrib-applehelp==2.0.0", "doc8==2.0.0", "click==8.4.1", "astroid==4.0.4", "pytest-cov==7.1.0", "text-unidecode==1.3", "sphinxcontrib-devhelp==2.0.0", "h11==0.16.0", "python-slugify==8.0.4", "anyio==4.13.0", "pyyaml==6.0.3", "tox==4.55.0", "stevedore==5.8.0", "jaraco-classes==3.4.0", "psutil==7.2.2", "gitdb==4.0.12", "readme-renderer==44.0", "pytest-django==4.12.0", "urllib3==2.7.0"]',5,'["edx-django-utils", "pytest-django", "pylint-django", "code-annotations", "django-waffle"]',6,'["edx-django-utils", "pytest-django", "django-crum", "pylint-django", "code-annotations", "django-waffle"]',3,'["code-annotations", "edx-django-utils", "django-waffle"]',1,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,25,'{"total_duration": "9671 minutes 18 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 22 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 51 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 44 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 35 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 33 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 29 seconds"}, {"name": "Dependabot", "duration": "0 minutes 17 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 51 seconds"}]}','Other','2021-04-07 23:40:38','main','Open edX events from the Hooks Extensions Framework',1424,32,1,0,0,0,0,0,0,'2026-06-08 06:42:37','Apache License 2.0',11,1,0,0,0,0,5324,292325,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-events/issues: 504'', ''https://github.com/openedx/openedx-events/blob/main/LICENSE.txt: 504'']',1,'[''https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html'', ''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://openedx-events.readthedocs.io/en/latest/'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/openedx-events'', ''https://img.shields.io/pypi/v/openedx-events.svg'', ''https://pypi.python.org/pypi/openedx-events/'', ''https://github.com/openedx/openedx-events/actions/workflows/ci.yml/badge.svg?branch=main'', ''https://github.com/openedx/openedx-events/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/openedx-events/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-events?branch=main'', ''https://readthedocs.org/projects/openedx-events/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/openedx-events.svg'', ''https://img.shields.io/github/license/openedx/openedx-events.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-events','[''3'', ''3.12'']','https://github.com/openedx/openedx-events',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-account',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,60,0,'',0,'{}',53,7,'{"@edx/browserslist-config": "1.5.1", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "14.3.1", "jest-environment-jsdom": "^30.3.0", "react-test-renderer": "^18.3.1", "redux-mock-store": "1.5.5"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/fontawesome-svg-core": "^6.6.0", "@fortawesome/free-brands-svg-icons": "^6.6.0", "@fortawesome/free-regular-svg-icons": "^6.6.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.4.5", "@tensorflow-models/blazeface": "0.1.0", "@tensorflow/tfjs-converter": "4.22.0", "@tensorflow/tfjs-core": "4.22.0", "bowser": "2.14.1", "classnames": "2.5.1", "core-js": "3.49.0", "font-awesome": "4.7.0", "form-urlencoded": "6.1.6", "formdata-polyfill": "4.0.10", "jslib-html5-camera-photo": "3.3.4", "lodash.camelcase": "4.3.0", "lodash.debounce": "4.0.8", "lodash.findindex": "4.6.0", "lodash.get": "4.4.2", "lodash.isempty": "4.4.0", "lodash.merge": "4.6.2", "lodash.omit": "4.18.0", "lodash.pick": "4.4.0", "lodash.pickby": "4.6.0", "lodash.snakecase": "4.1.1", "long": "5.3.2", "memoize-one": "^6.0.0", "prop-types": "15.8.1", "qs": "6.15.0", "react": "18.3.1", "react-dom": "18.3.1", "react-helmet": "6.1.0", "react-redux": "7.2.9", "react-router": "^6.25.1", "react-router-dom": "^6.25.1", "react-router-hash-link": "2.4.3", "react-scrollspy": "3.4.3", "react-transition-group": "4.4.5", "redux": "4.2.1", "redux-devtools-extension": "2.13.9", "redux-logger": "3.0.6", "redux-saga": "1.4.2", "redux-thunk": "2.4.2", "regenerator-runtime": "0.14.1", "reselect": "^5.1.1", "universal-cookie": "7.2.2"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,78,'{"total_duration": "0 minutes 0 seconds", "checks": [{"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2019-04-23 15:40:26','master','Open edX micro-frontend application for managing user account information.',21157,182,1,0,0,0,0,0,0,'2026-06-08 01:21:05','GNU AGPLv3',21,1,0,0,5411,532186,2011,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-account','openedx',0,'[''https://support.example.com: HTTPSConnectionPool(host=\''support.example.com\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''support.example.com\'', port=443): Failed to resolve \''support.example.com\'' ([Errno -5] No address associated with hostname)"))'', ''https://openedx.github.io/frontend-platform/module-Config.html: 404'']',0,'[''https://github.com/openedx/frontend-app-profile'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://support.edx.org/hc/en-us/articles/206212088-What-if-I-did-not-receive-a-password-reset-message'', ''https://github.com/openedx/frontend-app-account.git'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-build'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-account/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'', ''https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml'', ''https://img.shields.io/codecov/c/github/edx/frontend-app-account'', ''https://codecov.io/gh/openedx/frontend-app-account/'', ''https://img.shields.io/npm/v/@edx/frontend-app-account.svg'', ''https://img.shields.io/npm/dt/@edx/frontend-app-account.svg'', ''https://img.shields.io/npm/l/@edx/frontend-app-account.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'', ''https://github.com/semantic-release/semantic-release'']',1,1,0,0,'','',1,'2026-04-06','2025-11-03','5',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/enterprise-access',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,202,0,'[]',0,'',0,0,'','',117,'["stevedore==5.6.0", "zope-event==6.1", "avro==1.12.1", "cattrs==25.3.0", "greenlet==3.3.0", "charset-normalizer==3.4.4", "six==1.17.0", "gunicorn==23.0.0", "uritemplate==4.2.0", "edx-celeryutils==1.4.0", "django-object-actions==5.0.0", "cryptography==46.0.3", "edx-drf-extensions==10.6.0", "itypes==1.2.0", "python-memcached==1.62", "djangorestframework==3.16.1", "code-annotations==2.3.0", "jsonschema-specifications==2025.9.1", "click-didyoumean==0.3.1", "psutil==7.2.1", "djangoql==0.18.1", "analytics-python==1.4.post1", "typing-extensions==4.15.0", "django-crispy-forms==2.5", "pymemcache==4.0.0", "edx-enterprise-subsidy-client==2.0.19", "markupsafe==3.0.3", "monotonic==1.6", "edx-django-utils==8.0.1", "celery==5.6.2", "sqlparse==0.5.5", "django==5.2.10", "django-extensions==4.1", "gevent==25.9.1", "django-crum==0.7.9", "social-auth-core==4.8.3", "coreapi==2.3.3", "backoff==1.10.0", "pynacl==1.6.2", "edx-opaque-keys[django]==3.0.0", "pytz==2025.2", "semantic-version==2.10.0", "pycparser==2.23", "python-dateutil==2.9.0.post0", "edx-toggles==5.4.1", "urllib3==2.6.3", "openedx-events==10.5.0", "click==8.3.1", "dnspython==2.8.0", "python3-openid==3.2.0", "kombu==5.6.2", "wcwidth==0.2.14", "jinja2==3.1.6", "referencing==0.37.0", "coreschema==0.0.4", "certifi==2026.1.4", "tzlocal==5.3.1", "redis==7.1.0", "pygments==2.19.2", "mysqlclient==2.2.7", "django-cors-headers==4.9.0", "django-log-request-id==2.1.0", "attrs==25.4.0", "simplejson==3.20.2", "edx-auth-backends==4.6.2", "requests-oauthlib==2.0.0", "jsonfield==3.2.0", "idna==3.11", "zope-interface==8.2", "vine==5.1.0", "drf-jwt==1.19.2", "drf-spectacular==0.29.0", "fastavro==1.12.1", "django-rest-swagger==2.2.0", "requests==2.32.5", "oauthlib==3.3.1", "tzdata==2025.3", "django-model-utils==5.0.0", "cffi==2.0.0", "prompt-toolkit==3.0.52", "edx-ccx-keys==2.0.2", "pymongo==4.16.0", "django-waffle==5.0.0", "packaging==25.0", "edx-event-bus-kafka==6.1.0", "inflection==0.5.1", "jsonschema==4.26.0", "asgiref==3.11.0", "openapi-codec==1.3.2", "stripe==14.1.0", "text-unidecode==1.3", "confluent-kafka[avro,schema-registry]==2.6.1", "crispy-bootstrap5==2025.6", "drf-yasg==1.21.11", "click-plugins==1.1.1.2", "billiard==4.2.4", "edx-rest-api-client==6.2.0", "rpds-py==0.30.0", "social-auth-app-django==5.7.0", "edx-braze-client==0.2.5", "defusedxml==0.7.1", "ply==3.11", "pyjwt[crypto]==2.10.1", "django-celery-results==2.6.0", "django-countries==8.2.0", "djangorestframework-csv==3.0.2", "edx-django-release-util==1.5.0", "amqp==5.3.1", "pyyaml==6.0.3", "click-repl==0.3.0", "edx-rbac==2.1.0", "jsonfield2==4.0.0.post0", "python-slugify==8.0.4", "django-simple-history==3.11.0", "django-filter==25.2", "edx-api-doc-tools==2.1.0", "rules==3.5"]',202,'["stevedore==5.6.0", "alabaster==1.0.0", "markdown-it-py==4.0.0", "tomlkit==0.13.3", "zope-event==6.1", "avro==1.12.1", "cattrs==25.3.0", "six==1.17.0", "charset-normalizer==3.4.4", "requests-toolbelt==1.0.0", "greenlet==3.3.0", "doc8==2.0.0", "gunicorn==23.0.0", "uritemplate==4.2.0", "polib==1.2.0", "edx-celeryutils==1.4.0", "django-object-actions==5.0.0", "cryptography==46.0.3", "edx-drf-extensions==10.6.0", "itypes==1.2.0", "jaraco-classes==3.4.0", "python-memcached==1.62", "djangorestframework==3.16.1", "sphinxcontrib-htmlhelp==2.1.0", "lxml[html-clean]==6.0.2", "code-annotations==2.3.0", "pydocstyle==6.3.0", "nh3==0.3.2", "jsonschema-specifications==2025.9.1", "lxml-html-clean==0.4.3", "click-didyoumean==0.3.1", "path==16.16.0", "sphinxcontrib-devhelp==2.0.0", "docutils==0.22.4", "psutil==7.2.1", "twine==6.2.0", "dill==0.4.0", "pyproject-api==1.10.0", "djangoql==0.18.1", "analytics-python==1.4.post1", "ddt==1.7.2", "typing-extensions==4.15.0", "django-crispy-forms==2.5", "pymemcache==4.0.0", "edx-enterprise-subsidy-client==2.0.19", "markupsafe==3.0.3", "freezegun==1.5.5", "django-debug-toolbar==6.1.0", "sphinx-book-theme==1.1.4", "monotonic==1.6", "edx-django-utils==8.0.1", "roman-numerals==4.1.0", "pydata-sphinx-theme==0.15.4", "mccabe==0.7.0", "celery==5.6.2", "sqlparse==0.5.5", "django==5.2.10", "django-extensions==4.1", "jaraco-context==6.0.2", "gevent==25.9.1", "django-crum==0.7.9", "social-auth-core==4.8.3", "coreapi==2.3.3", "backoff==1.10.0", "pynacl==1.6.2", "edx-opaque-keys[django]==3.0.0", "pytz==2025.2", "cachetools==6.2.4", "semantic-version==2.10.0", "diff-cover==10.2.0", "restructuredtext-lint==2.0.2", "secretstorage==3.5.0", "pycparser==2.23", "rich==14.2.0", "docutils==0.21.2", "pycodestyle==2.14.0", "python-dateutil==2.9.0.post0", "edx-toggles==5.4.1", "urllib3==2.6.3", "beautifulsoup4==4.14.3", "openedx-events==10.5.0", "click==8.3.1", "dnspython==2.8.0", "build==1.4.0", "python3-openid==3.2.0", "chardet==5.2.0", "kombu==5.6.2", "wcwidth==0.2.14", "babel==2.17.0", "iniconfig==2.3.0", "jinja2==3.1.6", "edx-lint==5.6.0", "jaraco-functools==4.4.0", "referencing==0.37.0", "coreschema==0.0.4", "certifi==2026.1.4", "tzlocal==5.3.1", "redis==7.1.0", "pygments==2.19.2", "sphinxcontrib-jsmath==1.0.1", "click-log==0.4.0", "sphinxcontrib-applehelp==2.0.0", "mysqlclient==2.2.7", "django-cors-headers==4.9.0", "faker==40.1.0", "dictdiffer==0.9.0", "django-log-request-id==2.1.0", "attrs==25.4.0", "readme-renderer==44.0", "simplejson==3.20.2", "edx-auth-backends==4.6.2", "mdurl==0.1.2", "accessible-pygments==0.0.5", "requests-oauthlib==2.0.0", "isort==7.0.0", "jsonfield==3.2.0", "idna==3.11", "zope-interface==8.2", "vine==5.1.0", "fastavro==1.12.1", "distlib==0.4.0", "drf-jwt==1.19.2", "drf-spectacular==0.29.0", "django-rest-swagger==2.2.0", "setuptools==80.9.0", "requests==2.32.5", "pip==25.3", "oauthlib==3.3.1", "pylint==4.0.4", "pylint-celery==0.3", "tzdata==2025.3", "sphinxcontrib-qthelp==2.0.0", "sphinx==9.1.0", "pip-tools==7.5.2", "virtualenv==20.36.1", "tox==4.34.1", "django-model-utils==5.0.0", "cffi==2.0.0", "edx-i18n-tools==1.9.0", "soupsieve==2.8.1", "prompt-toolkit==3.0.52", "django-dynamic-fixture==4.0.1", "edx-ccx-keys==2.0.2", "pylint-django==2.7.0", "pymongo==4.16.0", "sphinxcontrib-serializinghtml==2.0.0", "django-waffle==5.0.0", "rfc3986==2.0.0", "packaging==25.0", "platformdirs==4.5.1", "edx-event-bus-kafka==6.1.0", "inflection==0.5.1", "jsonschema==4.26.0", "asgiref==3.11.0", "pytest-django==4.11.1", "pytest-dictsdiff==0.5.8", "openapi-codec==1.3.2", "factory-boy==3.3.3", "stripe==14.1.0", "text-unidecode==1.3", "confluent-kafka[avro,schema-registry]==2.6.1", "pytest-cov==7.0.0", "crispy-bootstrap5==2025.6", "drf-yasg==1.21.11", "click-plugins==1.1.1.2", "jeepney==0.9.0", "imagesize==1.4.1", "billiard==4.2.4", "edx-rest-api-client==6.2.0", "keyring==25.7.0", "rpds-py==0.30.0", "social-auth-app-django==5.7.0", "edx-braze-client==0.2.5", "defusedxml==0.7.1", "ply==3.11", "pyjwt[crypto]==2.10.1", "pylint-plugin-utils==0.9.0", "django-celery-results==2.6.0", "django-countries==8.2.0", "djangorestframework-csv==3.0.2", "edx-django-release-util==1.5.0", "id==1.5.0", "amqp==5.3.1", "coverage[toml]==7.13.1", "pyyaml==6.0.3", "astroid==4.0.3", "click-repl==0.3.0", "edx-rbac==2.1.0", "pluggy==1.6.0", "snowballstemmer==3.0.1", "jsonfield2==4.0.0.post0", "colorama==0.4.6", "pyproject-hooks==1.2.0", "python-slugify==8.0.4", "django-simple-history==3.11.0", "filelock==3.20.3", "pytest==9.0.2", "more-itertools==10.8.0", "django-filter==25.2", "wheel==0.45.1", "edx-api-doc-tools==2.1.0", "rules==3.5"]',25,'["django-waffle", "pytest-django", "django-object-actions", "factory-boy", "edx-drf-extensions", "django-crispy-forms", "edx-toggles", "django-celery-results", "djangorestframework", "edx-celeryutils", "django-debug-toolbar", "edx-rest-api-client", "edx-api-doc-tools", "code-annotations", "django-filter", "edx-django-utils", "edx-auth-backends", "django-extensions", "edx-i18n-tools", "social-auth-app-django", "django-cors-headers", "django-countries", "pylint-django", "edx-rbac", "edx-django-release-util"]',35,'["django-waffle", "pytest-django", "django-rest-swagger", "django-object-actions", "factory-boy", "django-model-utils", "edx-drf-extensions", "django-crispy-forms", "django-dynamic-fixture", "django-crum", "edx-toggles", "djangorestframework-csv", "django-celery-results", "djangorestframework", "edx-celeryutils", "django-debug-toolbar", "edx-rest-api-client", "django-simple-history", "edx-api-doc-tools", "code-annotations", "rules", "django-filter", "edx-django-utils", "jsonfield", "edx-auth-backends", "django-extensions", "edx-i18n-tools", "social-auth-app-django", "django-cors-headers", "django-countries", "drf-jwt", "drf-yasg", "pylint-django", "edx-rbac", "edx-django-release-util"]',20,'["django-waffle", "edx-drf-extensions", "django-crispy-forms", "edx-toggles", "django-celery-results", "edx-celeryutils", "django-debug-toolbar", "edx-rest-api-client", "edx-api-doc-tools", "code-annotations", "django-filter", "edx-django-utils", "edx-auth-backends", "django-extensions", "edx-i18n-tools", "social-auth-app-django", "django-cors-headers", "django-countries", "edx-rbac", "edx-django-release-util"]',1,NULL,1,0,1,1,0,0,1,1,1,1,0,0,1,1,1,0,1,0,1,1,1,78,'{"total_duration": "12235 minutes 39 seconds", "checks": [{"name": "tests (3.12, pinned)", "duration": "11 minutes 28 seconds"}, {"name": "tests (3.12, 5.2)", "duration": "11 minutes 27 seconds"}, {"name": "upgrade_requirements (3.12)", "duration": "2 minutes 19 seconds"}, {"name": "upgrade_requirements (3.12)", "duration": "2 minutes 5 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2022-01-07 21:05:23','main','Service to manage access to content for enterprise users',8125,18,1,0,0,0,0,0,0,'2026-06-08 03:18:24','GNU AGPLv3',22,1,0,0,4135,0,10959,3236104,3206,1,1,0,0,1,0,0,'','openedx',5,'[''https://github.com/edx/devstack: 504'', ''https://openedx-slack-invite.herokuapp.com/: 404'', ''https://github.com/edx/enterprise-access/workflows/Python%20CI/badge.svg?branch=main: 404'', ''https://enterprise-access.readthedocs.io/en/latest/: 404'']',1,'[''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://discuss.openedx.org'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://img.shields.io/pypi/v/enterprise-access.svg'', ''https://pypi.python.org/pypi/enterprise-access/'', ''https://github.com/edx/enterprise-access/actions'', ''https://codecov.io/github/edx/enterprise-access/coverage.svg?branch=main'', ''https://codecov.io/github/edx/enterprise-access?branch=main'', ''https://readthedocs.org/projects/enterprise-access/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/enterprise-access.svg'', ''https://img.shields.io/github/license/edx/enterprise-access.svg'', ''https://github.com/edx/enterprise-access/blob/main/LICENSE.txt'']',1,1,0,0,'','',1,NULL,NULL,'0',0,1,0,1,NULL,0,NULL,'[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/RecommenderXBlock',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,26,0,'[]',0,'',0,0,'','',17,'["appdirs==1.4.4", "webencodings==0.5.1", "webob==1.8.9", "web-fragments==3.1.0", "asgiref==3.11.1", "six==1.17.0", "bleach==6.3.0", "pyyaml==6.0.3", "edx-i18n-tools==1.9.0", "path==16.16.0", "lxml-html-clean==0.4.4", "sqlparse==0.5.5", "lxml[html-clean]==6.0.2", "django==5.2.12", "simplejson==3.20.2", "polib==1.2.0", "fs==2.4.16"]',26,'["build==1.4.0", "pyyaml==6.0.3", "pip-tools==7.5.3", "simplejson==3.20.2", "lxml-html-clean==0.4.4", "pycodestyle==2.14.0", "web-fragments==3.1.0", "setuptools==82.0.0", "six==1.17.0", "bleach==6.3.0", "edx-i18n-tools==1.9.0", "path==16.16.0", "sqlparse==0.5.5", "django==5.2.12", "fs==2.4.16", "click==8.3.1", "appdirs==1.4.4", "webencodings==0.5.1", "wheel==0.46.3", "pip==26.0.1", "lxml[html-clean]==6.0.2", "webob==1.8.9", "asgiref==3.11.1", "pyproject-hooks==1.2.0", "packaging==26.0", "polib==1.2.0"]',2,'["web-fragments", "edx-i18n-tools"]',2,'["web-fragments", "edx-i18n-tools"]',2,'["web-fragments", "edx-i18n-tools"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,0,1,0,1,0,0,1,0,0,29,'{"total_duration": "12191 minutes 22 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 52 seconds"}, {"name": "Dependabot", "duration": "0 minutes 48 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 34 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 16 seconds"}, {"name": "Tests (ubuntu-latest, 3.12)", "duration": "0 minutes 12 seconds"}]}','Other','2017-07-07 15:37:29','master','edX: An XBlock to recommend resources to other students, written by Daniel Li, under my supervision',1423,15,1,0,0,0,0,0,0,'2026-05-30 13:37:31','GNU AGPLv3',4,1,17972,0,19728,70007,1429,56828,0,0,0,0,0,0,0,0,'','openedx',3,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,'recommender-xblock','[''3'', ''3.12'']','https://github.com/openedx/RecommenderXBlock',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-toggles',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,112,0,'[]',0,'',0,0,'','',18,'["edx-django-utils==8.0.1", "code-annotations==3.0.0", "django-crum==0.7.9", "jinja2==3.1.6", "cffi==2.0.0", "asgiref==3.11.1", "python-slugify==8.0.4", "django-waffle==5.0.0", "psutil==7.2.2", "stevedore==5.7.0", "text-unidecode==1.3", "django==5.2.13", "pycparser==3.0", "pyyaml==6.0.3", "click==8.3.2", "pynacl==1.6.2", "markupsafe==3.0.3", "sqlparse==0.5.5"]',112,'["tomlkit==0.14.0", "imagesize==2.0.0", "filelock==3.25.2", "psutil==7.2.2", "mccabe==0.7.0", "polib==1.2.0", "jinja2==3.1.6", "pyproject-hooks==1.2.0", "idna==3.11", "virtualenv==21.2.0", "tox==4.52.0", "text-unidecode==1.3", "snowballstemmer==3.0.1", "edx-lint==6.0.0", "typing-extensions==4.15.0", "jaraco-context==6.1.2", "pyproject-api==1.10.0", "lxml-html-clean==0.4.4", "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", "pylint==4.0.5", "click==8.3.2", "build==1.4.2", "readme-renderer==44.0", "django-crum==0.7.9", "pycparser==3.0", "cryptography==46.0.6", "sphinxcontrib-htmlhelp==2.1.0", "click-log==0.4.0", "lxml[html-clean]==6.0.2", "django-waffle==5.0.0", "sphinxcontrib-devhelp==2.0.0", "sphinx-book-theme==1.2.0", "jmespath==1.1.0", "python-discovery==1.2.1", "wrapt==2.1.2", "jeepney==0.9.0", "atlassian-python-api==4.0.7", "cffi==2.0.0", "asgiref==3.11.1", "pyyaml==6.0.3", "packaging==26.0", "pluggy==1.6.0", "pydocstyle==6.3.0", "charset-normalizer==3.4.7", "deprecated==1.3.1", "nh3==0.3.4", "distlib==0.4.0", "jaraco-classes==3.4.0", "oauthlib==3.3.1", "rfc3986==2.0.0", "pylint-celery==0.3", "sphinx==9.1.0", "python-slugify==8.0.4", "chardet==7.4.0.post2", "requests-toolbelt==1.0.0", "mdurl==0.1.2", "docutils==0.21.2", "pytest-cov==7.1.0", "pydata-sphinx-theme==0.16.1", "pycodestyle==2.14.0", "roman-numerals==4.1.0", "dill==0.4.1", "django==5.2.13", "pip==26.0.1", "doc8==2.0.0", "setuptools==82.0.1", "jaraco-functools==4.4.0", "secretstorage==3.5.0", "code-annotations==3.0.0", "platformdirs==4.9.4", "beautifulsoup4==4.14.3", "urllib3==2.6.3", "certifi==2026.2.25", "keyring==25.7.0", "sphinxcontrib-applehelp==2.0.0", "pylint-plugin-utils==0.9.0", "pynacl==1.6.2", "wheel==0.46.3", "colorama==0.4.6", "isort==8.0.1", "coverage[toml]==7.13.5", "six==1.17.0", "stevedore==5.7.0", "path==16.16.0", "soupsieve==2.8.3", "more-itertools==11.0.1", "id==1.6.1", "iniconfig==2.3.0", "cachetools==7.0.5", "diff-cover==10.2.0", "sphinxcontrib-serializinghtml==2.0.0", "tomli-w==1.2.0", "sqlparse==0.5.5", "pylint-django==2.7.0", "pygments==2.20.0", "babel==2.18.0", "pytest-django==4.12.0", "edx-i18n-tools==2.0.0", "pip-tools==7.5.3", "alabaster==1.0.0", "markupsafe==3.0.3", "accessible-pygments==0.0.5", "edx-django-utils==8.0.1", "requests==2.33.1", "twine==6.2.0", "pytest==9.0.2", "requests-oauthlib==2.0.0", "rich==14.3.3", "astroid==4.0.4", "restructuredtext-lint==2.0.2", "markdown-it-py==4.0.0"]',6,'["edx-i18n-tools", "code-annotations", "pylint-django", "django-waffle", "edx-django-utils", "pytest-django"]',7,'["edx-i18n-tools", "code-annotations", "pylint-django", "django-waffle", "edx-django-utils", "django-crum", "pytest-django"]',4,'["edx-i18n-tools", "django-waffle", "edx-django-utils", "code-annotations"]',1,NULL,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,10,'{"total_duration": "7991 minutes 57 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 33 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 26 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2018-07-05 18:19:46','master','Library and utilities for feature toggles',739,16,1,0,0,0,0,0,0,'2026-06-06 08:52:10','GNU AGPLv3',2,1,0,0,0,0,4590,90839,0,1,1,0,0,1,0,1,'','openedx',3,'[]',1,'[''https://docs.openedx.org/projects/edx-toggles/en/latest/readme.html'', ''https://github.com/openedx/edx-toggles'', ''https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/edx-toggles.svg'', ''https://pypi.python.org/pypi/edx-toggles/'', ''https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-toggles?branch=master'', ''https://readthedocs.org/projects/edx-toggles/badge/?version=latest'', ''http://edx-toggles.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/edx-toggles.svg'', ''https://img.shields.io/github/license/edx/edx-toggles.svg'', ''https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-toggles','[''3'', ''3.12'']','https://github.com/openedx/edx-toggles',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/opaque-keys',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,85,0,'[]',0,'',0,0,'','',4,'["stevedore==5.8.0", "dnspython==2.8.0", "typing-extensions==4.15.0", "pymongo==4.17.0"]',85,'["pytest==9.0.3", "imagesize==2.0.0", "iniconfig==2.3.0", "python-discovery==1.4.0", "pylint-django==2.7.0", "pyyaml==6.0.3", "click-log==0.4.0", "pygments==2.20.0", "sphinxcontrib-qthelp==2.0.0", "python-slugify==8.0.4", "coverage==7.14.1", "pip-tools==7.5.3", "ast-serialize==0.5.0", "pathspec==1.1.1", "markupsafe==3.0.3", "pyproject-hooks==1.2.0", "typing-extensions==4.15.0", "sortedcontainers==2.4.0", "wheel==0.47.0", "pip==26.1.2", "text-unidecode==1.3", "mypy==2.1.0", "sphinxcontrib-devhelp==2.0.0", "mypy-extensions==1.1.0", "docutils==0.22.4", "ddt==1.7.2", "accessible-pygments==0.0.5", "execnet==2.1.2", "tox==4.55.0", "jinja2==3.1.6", "idna==3.17", "packaging==26.2", "alabaster==1.0.0", "requests==2.34.2", "soupsieve==2.8.4", "sphinxcontrib-serializinghtml==2.0.0", "pytest-django==4.12.0", "coverage[toml]==7.14.1", "hypothesis==6.155.1", "isort==8.0.1", "cachetools==7.1.4", "pluggy==1.6.0", "sphinx-book-theme==1.2.0", "pytest-cov==7.1.0", "pylint==4.0.5", "pydata-sphinx-theme==0.16.1", "pylint-celery==0.3", "distlib==0.4.0", "sphinxcontrib-jsmath==1.0.1", "virtualenv==21.4.2", "tomlkit==0.15.0", "six==1.17.0", "colorama==0.4.6", "build==1.5.0", "dill==0.4.1", "librt==0.11.0", "setuptools==82.0.1", "pycodestyle==2.14.0", "dnspython==2.8.0", "nh3==0.3.5", "sphinx==9.1.0", "filelock==3.29.0", "roman-numerals==4.1.0", "beautifulsoup4==4.14.3", "sphinxcontrib-applehelp==2.0.0", "edx-lint==6.1.0", "babel==2.18.0", "stevedore==5.8.0", "tomli-w==1.2.0", "mccabe==0.7.0", "pymongo==4.17.0", "astroid==4.0.4", "snowballstemmer==3.1.0", "certifi==2026.5.20", "click==8.4.1", "readme-renderer==44.0", "sphinxcontrib-htmlhelp==2.1.0", "code-annotations==3.0.0", "pylint-plugin-utils==0.9.0", "pyproject-api==1.10.1", "urllib3==2.7.0", "pytest-xdist==3.8.0", "charset-normalizer==3.4.7", "mock==5.2.0", "platformdirs==4.10.0"]',3,'["code-annotations", "pylint-django", "pytest-django"]',3,'["code-annotations", "pylint-django", "pytest-django"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,13,'{"total_duration": "9603 minutes 2 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "3 minutes 11 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, without-django)", "duration": "3 minutes 7 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 14 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 50 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 47 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 30 seconds"}, {"name": "Dependabot", "duration": "0 minutes 21 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2014-05-23 17:24:54','master','',1005,21,1,0,0,0,0,0,0,'2026-06-08 00:30:49','GNU AGPLv3',3,1,0,0,0,0,1757,258429,0,1,0,0,0,1,0,0,'','openedx',0,'[]',0,'[''http://code.edx.org/'', ''https://github.com/openedx/opaque-keys/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/opaque-keys/actions?query=workflow%3A%22Python+CI%22'', ''https://coveralls.io/repos/edx/opaque-keys/badge.svg?branch=master'', ''https://coveralls.io/r/edx/opaque-keys'', ''https://github.com/openedx/edx-platform/wiki/Opaque-Keys'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-opaque-keys','[''3'', ''3.12'']','https://github.com/openedx/opaque-keys',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/web-fragments',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,105,0,'[]',0,'',0,0,'','',0,'[]',105,'["wheel==0.47.0", "asgiref==3.11.1", "jinja2==3.1.6", "typing-extensions==4.15.0", "python-discovery==1.4.0", "sphinxcontrib-jsmath==1.0.1", "pockets==0.9.1", "pyyaml==6.0.3", "secretstorage==3.5.0", "click-log==0.4.0", "readme-renderer==44.0", "isort==8.0.1", "doc8==2.0.0", "soupsieve==2.8.4", "sphinxcontrib-applehelp==2.0.0", "cryptography==48.0.0", "pylint==4.0.5", "astroid==4.0.4", "charset-normalizer==3.4.7", "lxml-html-clean==0.4.5", "rich==15.0.0", "imagesize==2.0.0", "twine==6.2.0", "pylint-plugin-utils==0.9.0", "platformdirs==4.10.0", "edx-lint==6.1.0", "diff-cover==10.3.0", "more-itertools==11.1.0", "markupsafe==3.0.3", "pylint-django==2.7.0", "pydocstyle==6.3.0", "pycodestyle==2.14.0", "pip-tools==7.5.3", "click==8.4.1", "pyproject-hooks==1.2.0", "code-annotations==3.0.0", "pycparser==3.0", "beautifulsoup4==4.14.3", "rfc3986==2.0.0", "pydata-sphinx-theme==0.16.1", "pip==26.1.2", "sphinxcontrib-qthelp==2.0.0", "stevedore==5.8.0", "six==1.17.0", "accessible-pygments==0.0.5", "jeepney==0.9.0", "pytest==9.0.3", "lxml[html-clean]==6.1.1", "tomli-w==1.2.0", "pytest-django==4.12.0", "jaraco-context==6.1.2", "sphinx==9.1.0", "sphinxcontrib-serializinghtml==2.0.0", "virtualenv==21.4.2", "docutils==0.23", "mdurl==0.1.2", "pytest-cov==7.1.0", "jaraco-classes==3.4.0", "keyring==25.7.0", "ddt==1.3.1", "setuptools==82.0.1", "cachetools==7.1.4", "pylint-celery==0.3", "build==1.5.0", "nh3==0.3.5", "roman-numerals==4.1.0", "cffi==2.0.0", "chardet==7.4.3", "pygments==2.20.0", "polib==1.2.0", "snowballstemmer==3.1.1", "sphinxcontrib-htmlhelp==2.1.0", "edx-i18n-tools==2.0.0", "dill==0.4.1", "markdown-it-py==4.2.0", "distlib==0.4.1", "filelock==3.29.1", "sqlparse==0.5.5", "jaraco-functools==4.5.0", "coverage[toml]==7.14.1", "python-slugify==8.0.4", "pyproject-api==1.10.1", "tox==4.55.1", "docutils==0.21.2", "babel==2.18.0", "mccabe==0.7.0", "idna==3.18", "alabaster==1.0.0", "tomlkit==0.15.0", "requests==2.34.2", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-napoleon==0.7", "django==5.2.15", "pluggy==1.6.0", "path==16.16.0", "id==1.6.1", "urllib3==2.7.0", "text-unidecode==1.3", "certifi==2026.5.20", "sphinx-book-theme==1.2.0", "requests-toolbelt==1.0.0", "iniconfig==2.3.0", "restructuredtext-lint==2.0.2", "colorama==0.4.6", "packaging==26.2"]',4,'["pytest-django", "code-annotations", "pylint-django", "edx-i18n-tools"]',4,'["pytest-django", "code-annotations", "pylint-django", "edx-i18n-tools"]',2,'["code-annotations", "edx-i18n-tools"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,43,'{"total_duration": "0 minutes 50 seconds", "checks": [{"name": "update-pip-graph", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 43 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 37 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 32 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 23 seconds"}]}','Other','2016-12-08 15:24:36','master','Provides the ability to render fragments of web pages',304,9,1,0,0,0,0,0,0,'2026-06-05 13:48:54','Apache License 2.0',2,1,0,0,120,0,3016,27818,0,1,1,0,0,1,0,0,'','openedx',2,'[''http://web-fragments.readthedocs.io/en/latest/?badge=latest: 404'', ''http://web-fragments.readthedocs.io/en/latest/: 404'', ''https://web-fragments.readthedocs.org: 404'', ''https://open.edx.org/getting-help: 403'']',1,'[''https://img.shields.io/pypi/v/web-fragments.svg'', ''https://pypi.python.org/pypi/web-fragments/'', ''https://github.com/openedx/web-fragments/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/web-fragments/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/web-fragments/coverage.svg?branch=master'', ''http://codecov.io/github/edx/web-fragments?branch=master'', ''https://img.shields.io/pypi/pyversions/web-fragments.svg'', ''https://img.shields.io/github/license/edx/web-fragments.svg'', ''https://github.com/openedx/web-fragments/blob/master/LICENSE.txt'', ''https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0012-arch-fragment-views.html'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,1,1,NULL,0,'web-fragments','[''3'', ''3.12'']','https://github.com/openedx/web-fragments',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/olxcleaner',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,101,0,'[]',0,'',0,0,'','',5,'["python-dateutil==2.9.0.post0", "pylatexenc==2.10", "six==1.16.0", "pytz==2024.1", "lxml==5.2.1"]',101,'["pydata-sphinx-theme==0.14.4", "sphinxcontrib-htmlhelp==2.0.1", "mccabe==0.7.0", "stevedore==5.2.0", "pytest==8.1.1", "urllib3==2.2.1", "pluggy==1.4.0", "soupsieve==2.5", "iniconfig==2.0.0", "sphinx==6.2.1", "astroid==3.1.0", "mdurl==0.1.2", "pygments==2.17.2", "markupsafe==2.1.5", "platformdirs==4.2.0", "requests-toolbelt==1.0.0", "sphinxcontrib-qthelp==1.0.3", "idna==3.7", "rfc3986==2.0.0", "python-dateutil==2.9.0.post0", "typing-extensions==4.11.0", "importlib-resources==6.4.0", "tomli==2.0.1", "accessible-pygments==0.0.4", "coverage[toml]==7.4.4", "alabaster==0.7.13", "isort==5.13.2", "virtualenv==20.25.3", "importlib-metadata==6.11.0", "pbr==6.0.0", "pydocstyle==6.3.0", "tomlkit==0.12.4", "pip==24.0", "sphinxcontrib-jsmath==1.0.1", "wheel==0.43.0", "pylatexenc==2.10", "markdown-it-py==3.0.0", "six==1.16.0", "more-itertools==10.2.0", "lxml==5.2.1", "requests==2.31.0", "charset-normalizer==3.3.2", "jinja2==3.1.3", "pyproject-api==1.6.1", "readme-renderer==43.0", "docutils==0.20.1", "diff-cover==9.0.0", "keyring==25.1.0", "python-slugify==8.0.4", "sphinxcontrib-serializinghtml==1.1.5", "nh3==0.2.17", "pylint==3.1.0", "cryptography==42.0.5", "zipp==3.18.1", "pycparser==2.22", "edx-lint==5.3.6", "pyproject-hooks==1.0.0", "setuptools==69.5.1", "text-unidecode==1.3", "beautifulsoup4==4.12.3", "filelock==3.13.4", "packaging==24.0", "pycodestyle==2.11.1", "babel==2.14.0", "colorama==0.4.6", "click-log==0.4.0", "jaraco-context==5.3.0", "jaraco-classes==3.4.0", "snowballstemmer==2.2.0", "restructuredtext-lint==1.4.0", "pylint-django==2.5.5", "pip-tools==7.4.1", "sphinxcontrib-devhelp==1.0.2", "docutils==0.19", "imagesize==1.4.1", "doc8==1.1.1", "jaraco-functools==4.0.1", "jeepney==0.8.0", "certifi==2024.2.2", "code-annotations==1.8.0", "pytz==2024.1", "twine==5.0.0", "pkginfo==1.10.0", "pyyaml==6.0.1", "pytest-cov==5.0.0", "tox==4.14.2", "pylint-plugin-utils==0.8.2", "cachetools==5.3.3", "sphinx-book-theme==1.0.1", "build==1.2.1", "secretstorage==3.3.3", "sphinxcontrib-applehelp==1.0.4", "pylint-celery==0.3", "chardet==5.2.0", "cffi==1.16.0", "click==8.1.7", "dill==0.3.8", "rich==13.7.1", "distlib==0.3.8", "exceptiongroup==1.2.1", "backports-tarfile==1.1.0"]',2,'["pylint-django", "code-annotations"]',2,'["pylint-django", "code-annotations"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,9,'{"total_duration": "0 minutes 17 seconds", "checks": [{"name": "Python Tests (ubuntu-latest, 3.11)", "duration": "0 minutes 17 seconds"}, {"name": "Python Tests (ubuntu-latest, 3.12)", "duration": "0 minutes 15 seconds"}]}','Other','2021-04-02 16:44:34','master','Tool for checking edX courses for errors and creating content reports',243,6,1,0,0,0,1,0,0,'2026-05-30 15:27:43','GNU GPLv3',0,1,0,0,1361,0,3140,180832,0,0,1,0,0,1,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx/olxcleaner/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/olxcleaner/actions/workflows/ci.yaml'', ''https://codecov.io/gh/jolyonb/olxcleaner/branch/master/graphs/badge.svg'', ''https://codecov.io/gh/jolyonb/olxcleaner'', ''https://github.com/openedx/olxcleaner'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'olxcleaner','[''3.11'', ''3.12'']','https://github.com/openedx/olxcleaner',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-user-groups',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,105,0,'[]',0,'',0,0,'','',4,'["django==4.2.21", "asgiref==3.8.1", "sqlparse==0.5.3", "openedx-atlas==0.7.0"]',105,'["jaraco-functools==4.1.0", "sphinxcontrib-applehelp==2.0.0", "edx-i18n-tools==1.9.0", "sphinx==8.2.3", "pycodestyle==2.13.0", "click-log==0.4.0", "build==1.2.2.post1", "filelock==3.18.0", "jaraco-classes==3.4.0", "sphinxcontrib-serializinghtml==2.0.0", "typing-extensions==4.13.2", "diff-cover==9.3.1", "pytest-django==4.11.1", "pytest==8.3.5", "astroid==3.3.10", "cachetools==6.0.0", "pip==24.2", "lxml[html-clean]==5.4.0", "soupsieve==2.7", "pygments==2.19.1", "platformdirs==4.3.8", "more-itertools==10.7.0", "jeepney==0.9.0", "twine==6.1.0", "markupsafe==3.0.2", "pylint==3.3.7", "stevedore==5.4.1", "readme-renderer==44.0", "pycparser==2.22", "requests-toolbelt==1.0.0", "openedx-atlas==0.7.0", "python-slugify==8.0.4", "tomlkit==0.13.2", "isort==6.0.1", "id==1.5.0", "asgiref==3.8.1", "pluggy==1.6.0", "lxml-html-clean==0.4.2", "beautifulsoup4==4.13.4", "pytest-cov==6.1.1", "snowballstemmer==3.0.1", "cryptography==45.0.3", "accessible-pygments==0.0.5", "keyring==25.6.0", "urllib3==2.2.3", "babel==2.17.0", "iniconfig==2.1.0", "path==16.16.0", "certifi==2025.4.26", "sphinxcontrib-qthelp==2.0.0", "rich==14.0.0", "sphinxcontrib-jsmath==1.0.1", "dill==0.4.0", "restructuredtext-lint==1.4.0", "coverage[toml]==7.8.2", "pyyaml==6.0.2", "pip-tools==7.5.0", "sqlparse==0.5.3", "roman-numerals-py==3.1.0", "secretstorage==3.3.3", "pydocstyle==6.3.0", "packaging==25.0", "virtualenv==20.31.2", "click==8.2.1", "code-annotations==2.3.0", "jinja2==3.1.6", "jaraco-context==6.0.1", "pydata-sphinx-theme==0.15.4", "rfc3986==2.0.0", "pyproject-api==1.9.1", "charset-normalizer==3.4.2", "mccabe==0.7.0", "sphinx-book-theme==1.1.4", "build==1.3.0", "edx-lint==5.6.0", "markdown-it-py==3.0.0", "setuptools==80.9.0", "cffi==1.17.1", "text-unidecode==1.3", "pylint-plugin-utils==0.8.2", "wheel==0.45.1", "pylint-django==2.6.1", "sphinxcontrib-devhelp==2.0.0", "tox==4.26.0", "polib==1.2.0", "sphinxcontrib-htmlhelp==2.1.0", "nh3==0.2.21", "alabaster==1.0.0", "backports-tarfile==1.2.0", "idna==3.10", "zipp==3.23.0", "docutils==0.21.2", "distlib==0.3.9", "django==4.2.21", "pyproject-hooks==1.2.0", "six==1.17.0", "pbr==6.1.1", "chardet==5.2.0", "imagesize==1.4.1", "requests==2.32.3", "colorama==0.4.6", "doc8==1.1.2", "pylint-celery==0.3", "mdurl==0.1.2", "importlib-metadata==8.7.0"]',4,'["code-annotations", "edx-i18n-tools", "pytest-django", "pylint-django"]',4,'["code-annotations", "edx-i18n-tools", "pytest-django", "pylint-django"]',2,'["code-annotations", "edx-i18n-tools"]',1,NULL,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,8,'{"total_duration": "0 minutes 36 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 36 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 31 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 30 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 27 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 20 seconds"}]}','Other','2025-05-23 16:04:03','main','Specifications for user group methods, data models, and APIs used in the management of user groups within the Open edX ecosystem.',2918,2,1,0,0,0,0,0,0,'2026-05-30 15:31:56','GNU AGPLv3',8,1,0,0,873,0,5137,10665,0,0,1,0,0,1,0,0,'','openedx',0,'[''https://docs.openedx.org/projects/openedx-user-groups: 404'']',1,'[''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4901404678/User+Groups'', ''https://discuss.openedx.org'', ''https://github.com/openedx/openedx-user-groups/issues'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/openedx-user-groups'', ''https://img.shields.io/pypi/v/openedx-user-groups.svg'', ''https://pypi.python.org/pypi/openedx-user-groups/'', ''https://github.com/openedx/openedx-user-groups/actions/workflows/ci.yml/badge.svg?branch=main'', ''https://github.com/openedx/openedx-user-groups/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/openedx-user-groups/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-user-groups?branch=main'', ''https://readthedocs.org/projects/openedx-user-groups/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/openedx-user-groups.svg'', ''https://img.shields.io/github/license/edunext/openedx-user-groups.svg'', ''https://github.com/openedx/openedx-user-groups/blob/main/LICENSE.txt'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-user-groups','[''3'', ''3.12'']','https://github.com/openedx/openedx-user-groups',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-google-drive',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,95,0,'[]',0,'',0,0,'','',81,'["stevedore==5.8.0", "python-slugify==8.0.4", "fs-s3fs==1.1.1", "pyproject-hooks==1.2.0", "django==5.2.14", "asgiref==3.11.1", "markupsafe==3.0.3", "web-fragments==4.0.0", "platformdirs==4.10.0", "code-annotations==3.0.0", "click-log==0.4.0", "chardet==7.4.3", "xblock[django]==6.1.0", "mako==1.3.12", "simplejson==4.1.1", "edx-lint==6.1.0", "iniconfig==2.3.0", "pylint-django==2.7.0", "diff-cover==10.3.0", "botocore==1.43.18", "charset-normalizer==3.4.7", "lxml[html-clean]==6.1.1", "packaging==26.2", "pip-tools==7.5.3", "caniusepython3==7.3.0", "click==8.4.1", "wheel==0.47.0", "edx-i18n-tools==2.0.0", "ddt==1.7.2", "pylint-celery==0.3", "backports-functools-lru-cache==2.0.0", "arrow==1.4.0", "lazy==1.6", "polib==1.2.0", "pytz==2026.2", "certifi==2026.5.20", "python-dateutil==2.9.0.post0", "jinja2==3.1.6", "dill==0.4.1", "pypng==0.20220715.0", "tomlkit==0.15.0", "pytest-cov==7.1.0", "openedx-django-pyfs==4.0.0", "isort==8.0.1", "requests==2.34.2", "boto3==1.43.18", "binaryornot==0.6.0", "cookiecutter==2.7.1", "urllib3==2.7.0", "pluggy==1.6.0", "rich==15.0.0", "pylint-plugin-utils==0.9.0", "mdurl==0.1.2", "pytest==9.0.3", "mccabe==0.7.0", "jmespath==1.1.0", "distlib==0.4.0", "sqlparse==0.5.5", "xblock-sdk==0.14.0", "appdirs==1.4.4", "pytest-django==4.12.0", "markdown-it-py==4.2.0", "idna==3.17", "mock==5.2.0", "webob==1.8.9", "pycodestyle==2.14.0", "pygments==2.20.0", "pyyaml==6.0.3", "tzdata==2026.2", "lxml-html-clean==0.4.5", "coverage[toml]==7.14.1", "snowballstemmer==3.1.0", "astroid==4.0.4", "pydocstyle==6.3.0", "text-unidecode==1.3", "pylint==4.0.5", "build==1.5.0", "s3transfer==0.18.0", "six==1.17.0", "path==16.16.0", "fs==2.4.16"]',95,'["stevedore==5.8.0", "python-slugify==8.0.4", "fs-s3fs==1.1.1", "pyproject-hooks==1.2.0", "django==5.2.14", "asgiref==3.11.1", "markupsafe==3.0.3", "web-fragments==4.0.0", "platformdirs==4.10.0", "code-annotations==3.0.0", "click-log==0.4.0", "pyproject-api==1.10.1", "chardet==7.4.3", "xblock[django]==6.1.0", "mako==1.3.12", "simplejson==4.1.1", "edx-lint==6.1.0", "cachetools==7.1.4", "iniconfig==2.3.0", "shellingham==1.5.4", "pylint-django==2.7.0", "diff-cover==10.3.0", "colorama==0.4.6", "pip==26.1.2", "botocore==1.43.18", "charset-normalizer==3.4.7", "lxml[html-clean]==6.1.1", "packaging==26.2", "pip-tools==7.5.3", "caniusepython3==7.3.0", "click==8.4.1", "wheel==0.47.0", "edx-i18n-tools==2.0.0", "ddt==1.7.2", "pylint-celery==0.3", "backports-functools-lru-cache==2.0.0", "arrow==1.4.0", "setuptools==82.0.1", "lazy==1.6", "typer==0.26.4", "coveralls==4.1.0", "polib==1.2.0", "pytz==2026.2", "certifi==2026.5.20", "python-discovery==1.4.0", "python-dateutil==2.9.0.post0", "jinja2==3.1.6", "dill==0.4.1", "pypng==0.20220715.0", "filelock==3.29.0", "tomlkit==0.15.0", "pytest-cov==7.1.0", "openedx-django-pyfs==4.0.0", "isort==8.0.1", "tox==4.55.0", "requests==2.34.2", "boto3==1.43.18", "virtualenv==21.4.2", "annotated-doc==0.0.4", "binaryornot==0.6.0", "cookiecutter==2.7.1", "urllib3==2.7.0", "pluggy==1.6.0", "rich==15.0.0", "pylint-plugin-utils==0.9.0", "mdurl==0.1.2", "pytest==9.0.3", "mccabe==0.7.0", "jmespath==1.1.0", "distlib==0.4.0", "sqlparse==0.5.5", "xblock-sdk==0.14.0", "appdirs==1.4.4", "pytest-django==4.12.0", "markdown-it-py==4.2.0", "idna==3.17", "mock==5.2.0", "webob==1.8.9", "pycodestyle==2.14.0", "pygments==2.20.0", "pyyaml==6.0.3", "tzdata==2026.2", "lxml-html-clean==0.4.5", "coverage[toml]==7.14.1", "snowballstemmer==3.1.0", "astroid==4.0.4", "pydocstyle==6.3.0", "text-unidecode==1.3", "pylint==4.0.5", "build==1.5.0", "s3transfer==0.18.0", "six==1.17.0", "path==16.16.0", "fs==2.4.16", "tomli-w==1.2.0"]',6,'["code-annotations", "pytest-django", "xblock-sdk", "web-fragments", "edx-i18n-tools", "pylint-django"]',6,'["code-annotations", "pytest-django", "xblock-sdk", "web-fragments", "edx-i18n-tools", "pylint-django"]',4,'["xblock-sdk", "code-annotations", "web-fragments", "edx-i18n-tools"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,4,'{"total_duration": "9949 minutes 52 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 5 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 3 seconds"}, {"name": "tests (ubuntu-latest, 3.12, package)", "duration": "0 minutes 47 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 46 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 41 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}]}','Other','2014-11-10 13:34:07','master','',287,41,1,0,0,0,0,0,0,'2026-06-08 05:14:17','GNU AGPLv3',2,1,2558,0,7206,10803,4542,30107,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://openedx.atlassian.net/wiki/display/OpenOPS/Running+Fullstack: 404'']',0,'[''https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html'', ''https://xblock-tutorial.readthedocs.io/en/latest/'', ''https://travis-ci.org/edx-solutions/xblock-google-drive.svg?branch=master'', ''https://travis-ci.org/edx-solutions/xblock-google-drive'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'xblock-google-drive','[''3.12'']','https://github.com/openedx/xblock-google-drive',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-component-header',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,29,0,'',0,'{}',10,19,'{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/browserslist-config": "^1.1.1", "@edx/frontend-platform": "^8.3.1", "@openedx/frontend-build": "^14.3.2", "@openedx/paragon": "^23.0.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "^16.2.0", "jest": "30.2.0", "jest-environment-jsdom": "^30.0.0", "prop-types": "15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^8.1.1", "react-router-dom": "6.30.2", "react-test-renderer": "^18.3.1", "redux": "4.2.1", "redux-saga": "1.4.2", "ts-jest": "^29.4.4"}','{"@edx/frontend-plugin-notifications": "^2.0.11", "@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-brands-svg-icons": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2", "@fortawesome/free-solid-svg-icons": "6.7.2", "@fortawesome/react-fontawesome": "^0.2.0", "@openedx/frontend-plugin-framework": "^1.7.0", "classnames": "^2.5.1", "react-responsive": "8.2.0", "react-transition-group": "4.4.5"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,34,'{"total_duration": "2 minutes 28 seconds", "checks": [{"name": "Release", "duration": "2 minutes 27 seconds"}, {"name": "tests", "duration": "1 minutes 55 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2019-09-11 15:55:45','master','',12997,186,1,0,0,0,0,0,0,'2026-06-04 15:39:31','GNU AGPLv3',19,1,0,0,252,71110,1298,0,0,0,0,0,0,0,0,0,'@edx/frontend-component-header','openedx',0,'[''https://github.com/openedx/frontend-template-application/blob/master/src/index.jsx: 404'', ''https://edx.github.io/frontend-platform/module-Internationalization.html: 404'', ''https://api.travis-ci.com/edx/frontend-component-header.svg?branch=master: 404'', ''https://travis-ci.com/edx/frontend-component-header: 415'']',0,'[''https://github.com/openedx/devstack'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-component-header.git'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://github.com/openedx/frontend-template-application/blob/3355bb3a96232390e9056f35b06ffa8f105ed7ca/src/index.jsx'', ''https://github.com/openedx/frontend-template-application/blob/3cd5485bf387b8c479baf6b02bf59e3061dc3465/src/index.scss'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-component-header/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/codecov/c/github/edx/frontend-component-header'', ''https://img.shields.io/npm/v/@edx/frontend-component-header.svg'', ''https://img.shields.io/npm/dt/@edx/frontend-component-header.svg'', ''https://img.shields.io/npm/l/@edx/frontend-component-header.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'', ''https://github.com/semantic-release/semantic-release'']',1,1,0,0,'','',1,'2026-04-06','2022-07-11','9',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-django-utils',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,122,0,'[]',0,'',0,0,'','',11,'["click==8.3.0", "asgiref==3.10.0", "django-waffle==5.0.0", "psutil==7.1.0", "sqlparse==0.5.3", "stevedore==5.5.0", "cffi==2.0.0", "django-crum==0.7.9", "pynacl==1.6.0", "django==4.2.25", "pycparser==2.23"]',122,'["sphinxcontrib-devhelp==2.0.0", "build==1.3.0", "wrapt==1.17.3", "twine==6.2.0", "snowballstemmer==3.0.1", "django-crum==0.7.9", "lxml[html-clean]==6.0.2", "edx-lint==5.6.0", "pip-tools==7.5.1", "protobuf==6.32.1", "chardet==5.2.0", "idna==3.10", "more-itertools==10.8.0", "restructuredtext-lint==1.4.0", "jinja2==3.1.6", "accessible-pygments==0.0.5", "alabaster==1.0.0", "backports-tarfile==1.2.0", "faker==37.8.0", "python-dateutil==2.9.0.post0", "jaraco-context==6.0.1", "imagesize==1.4.1", "asgiref==3.10.0", "cachetools==6.2.0", "distlib==0.4.0", "pycodestyle==2.14.0", "rfc3986==2.0.0", "sphinxcontrib-jsmath==1.0.1", "secretstorage==3.4.0", "babel==2.17.0", "click==8.3.0", "sqlparse==0.5.3", "psutil==7.1.0", "sphinx-book-theme==1.1.4", "ddt==1.7.2", "typing-extensions==4.15.0", "diff-cover==6.2.1", "code-annotations==2.3.0", "filelock==3.19.1", "isort==6.1.0", "setuptools==80.9.0", "soupsieve==2.8", "django==4.2.25", "urllib3==2.5.0", "nh3==0.3.0", "bytecode==0.17.0", "zipp==3.23.0", "roman-numerals-py==3.1.0", "envier==0.6.1", "pygments==2.19.2", "tzdata==2025.2", "beautifulsoup4==4.14.2", "opentelemetry-api==1.37.0", "django-waffle==5.0.0", "wheel==0.45.1", "virtualenv==20.34.0", "mccabe==0.7.0", "path==16.16.0", "id==1.5.0", "pyyaml==6.0.3", "lxml-html-clean==0.4.3", "packaging==25.0", "tomlkit==0.13.3", "inflect==7.5.0", "cffi==2.0.0", "sphinxcontrib-qthelp==2.0.0", "markupsafe==3.0.3", "pytest==8.4.2", "dill==0.4.0", "edx-i18n-tools==1.9.0", "platformdirs==4.4.0", "pydocstyle==6.3.0", "mock==5.2.0", "sphinx==8.2.3", "pluggy==1.6.0", "coverage[toml]==7.10.7", "jeepney==0.9.0", "iniconfig==2.1.0", "pyproject-hooks==1.2.0", "colorama==0.4.6", "pip==25.2", "sphinxcontrib-serializinghtml==2.0.0", "jaraco-classes==3.4.0", "readme-renderer==44.0", "rich==14.1.0", "click-log==0.4.0", "pylint-plugin-utils==0.9.0", "pylint-django==2.6.1", "jinja2-pluralize==0.3.0", "mdurl==0.1.2", "tox==4.30.3", "text-unidecode==1.3", "requests-toolbelt==1.0.0", "sphinxcontrib-htmlhelp==2.1.0", "newrelic==11.0.0", "stevedore==5.5.0", "pydata-sphinx-theme==0.15.4", "docutils==0.21.2", "typeguard==4.4.4", "jaraco-functools==4.3.0", "polib==1.2.0", "requests==2.32.5", "charset-normalizer==3.4.3", "certifi==2025.10.5", "factory-boy==3.3.3", "pytest-cov==7.0.0", "cryptography==46.0.2", "doc8==0.11.2", "astroid==3.3.11", "python-slugify==8.0.4", "pylint-celery==0.3", "sphinxcontrib-applehelp==2.0.0", "ddtrace==3.15.0", "markdown-it-py==4.0.0", "pytest-django==4.11.1", "importlib-metadata==8.7.0", "keyring==25.6.0", "pynacl==1.6.0", "pyproject-api==1.9.1", "pylint==3.3.9", "pycparser==2.23", "six==1.17.0"]',6,'["pytest-django", "edx-i18n-tools", "django-waffle", "code-annotations", "factory-boy", "pylint-django"]',8,'["newrelic", "pytest-django", "django-crum", "edx-i18n-tools", "django-waffle", "code-annotations", "factory-boy", "pylint-django"]',3,'["django-waffle", "code-annotations", "edx-i18n-tools"]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,15,'{"total_duration": "333 minutes 20 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 56 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 55 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 39 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 54 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2018-07-20 15:12:04','master','edX utilities for Django Application development.',811,28,1,0,0,0,0,0,0,'2026-06-08 05:42:36','Apache License 2.0',8,1,0,0,0,0,3359,309143,0,1,1,0,0,1,0,0,'','openedx',3,'[]',1,'[''https://edx-django-utils.readthedocs.org'', ''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://discuss.openedx.org'', ''https://github.com/openedx/django-config-models/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/edx-django-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/edx-django-utils/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/edx-django-utils'', ''https://img.shields.io/pypi/v/edx-django-utils.svg'', ''https://pypi.python.org/pypi/edx-django-utils/'', ''https://github.com/openedx/edx-django-utils/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-django-utils/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/edx-django-utils/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-django-utils?branch=master'', ''https://readthedocs.org/projects/edx-django-utils/badge/?version=latest'', ''http://edx-django-utils.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/edx-django-utils.svg'', ''https://img.shields.io/github/license/edx/edx-django-utils.svg'', ''https://github.com/openedx/edx-django-utils/blob/master/LICENSE.txt'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-django-utils','[''3'', ''3.12'']','https://github.com/openedx/edx-django-utils',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-authz',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,134,0,'[]',0,'',0,0,'','',49,'["click==8.4.1", "drf-jwt==1.19.2", "inflection==0.5.1", "charset-normalizer==3.4.7", "openedx-events==11.2.0", "dnspython==2.8.0", "pyjwt[crypto]==2.13.0", "semantic-version==2.10.0", "idna==3.17", "pycasbin==2.8.0", "edx-api-doc-tools==3.0.0", "edx-django-utils==8.0.1", "casbin-django-orm-adapter==1.7.0", "bracex==2.6", "openedx-atlas==0.7.0", "drf-yasg==1.21.15", "django==5.2.14", "asgiref==3.11.1", "certifi==2026.5.20", "djangorestframework==3.17.1", "django-waffle==5.0.0", "django-model-utils==5.0.0", "fastavro==1.12.2", "django-crum==0.7.9", "uritemplate==4.2.0", "edx-ccx-keys==2.0.2", "pyyaml==6.0.3", "urllib3==2.7.0", "wcmatch==10.1", "pynacl==1.6.2", "edx-organizations==8.0.0", "typing-extensions==4.15.0", "attrs==26.1.0", "psutil==7.2.2", "stevedore==5.8.0", "pytz==2026.2", "sqlparse==0.5.5", "pycparser==3.0", "requests==2.34.2", "edx-opaque-keys[django]==4.0.0", "six==1.17.0", "pymongo==4.17.0", "pillow==12.2.0", "django-simple-history==3.11.0", "simpleeval==1.0.7", "cffi==2.0.0", "edx-drf-extensions==10.6.0", "cryptography==48.0.0", "packaging==26.2"]',134,'["dnspython==2.8.0", "pylint==4.0.5", "pycasbin==2.8.0", "edx-api-doc-tools==3.0.0", "bracex==2.6", "ddt==1.7.2", "django==5.2.14", "ruff==0.15.15", "sphinxcontrib-serializinghtml==2.0.0", "pyyaml==6.0.3", "urllib3==2.7.0", "cachetools==7.1.4", "pylint-plugin-utils==0.9.0", "alabaster==1.0.0", "virtualenv==21.4.2", "twine==6.2.0", "sphinxcontrib-qthelp==2.0.0", "pytest-cov==7.1.0", "pylint-django==2.7.0", "attrs==26.1.0", "psutil==7.2.2", "sqlparse==0.5.5", "six==1.17.0", "rich==15.0.0", "astroid==4.0.4", "jaraco-context==6.1.2", "accessible-pygments==0.0.5", "platformdirs==4.10.0", "more-itertools==11.1.0", "python-discovery==1.4.0", "tomlkit==0.15.0", "secretstorage==3.5.0", "lxml[html-clean]==6.1.1", "restructuredtext-lint==2.0.2", "edx-lint==6.1.0", "path==16.16.0", "edx-django-utils==8.0.1", "chardet==7.4.3", "sphinxcontrib-htmlhelp==2.1.0", "casbin-django-orm-adapter==1.7.0", "sphinx==9.1.0", "jeepney==0.9.0", "pydocstyle==6.3.0", "distlib==0.4.0", "certifi==2026.5.20", "djangorestframework==3.17.1", "django-waffle==5.0.0", "pytest==9.0.3", "id==1.6.1", "keyring==25.7.0", "filelock==3.29.0", "sphinxcontrib-devhelp==2.0.0", "rfc3986==2.0.0", "edx-organizations==8.0.0", "docutils==0.21.2", "pylint-celery==0.3", "pip-tools==7.5.3", "isort==8.0.1", "code-annotations==3.0.0", "edx-opaque-keys[django]==4.0.0", "colorama==0.4.6", "pytest-django==4.12.0", "pyproject-hooks==1.2.0", "django-simple-history==3.11.0", "imagesize==2.0.0", "sphinxcontrib-applehelp==2.0.0", "edx-drf-extensions==10.6.0", "cryptography==48.0.0", "packaging==26.2", "click==8.4.1", "drf-jwt==1.19.2", "semantic-version==2.10.0", "charset-normalizer==3.4.7", "pyjwt[crypto]==2.13.0", "idna==3.17", "polib==1.2.0", "beautifulsoup4==4.14.3", "wheel==0.47.0", "soupsieve==2.8.4", "openedx-atlas==0.7.0", "drf-yasg==1.21.15", "click-log==0.4.0", "asgiref==3.11.1", "markupsafe==3.0.3", "fastavro==1.12.2", "setuptools==82.0.1", "iniconfig==2.3.0", "requests-toolbelt==1.0.0", "snowballstemmer==3.1.0", "django-crum==0.7.9", "python-slugify==8.0.4", "uritemplate==4.2.0", "edx-ccx-keys==2.0.2", "markdown-it-py==4.2.0", "roman-numerals==4.1.0", "stevedore==5.8.0", "nh3==0.3.5", "pytz==2026.2", "readme-renderer==44.0", "jaraco-functools==4.5.0", "edx-i18n-tools==2.0.0", "pillow==12.2.0", "tomli-w==1.2.0", "simpleeval==1.0.7", "diff-cover==10.3.0", "cffi==2.0.0", "build==1.5.0", "lxml-html-clean==0.4.5", "jinja2==3.1.6", "babel==2.18.0", "inflection==0.5.1", "openedx-events==11.2.0", "dill==0.4.1", "sphinx-book-theme==1.2.0", "coverage[toml]==7.14.1", "mdurl==0.1.2", "text-unidecode==1.3", "django-model-utils==5.0.0", "pluggy==1.6.0", "pyproject-api==1.10.1", "jaraco-classes==3.4.0", "wcmatch==10.1", "tox==4.55.0", "mccabe==0.7.0", "pynacl==1.6.2", "sphinxcontrib-jsmath==1.0.1", "typing-extensions==4.15.0", "pygments==2.20.0", "pip==26.1.2", "pycparser==3.0", "requests==2.34.2", "doc8==2.0.0", "pymongo==4.17.0", "pydata-sphinx-theme==0.16.1"]',10,'["code-annotations", "django-waffle", "pylint-django", "edx-django-utils", "pytest-django", "edx-organizations", "edx-drf-extensions", "djangorestframework", "edx-i18n-tools", "edx-api-doc-tools"]',15,'["code-annotations", "django-waffle", "django-model-utils", "drf-jwt", "pylint-django", "edx-django-utils", "pytest-django", "edx-organizations", "edx-drf-extensions", "djangorestframework", "django-crum", "django-simple-history", "edx-i18n-tools", "edx-api-doc-tools", "drf-yasg"]',7,'["code-annotations", "django-waffle", "edx-django-utils", "edx-organizations", "edx-drf-extensions", "edx-i18n-tools", "edx-api-doc-tools"]',1,NULL,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,15,'{"total_duration": "3149 minutes 10 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 56 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 14 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 3 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 30 seconds"}, {"name": "push", "duration": "0 minutes 19 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 55 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2025-05-20 17:33:52','main','Specifications for the authorization model, policy data structures, and enforcement APIs that define how access control is evaluated and managed across the Open edX ecosystem.',900,9,1,0,0,0,0,0,0,'2026-06-08 00:35:26','GNU AGPLv3',4,1,0,0,873,0,5393,1059767,0,0,1,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-authz/blob/main/LICENSE.txt: 404'']',1,'[''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://openedx-authz.readthedocs.io/en/latest/'', ''https://discuss.openedx.org'', ''https://github.com/openedx/openedx-authz/issues'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/openedx-authz'', ''https://openedx.atlassian.net/wiki/spaces/OEPM/pages/4724490259/PRD+Roles+Permissions'', ''https://openedx-authz.readthedocs.io/en/latest/concepts/core_roles_and_permissions/content_library_roles.html'', ''https://img.shields.io/pypi/v/openedx-authz.svg'', ''https://pypi.python.org/pypi/openedx-authz/'', ''https://github.com/openedx/openedx-authz/actions/workflows/ci.yml/badge.svg?branch=main'', ''https://github.com/openedx/openedx-authz/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/openedx-authz/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-authz?branch=main'', ''https://readthedocs.org/projects/openedx-authz/badge/?version=latest'', ''https://docs.openedx.org/projects/openedx-authz'', ''https://img.shields.io/pypi/pyversions/openedx-authz.svg'', ''https://img.shields.io/github/license/openedx/openedx-authz.svg'', ''https://img.shields.io/badge/Status-Experimental-yellow'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-authz','[''3'', ''3.12'']','https://github.com/openedx/openedx-authz',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-authoring',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,88,0,'',0,'{}',71,17,'{"@edx/stylelint-config-edx": "2.3.3", "@edx/typescript-config": "^1.0.1", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.6.1", "@types/lodash": "^4.17.17", "@types/react": "^18", "@types/react-dom": "^18", "axios-mock-adapter": "2.1.0", "dprint": "^0.54.0", "fetch-mock-jest": "^1.5.1", "jest-canvas-mock": "^2.5.2", "jest-expect-message": "^1.1.3", "oxlint": "^1.42.0", "oxlint-tsgolint": "^0.17.0", "react-test-renderer": "^18.3.1", "redux-mock-store": "^1.5.4"}','{"@codemirror/lang-html": "^6.0.0", "@codemirror/lang-markdown": "^6.0.0", "@codemirror/lang-xml": "^6.0.0", "@codemirror/lint": "^6.2.1", "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/modifiers": "^7.0.0", "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/browserslist-config": "1.5.1", "@edx/frontend-component-footer": "^14.9.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-enterprise-hotjar": "^7.2.0", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@openedx-plugins/course-app-calculator": "file:plugins/course-apps/calculator", "@openedx-plugins/course-app-dates": "file:plugins/course-apps/dates", "@openedx-plugins/course-app-edxnotes": "file:plugins/course-apps/edxnotes", "@openedx-plugins/course-app-learning_assistant": "file:plugins/course-apps/learning_assistant", "@openedx-plugins/course-app-live": "file:plugins/course-apps/live", "@openedx-plugins/course-app-ora_settings": "file:plugins/course-apps/ora_settings", "@openedx-plugins/course-app-proctoring": "file:plugins/course-apps/proctoring", "@openedx-plugins/course-app-progress": "file:plugins/course-apps/progress", "@openedx-plugins/course-app-teams": "file:plugins/course-apps/teams", "@openedx-plugins/course-app-wiki": "file:plugins/course-apps/wiki", "@openedx-plugins/course-app-xpert_unit_summary": "file:plugins/course-apps/xpert_unit_summary", "@openedx/frontend-build": "^14.6.6", "@openedx/frontend-plugin-framework": "^1.8.0", "@openedx/paragon": "^23.5.0", "@redux-devtools/extension": "^3.3.0", "@reduxjs/toolkit": "2.11.2", "@tanstack/react-query": "5.95.2", "@tanstack/react-table": "^8.21.3", "@tinymce/tinymce-react": "^6.0.0", "classnames": "2.5.1", "codemirror": "^6.0.0", "email-validator": "2.0.4", "fast-xml-parser": "^5.0.0", "file-saver": "^2.0.5", "formik": "2.4.9", "frontend-components-tinymce-advanced-plugins": "^1.0.3", "jszip": "^3.10.1", "lodash": "4.18.1", "meilisearch": "^0.41.0", "moment": "2.30.1", "moment-shortformat": "^2.1.0", "prop-types": "^15.8.1", "react": "^18.3.1", "react-datepicker": "^8.10.0", "react-dom": "^18.3.1", "react-error-boundary": "^4.0.13", "react-helmet": "^6.1.0", "react-onclickoutside": "^6.13.0", "react-redux": "7.2.9", "react-responsive": "10.0.1", "react-router": "6.30.3", "react-router-dom": "6.30.3", "react-select": "5.10.2", "react-textarea-autosize": "^8.5.3", "react-transition-group": "4.4.5", "redux": "4.2.1", "redux-logger": "^3.0.6", "redux-thunk": "^2.4.1", "reselect": "^4.1.5", "tinymce": "^5.10.4", "universal-cookie": "^8.0.0", "uuid": "^11.1.0", "xmlchecker": "^0.1.0", "yup": "0.32.11"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,35,'{"total_duration": "1438 minutes 42 seconds", "checks": [{"name": "tests", "duration": "10 minutes 56 seconds"}, {"name": "coverage", "duration": "0 minutes 10 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2020-05-06 18:34:51','master','Front-end for the Open edX Studio experience, implemented in React and Paragon.',52436,197,1,0,0,0,0,0,0,'2026-06-08 00:40:06','GNU AGPLv3',34,0,0,0,388,3211448,1967,0,0,0,0,0,0,0,0,0,'@edx/frontend-app-authoring','openedx',0,'[''https://github.com/overhangio/tutor: 504'', ''https://github.com/nvm-sh/nvm: 504'', ''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://github.com/openedx/frontend-app-discussions/: 504'', ''https://github.com/edx/edx-exams: 504'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file: 504'', ''https://travis-ci.com/edx/frontend-app-course-authoring: 415'', ''https://github.com/openedx/frontend-app-course-authoring/issues: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-course-authoring: 404'']',0,'[''https://github.com/openedx/edx-platform/tree/master/cms'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-app-authoring.git'', ''https://discuss.openedx.org/t/repo-rename-frontend-app-course-authoring-frontend-app-authoring/13930/2'', ''https://github.com/openedx/frontend-app-learning'', ''https://github.com/open-craft/tutor-contrib-meilisearch'', ''https://docs.tutor.edly.io/'', ''https://github.com/Automattic/node-canvas/issues/1733'', ''https://api.travis-ci.com/edx/frontend-app-course-authoring.svg?branch=master'', ''https://codecov.io/gh/edx/frontend-app-course-authoring/branch/master/graph/badge.svg'', ''https://codecov.io/gh/edx/frontend-app-course-authoring'', ''https://img.shields.io/npm/l/@edx/frontend-app-authoring.svg'', ''https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/r/how-to-contribute'', ''https://github.com/openedx/.github/blob/master/AI_POLICY.md'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-app-course-authoring.svg'', ''https://github.com/openedx/frontend-app-course-authoring/blob/master/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://codecov.io/github/openedx/frontend-app-course-authoring/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/frontend-app-course-authoring?branch=master'']',1,1,0,0,'','',1,'2026-04-16','2025-04-07','2',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-in-video-quiz',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,71,0,'[]',0,'',0,0,'','',16,'["python-dateutil==2.9.0.post0", "web-fragments==4.0.0", "markupsafe==3.0.3", "sqlparse==0.5.5", "asgiref==3.11.1", "django==5.2.14", "pytz==2026.2", "pyyaml==6.0.3", "six==1.17.0", "xblock==6.1.0", "simplejson==4.1.1", "webob==1.8.9", "lxml==6.1.1", "appdirs==1.4.4", "mako==1.3.12", "fs==2.4.16"]',71,'["python-slugify==8.0.4", "certifi==2026.5.20", "coverage[toml]==7.14.1", "distlib==0.4.0", "rich==15.0.0", "sqlparse==0.5.5", "tomli-w==1.2.0", "python-discovery==1.4.0", "pytz==2026.2", "pylint-celery==0.3", "packaging==26.2", "idna==3.17", "charset-normalizer==3.4.7", "pyyaml==6.0.3", "six==1.17.0", "lxml==6.1.1", "pygments==2.20.0", "pip-tools==7.5.3", "pycodestyle==2.14.0", "stevedore==5.8.0", "iniconfig==2.3.0", "mccabe==0.7.0", "fs==2.4.16", "python-dateutil==2.9.0.post0", "webob==1.8.9", "isort==8.0.1", "shellingham==1.5.4", "urllib3==2.7.0", "asgiref==3.11.1", "pylint-django==2.7.0", "dill==0.4.1", "pylint==4.0.5", "wheel==0.47.0", "jinja2==3.1.6", "coveralls==4.1.0", "click==8.4.1", "text-unidecode==1.3", "pytest-django==4.12.0", "virtualenv==21.4.1", "pylint-plugin-utils==0.9.0", "tomlkit==0.15.0", "filelock==3.29.0", "platformdirs==4.10.0", "coverage==7.14.1", "build==1.5.0", "typer==0.26.4", "django==5.2.14", "tox==4.55.0", "edx-lint==6.1.0", "xblock==6.1.0", "setuptools==82.0.1", "mako==1.3.12", "mdurl==0.1.2", "appdirs==1.4.4", "annotated-doc==0.0.4", "mock==5.2.0", "web-fragments==4.0.0", "requests==2.34.2", "markdown-it-py==4.2.0", "pluggy==1.6.0", "pyproject-api==1.10.1", "pyproject-hooks==1.2.0", "pytest==9.0.3", "markupsafe==3.0.3", "astroid==4.0.4", "code-annotations==3.0.0", "cachetools==7.1.4", "simplejson==4.1.1", "colorama==0.4.6", "pip==26.1.1", "click-log==0.4.0"]',5,'["pytest-django", "pylint-django", "code-annotations", "web-fragments", "xblock"]',5,'["pytest-django", "pylint-django", "code-annotations", "web-fragments", "xblock"]',3,'["xblock", "code-annotations", "web-fragments"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,0,0,12,'{"total_duration": "8147 minutes 7 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 9 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 35 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}]}','Other','2020-01-27 18:10:28','master','',469,24,1,0,0,0,0,0,0,'2026-06-07 01:06:27','GNU AGPLv3',2,0,1625,0,90,6580,1446,13037,0,0,0,0,0,0,0,0,'','openedx',2,'[''https://github.com/openedx/xblock-in-video-quiz@LATEST_RELEASE: 504'']',0,'[''https://github.com/Stanford-Online/xblock-in-video-quiz'', ''https://github.com/openedx/xblock-in-video-quiz/releases/tag/final-bsd-3c-contribution'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'invideoquiz-xblock','[''3'', ''3.12'']',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/enmerkar-underscore',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,50,0,'[]',0,'',0,0,'','',5,'["django==4.2.25", "babel==2.17.0", "sqlparse==0.5.3", "asgiref==3.10.0", "enmerkar==0.7.1"]',50,'["idna==3.11", "markupsafe==3.0.3", "pytest==8.4.2", "mccabe==0.7.0", "six==1.17.0", "flake8==7.3.0", "pycodestyle==2.14.0", "sphinxcontrib-devhelp==2.0.0", "pygments==2.19.2", "pip-tools==7.5.1", "execnet==2.1.1", "packaging==25.0", "enmerkar==0.7.1", "pip==25.2", "pluggy==1.6.0", "setuptools==80.9.0", "sphinxcontrib-serializinghtml==2.0.0", "django==4.2.25", "build==1.3.0", "babel==2.17.0", "sphinxcontrib-applehelp==2.0.0", "click==8.3.0", "asgiref==3.10.0", "pyflakes==3.4.0", "pyyaml==6.0.3", "requests==2.32.5", "iniconfig==2.3.0", "sphinxcontrib-qthelp==2.0.0", "urllib3==2.5.0", "coverage[toml]==7.11.0", "python-coveralls==2.9.3", "pytest-cov==7.0.0", "sphinxcontrib-jsmath==1.0.1", "charset-normalizer==3.4.4", "wheel==0.45.1", "pep8==1.7.1", "sqlparse==0.5.3", "docutils==0.21.2", "sphinx==8.2.3", "sphinxcontrib-htmlhelp==2.1.0", "pytest-flakes==4.0.5", "pyproject-hooks==1.2.0", "jinja2==3.1.6", "roman-numerals-py==3.1.0", "pytest-pep8==1.0.6", "snowballstemmer==3.0.1", "certifi==2025.10.5", "imagesize==1.4.1", "alabaster==1.0.0", "pytest-cache==1.0"]',0,'[]',1,'["enmerkar"]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,8,'{"total_duration": "76028 minutes 5 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 37 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 37 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 30 seconds"}, {"name": "tests (ubuntu-latest, 3.11, django52)", "duration": "0 minutes 29 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 29 seconds"}, {"name": "tests (ubuntu-latest, 3.11, django42)", "duration": "0 minutes 27 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 25 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 23 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 23 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 21 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 20 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 20 seconds"}]}','Other','2020-02-13 15:38:04','master','Django Babel Underscore Extractor',199,7,1,0,0,0,1,0,0,'2026-05-18 07:50:46','Modified BSD License',2,1,0,0,0,0,2121,12889,0,1,0,0,0,1,0,0,'','openedx',1,'[''https://github.com/openedx/enmerkar-underscore/actions?query=workflow%3A%22Python+CI%22: 504'', "https://pypip.in/d/django-babel-underscore/badge.png: HTTPSConnectionPool(host=''pypip.in'', port=443): Max retries exceeded with url: /d/django-babel-underscore/badge.png (Caused by ConnectTimeoutError(, ''Connection to pypip.in timed out. (connect timeout=None)''))", ''http://django-babel-underscore.readthedocs.org: 429'']',0,'[''https://badge.fury.io/py/django-babel-underscore.png'', ''http://badge.fury.io/py/django-babel-underscore'', ''https://github.com/openedx/enmerkar-underscore/workflows/Python%20CI/badge.svg?branch=master'', ''https://pypi.python.org/pypi/django-babel-underscore'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'enmerkar-underscore','[''3'', ''3.11'', ''3.12'']','https://github.com/openedx/enmerkar-underscore',1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-security',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "70559 minutes 10 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 41 seconds"}, {"name": "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 23 seconds"}, {"name": "Dependabot", "duration": "0 minutes 22 seconds"}, {"name": "Dependabot", "duration": "0 minutes 19 seconds"}, {"name": "Dependabot", "duration": "0 minutes 3 seconds"}]}','Other','2023-01-13 16:25:20','main','A repo to keep public issues related to Security Working Group Work',17,2,1,0,0,0,0,0,0,'2025-10-30 15:17:42',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/FeedbackXBlock',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,129,0,'[]',0,'',0,0,'','',31,'["python-dateutil==2.9.0.post0", "typing-extensions==4.15.0", "django-crum==0.7.9", "asgiref==3.11.1", "pyyaml==6.0.3", "urllib3==2.6.3", "webob==1.8.9", "fs-s3fs==1.1.1", "appdirs==1.4.4", "jmespath==1.1.0", "botocore==1.42.88", "openedx-filters==3.1.0", "pytz==2026.1.post1", "s3transfer==0.16.0", "stevedore==5.7.0", "pymongo==4.16.0", "sqlparse==0.5.5", "lxml==6.0.4", "edx-opaque-keys[django]==4.0.0", "django==5.2.13", "markupsafe==3.0.3", "six==1.17.0", "xblock[django]==6.0.0", "openedx-django-pyfs==4.0.0", "lazy==1.6", "dnspython==2.8.0", "simplejson==3.20.2", "boto3==1.42.88", "fs==2.4.16", "mako==1.3.10", "web-fragments==4.0.0"]',129,'["setuptools==82.0.1", "sphinxcontrib-htmlhelp==2.1.0", "roman-numerals==4.1.0", "jaraco-classes==3.4.0", "jinja2==3.1.6", "appdirs==1.4.4", "edx-lint==6.0.0", "cryptography==46.0.7", "sphinxcontrib-applehelp==2.0.0", "stevedore==5.7.0", "cookiecutter==2.7.1", "sqlparse==0.5.5", "lxml==6.0.4", "tomli-w==1.2.0", "pypng==0.20220715.0", "shellingham==1.5.4", "accessible-pygments==0.0.5", "markupsafe==3.0.3", "requests==2.33.1", "arrow==1.4.0", "rfc3986==2.0.0", "rich==15.0.0", "ddt==1.7.2", "lazy==1.6", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", "text-unidecode==1.3", "twine==6.2.0", "beautifulsoup4==4.14.3", "annotated-doc==0.0.4", "pylint-celery==0.3", "wheel==0.46.3", "id==1.6.1", "python-dateutil==2.9.0.post0", "typing-extensions==4.15.0", "django-crum==0.7.9", "pyyaml==6.0.3", "urllib3==2.6.3", "packaging==26.0", "pycparser==3.0", "jmespath==1.1.0", "botocore==1.42.88", "cachetools==7.0.5", "idna==3.11", "s3transfer==0.16.0", "babel==2.18.0", "imagesize==2.0.0", "edx-opaque-keys[django]==4.0.0", "readme-renderer==44.0", "secretstorage==3.5.0", "soupsieve==2.8.3", "xblock[django]==6.0.0", "pytest-django==4.12.0", "sphinx-book-theme==1.2.0", "pluggy==1.6.0", "jeepney==0.9.0", "lxml-html-clean==0.4.4", "dnspython==2.8.0", "coverage[toml]==7.13.5", "tzdata==2026.1", "simplejson==3.20.2", "coveralls==4.1.0", "sphinxcontrib-devhelp==2.0.0", "python-slugify==8.0.4", "click==8.3.2", "requests-toolbelt==1.0.0", "mccabe==0.7.0", "asgiref==3.11.1", "xblock-sdk==0.14.0", "webob==1.8.9", "more-itertools==11.0.2", "polib==1.2.0", "pytz==2026.1.post1", "path==16.16.0", "pymongo==4.16.0", "certifi==2026.2.25", "alabaster==1.0.0", "distlib==0.4.0", "docutils==0.22.4", "django==5.2.13", "six==1.17.0", "isort==8.0.1", "pydata-sphinx-theme==0.16.1", "charset-normalizer==3.4.7", "keyring==25.7.0", "pip-tools==7.5.3", "astroid==4.0.4", "fs==2.4.16", "mdurl==0.1.2", "web-fragments==4.0.0", "dill==0.4.1", "binaryornot==0.6.0", "pylint==4.0.5", "tox==4.52.1", "platformdirs==4.9.6", "code-annotations==3.0.0", "sphinxcontrib-jsmath==1.0.1", "markdown-it-py==4.0.0", "pytest==9.0.3", "fs-s3fs==1.1.1", "jaraco-context==6.1.2", "openedx-filters==3.1.0", "filelock==3.25.2", "build==1.4.3", "pyproject-api==1.10.0", "typer==0.24.1", "lxml[html-clean]==6.0.4", "tomlkit==0.14.0", "nh3==0.3.4", "click-log==0.4.0", "pip==26.0.1", "python-discovery==1.2.2", "openedx-django-pyfs==4.0.0", "iniconfig==2.3.0", "sphinxcontrib-serializinghtml==2.0.0", "colorama==0.4.6", "cffi==2.0.0", "jaraco-functools==4.4.0", "pylint-django==2.7.0", "boto3==1.42.88", "mako==1.3.10", "virtualenv==21.2.1", "edx-i18n-tools==2.0.0", "sphinx==9.1.0", "pygments==2.20.0", "sphinxcontrib-qthelp==2.0.0", "pylint-plugin-utils==0.9.0", "mock==5.2.0", "snowballstemmer==3.0.1"]',6,'["pytest-django", "pylint-django", "code-annotations", "edx-i18n-tools", "xblock-sdk", "web-fragments"]',7,'["django-crum", "pytest-django", "pylint-django", "code-annotations", "edx-i18n-tools", "xblock-sdk", "web-fragments"]',4,'["code-annotations", "edx-i18n-tools", "xblock-sdk", "web-fragments"]',0,NULL,1,0,1,0,0,0,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,4,'{"total_duration": "5 minutes 23 seconds", "checks": [{"name": "Tests (3.12, django52)", "duration": "1 minutes 18 seconds"}, {"name": "Analyze (javascript)", "duration": "1 minutes 17 seconds"}, {"name": "Tests (3.12, django42)", "duration": "1 minutes 0 seconds"}, {"name": "Analyze (python)", "duration": "0 minutes 59 seconds"}, {"name": "Tests (3.12, quality)", "duration": "0 minutes 55 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "push", "duration": "0 minutes 20 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2022-11-22 21:30:41','master','An XBlock to allow students to provide feedback on course materials',699,15,1,0,1,0,0,0,0,'2026-04-14 15:08:30','GNU AGPLv3',0,1,2578,0,11634,3703,3711,43450,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\''www.gnu.org\'', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError("HTTPSConnection(host=\''www.gnu.org\'', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable"))'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/FeedbackXBlock: 404'']',1,'[''https://img.shields.io/badge/status-deprecated-red'', ''https://github.com/openedx/xblocks-extra'', ''https://img.shields.io/badge/License-AGPL_v3-blue.svg'', ''https://github.com/openedx/FeedbackXBlock/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/FeedbackXBlock/actions/workflows/ci.yml'', ''https://github.com/openedx/FeedbackXBlock/actions/workflows/pypi-release.yml/badge.svg'', ''https://github.com/openedx/FeedbackXBlock/actions/workflows/pypi-release.yml'', ''https://img.shields.io/badge/status-maintained-31c653'', ''https://openedx.org/r/xblock'', ''https://docs.tutor.edly.io/tutorials/plugin.html'', ''https://docs.tutor.edly.io/configuration.html'', ''https://discuss.openedx.org'', ''https://github.com/openedx/FeedbackXBlock/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'feedback-xblock','[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-milestones',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,55,0,'[]',0,'',0,0,'','',11,'["stevedore==5.7.0", "six==1.17.0", "django-model-utils==5.0.0", "asgiref==3.11.1", "typing-extensions==4.15.0", "setuptools==82.0.0", "dnspython==2.8.0", "sqlparse==0.5.5", "edx-opaque-keys==3.1.0", "pymongo==4.16.0", "django==5.2.12"]',55,'["pylint-django==2.7.0", "dill==0.4.1", "click-log==0.4.0", "dnspython==2.8.0", "astroid==4.0.4", "pip-tools==7.5.3", "sqlparse==0.5.5", "cachetools==7.0.3", "markupsafe==3.0.3", "tox==4.49.0", "virtualenv==21.1.0", "stevedore==5.7.0", "pylint-plugin-utils==0.9.0", "build==1.4.0", "colorama==0.4.6", "packaging==26.0", "pyyaml==6.0.3", "pytest-cov==7.0.0", "snowballstemmer==3.0.1", "mccabe==0.7.0", "django==5.2.12", "coverage[toml]==7.13.4", "platformdirs==4.9.4", "pycodestyle==2.14.0", "text-unidecode==1.3", "pylint-celery==0.3", "six==1.17.0", "iniconfig==2.3.0", "edx-lint==5.6.0", "pluggy==1.6.0", "distlib==0.4.0", "click==8.3.1", "wheel==0.46.3", "jinja2==3.1.6", "typing-extensions==4.15.0", "setuptools==82.0.0", "pydocstyle==6.3.0", "pygments==2.19.2", "tomlkit==0.14.0", "pip==26.0.1", "edx-opaque-keys==3.1.0", "pytest-django==4.12.0", "python-slugify==8.0.4", "pyproject-api==1.10.0", "django-model-utils==5.0.0", "code-annotations==2.3.2", "asgiref==3.11.1", "isort==8.0.1", "tomli-w==1.2.0", "filelock==3.25.0", "pylint==4.0.5", "python-discovery==1.1.0", "pymongo==4.16.0", "pytest==9.0.2", "pyproject-hooks==1.2.0"]',4,'["pytest-django", "edx-opaque-keys", "pylint-django", "code-annotations"]',5,'["pytest-django", "pylint-django", "django-model-utils", "code-annotations", "edx-opaque-keys"]',2,'["edx-opaque-keys", "code-annotations"]',0,NULL,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,4,'{"total_duration": "5905 minutes 17 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 50 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2014-11-24 16:56:50','master','',340,14,1,0,0,0,0,0,0,'2026-06-03 17:38:07','GNU AGPLv3',4,1,0,0,0,0,2187,121038,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'']',1,'[''https://github.com/openedx/edx-milestones/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-milestones/actions?query=workflow%3A%22Python+CI%22'', ''https://img.shields.io/coveralls/edx/edx-milestones.svg'', ''https://coveralls.io/r/edx/edx-milestones?branch=master'', ''https://github.com/openedx/edx-platform/blob/master/requirements/edx/base.in'', ''https://github.com/openedx/edx-platform/'', ''https://docs.openedx.org/en/latest/site_ops/install_configure_run_guide/configuration/enable_prerequisites.html'', ''https://docs.openedx.org/en/latest/educators/references/controlling_content_visibility.html'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://discuss.openedx.org'', ''http://openedx.slack.com/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-milestones','[''3'', ''3.12'']','https://github.com/openedx/edx-milestones',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/platform-roadmap',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "15434 minutes 23 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "notifications", "duration": "0 minutes 5 seconds"}, {"name": "notifications", "duration": "0 minutes 3 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}]}','Other','2021-10-26 14:50:21','main','Tracking the maintenance, enhancement, and advancement of the Open edX project.',34,5,1,0,0,0,0,0,0,'2025-10-30 15:11:06',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/orgs/openedx/projects/4/views/1: 504'']',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-base',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,97,0,'',0,'{}',81,16,'{"@edx/browserslist-config": "^1.5.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@tsconfig/node24": "^24.0.4", "@types/compression": "^1.7.5", "@types/jest": "^29.5.14", "@types/lodash": "^4.17.24", "@types/node": "^24.12.0", "@types/react": "^18.3.20", "@types/react-dom": "^18.3.6", "axios-mock-adapter": "^1.22.0", "jest-chain": "^1.1.6", "jsdoc": "^4.0.3", "nodemon": "^3.1.4"}','{"@babel/core": "^7.24.9", "@babel/preset-env": "^7.24.8", "@babel/preset-react": "^7.26.3", "@babel/preset-typescript": "^7.24.7", "@edx/new-relic-source-map-webpack-plugin": "2.1.0", "@eslint/compat": "^1.2.1", "@eslint/js": "^9.13.0", "@formatjs/cli": "^6.0.3", "@formatjs/ts-transformer": "^3.13.14", "@pmmmwh/react-refresh-webpack-plugin": "^0.6.0", "@stylistic/eslint-plugin": "^2.9.0", "@tanstack/react-query-devtools": "^5.99.0", "@types/eslint__js": "^8.42.3", "@types/gradient-string": "^1.1.6", "autoprefixer": "^10.4.20", "axios": "^1.7.9", "axios-cache-interceptor": "^1.6.0", "babel-jest": "^29.7.0", "babel-plugin-formatjs": "^10.5.16", "chalk": "^4.1.2", "classnames": "^2.5.1", "clean-webpack-plugin": "^4.0.0", "compression": "^1.7.4", "css-loader": "^7.1.2", "cssnano": "^6.1.2", "eslint": "^9.13.0", "eslint-plugin-formatjs": "^5.1.3", "eslint-plugin-jest": "^28.8.3", "eslint-plugin-jsx-a11y": "^6.10.1", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0", "express": "^4.18.2", "file-loader": "6.2.0", "fork-ts-checker-webpack-plugin": "^9.0.2", "form-urlencoded": "^6.1.5", "glob": "^7.2.3", "globals": "^15.11.0", "gradient-string": "^2.0.2", "html-webpack-plugin": "5.6.7", "identity-obj-proxy": "3.0.0", "image-minimizer-webpack-plugin": "3.8.3", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-localstorage-mock": "^2.4.26", "jwt-decode": "^3.1.2", "localforage": "^1.10.0", "localforage-memoryStorageDriver": "^0.9.2", "lodash": "^4.18.1", "mini-css-extract-plugin": "1.6.2", "parse5": "7.3.0", "postcss": "^8.4.47", "postcss-custom-media": "10.0.8", "postcss-loader": "7.3.4", "postcss-rtlcss": "^5.5.0", "prop-types": "^15.8.1", "react-dev-utils": "12.0.1", "react-focus-on": "^3.10.2", "react-intl": "^6.6.6", "react-refresh": "0.18.0", "react-refresh-typescript": "^2.0.9", "react-responsive": "^10.0.0", "react-transition-group": "^4.4.5", "resolve-url-loader": "^5.0.0", "sass-embedded": "^1.87.0", "sass-loader": "^16.0.2", "sharp": "^0.34.0", "source-map-loader": "4.0.2", "style-loader": "^4.0.0", "ts-loader": "^9.5.7", "tsconfig-paths-webpack-plugin": "^4.2.0", "typescript": "^5.6.3", "typescript-eslint": "^8.11.0", "universal-cookie": "^8.0.1", "url-loader": "^4.1.1", "uuid": "^11.0.2", "webpack": "^5.97.1", "webpack-bundle-analyzer": "^4.10.1", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.1.0", "webpack-merge": "^5.10.0", "webpack-remove-empty-scripts": "1.1.1"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,4,'{"total_duration": "2 minutes 20 seconds", "checks": [{"name": "tests", "duration": "2 minutes 20 seconds"}, {"name": "Release", "duration": "1 minutes 4 seconds"}, {"name": "version-check / mismatch-check", "duration": "0 minutes 10 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2024-06-26 19:45:23','main','[pre-alpha] Future Open edX frontend framework implemented for OEP-65',51179,10,1,0,0,0,0,0,0,'2026-05-16 20:38:36','GNU AGPLv3',3,1,0,0,493,214579,1232,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/frontend-build: 504'', ''https://github.com/openedx/frontend-platform: 504'', ''https://github.com/openedx/frontend-plugin-framework: 504'', ''https://github.com/openedx/frontend-component-header: 504'', ''https://github.com/openedx/frontend-component-footer: 504'', ''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://github.com/openedx/frontend-dev-utils/blob/main/tools/autoinstall/README.md: 504'']',0,'[''https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0065-arch-frontend-composability.html'', ''https://github.com/openedx/open-edx-proposals/pull/598'', ''https://discuss.openedx.org/t/oep-65-adjacent-a-frontend-architecture-vision/13223'', ''https://github.com/orgs/openedx/projects/65/views/1'', ''https://openedx.slack.com/archives/C04BM6YC7A6'']',1,1,0,0,'','',1,'2020-01-07','2025-04-25','1',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-search',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,97,0,'[]',0,'',0,0,'','',61,'["camel-converter[pydantic]==5.1.0", "python-slugify==8.0.4", "meilisearch==0.40.0", "click-repl==0.3.0", "django-crum==0.7.9", "prompt-toolkit==3.0.52", "billiard==4.2.4", "six==1.17.0", "pyyaml==6.0.3", "wcwidth==0.6.0", "pycparser==3.0", "celery==5.6.3", "markupsafe==3.0.3", "tzdata==2026.1", "idna==3.11", "amqp==5.3.1", "psutil==7.2.2", "dnspython==2.8.0", "h11==0.16.0", "typesense==2.0.0", "charset-normalizer==3.4.7", "edx-opaque-keys[django]==4.0.0", "edx-ccx-keys==2.0.2", "urllib3==1.26.20", "attrs==26.1.0", "httpx==0.28.1", "click-plugins==1.1.1.2", "python-dateutil==2.9.0.post0", "tzlocal==5.3.1", "edx-toggles==6.0.0", "httpcore==1.0.9", "elasticsearch==7.13.4", "vine==5.1.0", "django-waffle==5.0.0", "asgiref==3.11.1", "django==5.2.13", "pynacl==1.6.2", "typing-inspection==0.4.2", "pytz==2026.1.post1", "sqlparse==0.5.5", "stevedore==5.7.0", "event-tracking==4.0.0", "click==8.3.2", "edx-django-utils==8.0.1", "fastavro==1.12.1", "typing-extensions==4.15.0", "certifi==2026.2.25", "jinja2==3.1.6", "click-didyoumean==0.3.1", "kombu==5.6.2", "openedx-events==11.1.0", "pydantic-core==2.41.5", "pymongo==4.16.0", "code-annotations==3.0.0", "anyio==4.13.0", "packaging==26.0", "pydantic==2.12.5", "cffi==2.0.0", "requests==2.33.1", "text-unidecode==1.3", "annotated-types==0.7.0"]',97,'["meilisearch==0.40.0", "click-repl==0.3.0", "tox==4.52.0", "celery==5.6.3", "dill==0.4.1", "iniconfig==2.3.0", "tzdata==2026.1", "pyproject-api==1.10.0", "amqp==5.3.1", "pluggy==1.6.0", "platformdirs==4.9.4", "charset-normalizer==3.4.7", "edx-opaque-keys[django]==4.0.0", "python-dateutil==2.9.0.post0", "edx-toggles==6.0.0", "typing-inspection==0.4.2", "django==5.2.13", "pynacl==1.6.2", "astroid==4.0.4", "coverage[toml]==7.13.5", "sqlparse==0.5.5", "event-tracking==4.0.0", "click-log==0.4.0", "fastavro==1.12.1", "typing-extensions==4.15.0", "certifi==2026.2.25", "colorama==0.4.6", "edx-lint==6.0.0", "openedx-events==11.1.0", "packaging==26.0", "build==1.4.2", "text-unidecode==1.3", "django-crum==0.7.9", "virtualenv==21.2.0", "h11==0.16.0", "edx-ccx-keys==2.0.2", "urllib3==1.26.20", "tzlocal==5.3.1", "httpcore==1.0.9", "ddt==1.3.1", "cachetools==7.0.5", "distlib==0.4.0", "tomlkit==0.14.0", "pylint-celery==0.3", "cffi==2.0.0", "pytest==9.0.3", "pyproject-hooks==1.2.0", "pygments==2.20.0", "annotated-types==0.7.0", "camel-converter[pydantic]==5.1.0", "python-slugify==8.0.4", "pylint==4.0.5", "billiard==4.2.4", "pyyaml==6.0.3", "wcwidth==0.6.0", "pycparser==3.0", "markupsafe==3.0.3", "tomli-w==1.2.0", "mock==5.2.0", "filelock==3.25.2", "python-discovery==1.2.2", "httpx==0.28.1", "click-plugins==1.1.1.2", "elasticsearch==7.13.4", "django-waffle==5.0.0", "edx-django-utils==8.0.1", "jinja2==3.1.6", "pylint-plugin-utils==0.9.0", "kombu==5.6.2", "code-annotations==3.0.0", "pytest-cov==7.1.0", "pydantic==2.12.5", "prompt-toolkit==3.0.52", "six==1.17.0", "pip==26.0.1", "idna==3.11", "psutil==7.2.2", "pycodestyle==2.14.0", "dnspython==2.8.0", "typesense==2.0.0", "pylint-django==2.7.0", "attrs==26.1.0", "pip-tools==7.5.3", "vine==5.1.0", "asgiref==3.11.1", "pytz==2026.1.post1", "stevedore==5.7.0", "setuptools==82.0.1", "click==8.3.2", "mccabe==0.7.0", "click-didyoumean==0.3.1", "isort==8.0.1", "pydantic-core==2.41.5", "pymongo==4.16.0", "wheel==0.46.3", "anyio==4.13.0", "requests==2.33.1"]',6,'["event-tracking", "edx-toggles", "django-waffle", "code-annotations", "pylint-django", "edx-django-utils"]',7,'["event-tracking", "edx-toggles", "django-waffle", "code-annotations", "pylint-django", "edx-django-utils", "django-crum"]',5,'["event-tracking", "edx-toggles", "django-waffle", "code-annotations", "edx-django-utils"]',0,NULL,1,0,1,0,0,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,48,'{"total_duration": "2028 minutes 36 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "2 minutes 0 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 55 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 30 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 15 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2015-01-14 19:35:31','master','',486,57,1,0,0,0,0,0,0,'2026-06-08 01:04:55','GNU AGPLv3',5,1,0,0,0,0,3723,328817,1642,0,1,0,1,1,0,0,'','openedx',2,'[]',0,'[''https://github.com/openedx/edx-search/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-search/actions?query=workflow%3A%22Python+CI%22'', ''https://coveralls.io/repos/edx/edx-search/badge.svg?branch=master&service=github'', ''https://coveralls.io/github/edx/edx-search?branch=master'', ''https://docs.openedx.org/en/latest/site_ops/how-tos/use_typesense_search_backend.html'', ''https://github.com/typesense/typesense-python'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'edx-search','[''3'', ''3.12'']','https://github.com/openedx/edx-search',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-foundation-android',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,4,'{"total_duration": "", "checks": []}','Other','2024-10-07 11:31:37','main','',157,3,1,0,0,0,0,0,0,'2026-05-25 08:05:19','Apache License 2.0',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://jitpack.io'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/brand-openedx',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,2,0,'',0,'{}',0,2,'{"@openedx/paragon": "^23.0.0", "nodemon": "^3.1.10"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,6,'{"total_duration": "12018 minutes 34 seconds", "checks": [{"name": "Release", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 23 seconds"}, {"name": "Dependabot", "duration": "0 minutes 21 seconds"}]}','Other','2020-09-08 20:23:21','master','',175,208,1,0,0,0,0,0,0,'2026-06-02 15:34:53','GNU AGPLv3',1,0,0,0,0,0,449,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://github.com/edx/brand'', ''https://docs.openedx.org/projects/openedx-proposals/en/latest/architectural-decisions/oep-0048-brand-customization.html'', ''https://styledictionary.com/'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/XBlock',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,16,'{"total_duration": "2327 minutes 41 seconds", "checks": [{"name": "release", "duration": "1 minutes 12 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 0 seconds"}, {"name": "run_tests / tests (3.12, django42)", "duration": "0 minutes 41 seconds"}, {"name": "Dependabot", "duration": "0 minutes 40 seconds"}, {"name": "run_tests / tests (3.12, django52)", "duration": "0 minutes 35 seconds"}, {"name": "run_tests / tests (3.12, quality)", "duration": "0 minutes 33 seconds"}, {"name": "update-uv-graph", "duration": "0 minutes 33 seconds"}, {"name": "run_tests / tests (3.12, docs)", "duration": "0 minutes 25 seconds"}, {"name": "publish_to_pypi", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2013-03-11 18:35:36','master','Framework for building custom learning components that run in the Open edX LMS!',3953,226,1,0,0,0,0,0,0,'2026-06-07 00:41:14','Apache License 2.0',5,1,0,0,6518,10004,1183,483407,0,0,1,0,0,1,0,0,'','openedx',0,'[''http://scorm.com/scorm-explained/: 403'', ''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://github.com/openedx/XBlock/blob/master/LICENSE.txt: 404'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'']',1,'[''http://www.lon-capa.org/'', ''http://www.imsglobal.org/toolsinteroperability2.cfm'', ''https://github.com/openedx/XBlock/blob/master/CHANGELOG.rst'', ''https://github.com/openedx/XBlock/blob/master/xblock/__init__.py'', ''https://github.com/openedx/xblock-sdk'', ''https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/index.html'', ''https://discuss.openedx.org'', ''https://github.com/openedx/XBlock/issues'', ''https://openedx.slack.com/'', ''https://backstage.openedx.org/catalog/default/component/xblock'', ''https://img.shields.io/pypi/v/XBlock.svg'', ''https://pypi.python.org/pypi/XBlock/'', ''https://github.com/openedx/XBlock/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/XBlock/actions'', ''https://codecov.io/github/openedx/XBlock/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/XBlock?branch=master'', ''https://readthedocs.org/projects/XBlock/badge/?version=latest'', ''https://docs.openedx.org/projects/xblock/en/latest/'', ''https://img.shields.io/pypi/pyversions/XBlock.svg'', ''https://img.shields.io/github/license/openedx/XBlock.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xqueue-watcher',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,1,1,1,9,'{"total_duration": "36323 minutes 23 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.14)", "duration": "0 minutes 46 seconds"}, {"name": "Tests (ubuntu-latest, 3.12)", "duration": "0 minutes 44 seconds"}, {"name": "Build and push grader base image (Python 3.13)", "duration": "0 minutes 44 seconds"}, {"name": "Tests (ubuntu-latest, 3.13)", "duration": "0 minutes 42 seconds"}, {"name": "Build and push grader base image (Python 3.13)", "duration": "0 minutes 41 seconds"}, {"name": "Build and push grader base image (Python 3.12)", "duration": "0 minutes 41 seconds"}, {"name": "Build and push grader base image (Python 3.12)", "duration": "0 minutes 40 seconds"}, {"name": "Build and push grader base image (Python 3.12)", "duration": "0 minutes 39 seconds"}, {"name": "Build and push grader base image (Python 3.13)", "duration": "0 minutes 38 seconds"}, {"name": "Build and push grader base image (Python 3.12)", "duration": "0 minutes 34 seconds"}, {"name": "Build and push grader base image (Python 3.14)", "duration": "0 minutes 33 seconds"}, {"name": "Build and push grader base image (Python 3.14)", "duration": "0 minutes 30 seconds"}, {"name": "Build and push grader base image (Python 3.14)", "duration": "0 minutes 29 seconds"}, {"name": "Build and push grader base image (Python 3.14)", "duration": "0 minutes 28 seconds"}, {"name": "Build and push grader base image (Python 3.13)", "duration": "0 minutes 28 seconds"}, {"name": "Build and push grader base image (Python 3.12)", "duration": "0 minutes 28 seconds"}, {"name": "Build and push grader base image (Python 3.14)", "duration": "0 minutes 28 seconds"}, {"name": "Build and push grader base image (Python 3.13)", "duration": "0 minutes 24 seconds"}, {"name": "update-dependencies", "duration": "0 minutes 13 seconds"}, {"name": "update-dependencies", "duration": "0 minutes 8 seconds"}, {"name": "update-dependencies", "duration": "0 minutes 8 seconds"}]}','Other','2014-04-22 20:08:42','master','',354,43,1,0,0,0,0,0,0,'2026-05-29 16:29:08','GNU AGPLv3',6,1,0,1559,0,0,788,175853,0,0,0,0,0,1,0,0,'','openedx',0,'[''http://xqueue-svc: HTTPConnectionPool(host=\''xqueue-svc\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''xqueue-svc\'', port=80): Failed to resolve \''xqueue-svc\'' ([Errno -3] Temporary failure in name resolution)"))'']',0,'[''https://github.com/openedx/xqueue'', ''https://github.com/openedx/codejail'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]','[''git-core'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-celeryutils',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,129,0,'[]',0,'',0,0,'','',21,'["kombu==5.6.2", "click-didyoumean==0.3.1", "django==5.2.13", "python-dateutil==2.9.0.post0", "tzlocal==5.3.1", "amqp==5.3.1", "prompt-toolkit==3.0.52", "wcwidth==0.6.0", "asgiref==3.11.1", "click-repl==0.3.0", "sqlparse==0.5.5", "packaging==26.0", "django-model-utils==5.0.0", "click==8.3.2", "tzdata==2026.1", "vine==5.1.0", "billiard==4.2.4", "six==1.17.0", "celery==5.6.3", "click-plugins==1.1.1.2", "jsonfield==3.2.0"]',129,'["jaraco-classes==3.4.0", "path==16.16.0", "dill==0.4.1", "amqp==5.1.1", "mdurl==0.1.2", "sphinxcontrib-devhelp==2.0.0", "text-unidecode==1.3", "pytest==9.0.2", "amqp==5.3.1", "diff-cover==10.2.0", "accessible-pygments==0.0.5", "cryptography==46.0.6", "rich==14.3.3", "sphinx==9.1.0", "pip-tools==7.5.3", "snowballstemmer==3.0.1", "pylint-celery==0.3", "django-model-utils==5.0.0", "keyring==25.7.0", "alabaster==1.0.0", "secretstorage==3.5.0", "coverage[toml]==7.13.5", "freezegun==1.5.5", "pylint-plugin-utils==0.9.0", "mccabe==0.7.0", "pyproject-hooks==1.2.0", "celery==5.3.1", "jaraco-context==6.1.2", "celery==5.6.3", "docutils==0.21.2", "urllib3==2.6.3", "colorama==0.4.6", "pydocstyle==3.0.0", "roman-numerals==4.1.0", "ddt==1.7.2", "lxml[html-clean]==6.0.2", "pylint-django==2.7.0", "edx-lint==6.0.0", "tox==4.52.0", "python-memcached==1.62", "pycparser==3.0", "prompt-toolkit==3.0.52", "sphinxcontrib-applehelp==2.0.0", "requests-toolbelt==1.0.0", "readme-renderer==44.0", "soupsieve==2.8.3", "click==8.1.8", "pip==26.0.1", "sphinxcontrib-qthelp==2.0.0", "doc8==2.0.0", "click-repl==0.3.0", "babel==2.18.0", "distlib==0.4.0", "pycodestyle==2.14.0", "billiard==4.1.0", "jinja2==3.1.6", "vine==5.1.0", "edx-i18n-tools==2.0.0", "billiard==4.2.4", "click-log==0.4.0", "pyproject-api==1.10.0", "twine==6.2.0", "pylint==4.0.5", "id==1.6.1", "pydata-sphinx-theme==0.16.1", "isort==8.0.1", "pytest-django==4.12.0", "jaraco-functools==4.4.0", "click-plugins==1.1.1.2", "pockets==0.9.1", "lxml-html-clean==0.4.4", "python-slugify==8.0.4", "typing-extensions==4.15.0", "pygments==2.20.0", "nh3==0.3.4", "pyyaml==6.0.3", "wheel==0.46.3", "markupsafe==3.0.3", "platformdirs==4.9.4", "sphinxcontrib-htmlhelp==2.1.0", "asgiref==3.11.1", "imagesize==2.0.0", "packaging==26.0", "stevedore==5.7.0", "sphinxcontrib-serializinghtml==2.0.0", "sphinxcontrib-jsmath==1.0.1", "restructuredtext-lint==2.0.2", "tzdata==2026.1", "cffi==2.0.0", "sphinxcontrib-napoleon==0.7", "iniconfig==2.3.0", "markdown-it-py==4.0.0", "prompt-toolkit==3.0.51", "jeepney==0.9.0", "six==1.17.0", "cachetools==7.0.5", "chardet==7.4.0.post2", "code-annotations==3.0.0", "beautifulsoup4==4.14.3", "python-discovery==1.2.1", "jsonfield==3.2.0", "tomlkit==0.14.0", "kombu==5.6.2", "click-didyoumean==0.3.1", "sphinx-book-theme==1.2.0", "virtualenv==21.2.0", "django==5.2.13", "pluggy==1.6.0", "python-dateutil==2.9.0.post0", "tzlocal==5.3.1", "requests==2.33.1", "filelock==3.25.2", "wcwidth==0.6.0", "idna==3.11", "setuptools==82.0.1", "pytest-cov==7.1.0", "rfc3986==2.0.0", "astroid==4.0.4", "kombu==5.5.3", "polib==1.2.0", "sqlparse==0.5.5", "build==1.4.2", "click==8.3.2", "more-itertools==11.0.1", "mock==5.2.0", "certifi==2026.2.25", "docutils==0.22.4", "charset-normalizer==3.4.7", "tomli-w==1.2.0"]',4,'["pylint-django", "code-annotations", "pytest-django", "edx-i18n-tools"]',6,'["pytest-django", "pylint-django", "edx-i18n-tools", "code-annotations", "jsonfield", "django-model-utils"]',2,'["code-annotations", "edx-i18n-tools"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,67,'{"total_duration": "6565 minutes 55 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 42 seconds"}, {"name": "Dependabot", "duration": "1 minutes 26 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 7 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 45 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 30 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 27 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2017-02-01 23:33:38','master','Tools to support working with celery.',492,12,1,0,0,0,0,0,0,'2026-06-04 04:33:17','Apache License 2.0',16,1,0,0,0,0,3693,33759,0,1,1,0,0,1,0,0,'','openedx',4,'[''http://edx-celeryutils.readthedocs.io/en/latest/?badge=latest: 404'', ''http://edx-celeryutils.readthedocs.io/en/latest/: 404'', ''https://open.edx.org/getting-help: 403'']',1,'[''https://img.shields.io/pypi/v/edx-celeryutils.svg'', ''https://pypi.python.org/pypi/edx-celeryutils/'', ''https://github.com/openedx/edx-celeryutils/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-celeryutils/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/edx-celeryutils/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-celeryutils?branch=master'', ''https://img.shields.io/pypi/pyversions/edx-celeryutils.svg'', ''https://img.shields.io/github/license/edx/edx-celeryutils.svg'', ''https://github.com/openedx/edx-celeryutils/blob/master/LICENSE.txt'', ''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-celeryutils','[''3'', ''3.12'']','https://github.com/openedx/edx-celeryutils',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/staff-graded-xblock',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,100,0,'[]',0,'',0,0,'','',57,'["click-repl==0.3.0", "edx-opaque-keys==3.1.0", "webob==1.8.9", "typing-extensions==4.15.0", "web-fragments==3.1.0", "pyyaml==6.0.3", "celery==5.6.2", "lxml==6.0.2", "asgiref==3.11.1", "markdown==3.10.2", "django-waffle==5.0.0", "fs==2.4.16", "prompt-toolkit==3.0.52", "edx-bulk-grades==1.2.0", "charset-normalizer==3.4.5", "tzdata==2025.3", "tzlocal==5.3.1", "cffi==2.0.0", "kombu==5.6.2", "vine==5.1.0", "urllib3==2.6.3", "path==17.1.1", "markupsafe==3.0.3", "dnspython==2.8.0", "django-crum==0.7.9", "psutil==7.2.2", "requests==2.32.5", "edx-django-utils==8.0.1", "django==5.2.12", "djangorestframework==3.16.1", "pytz==2026.1.post1", "stevedore==5.7.0", "pymongo==4.16.0", "idna==3.11", "xblock==5.3.0", "super-csv==4.1.0", "sqlparse==0.5.5", "pycparser==3.0", "click-plugins==1.1.1.2", "pynacl==1.6.2", "wcwidth==0.6.0", "packaging==26.0", "django-model-utils==5.0.0", "simplejson==3.20.2", "edx-celeryutils==1.4.0", "six==1.17.0", "appdirs==1.4.4", "billiard==4.2.4", "jsonfield==3.2.0", "certifi==2026.2.25", "mako==1.3.10", "path-py==12.5.0", "amqp==5.3.1", "python-dateutil==2.9.0.post0", "slumber==0.7.1", "click-didyoumean==0.3.1", "click==8.3.1"]',100,'["wheel==0.46.3", "colorama==0.4.6", "edx-lint==5.6.0", "celery==5.6.2", "django-appconf==1.2.0", "lxml[html-clean]==6.0.2", "pluggy==1.6.0", "prompt-toolkit==3.0.52", "pygments==2.19.2", "tzlocal==5.3.1", "urllib3==2.6.3", "python-slugify==8.0.4", "pytest-cov==7.0.0", "iniconfig==2.3.0", "pymongo==4.16.0", "mccabe==0.7.0", "idna==3.11", "isort==8.0.1", "packaging==26.0", "six==1.17.0", "billiard==4.2.4", "code-annotations==2.3.2", "pyproject-hooks==1.2.0", "path-py==12.5.0", "pylint-django==2.7.0", "coverage[toml]==7.13.4", "python-discovery==1.1.1", "click-didyoumean==0.3.1", "click==8.3.1", "web-fragments==3.1.0", "pytest==9.0.2", "pylint-celery==0.3", "django-statici18n==2.6.0", "virtualenv==21.1.0", "lxml-html-clean==0.4.4", "click-log==0.4.0", "cachetools==7.0.3", "edx-bulk-grades==1.2.0", "kombu==5.6.2", "filelock==3.25.0", "path==17.1.1", "dnspython==2.8.0", "pyproject-api==1.10.0", "psutil==7.2.2", "django==5.2.12", "stevedore==5.7.0", "wcwidth==0.6.0", "django-model-utils==5.0.0", "distlib==0.4.0", "pylint==4.0.5", "edx-opaque-keys==3.1.0", "tox==4.49.0", "webob==1.8.9", "pyyaml==6.0.3", "lxml==6.0.2", "astroid==4.0.4", "asgiref==3.11.1", "django-waffle==5.0.0", "charset-normalizer==3.4.5", "tzdata==2025.3", "cffi==2.0.0", "markupsafe==3.0.3", "pytz==2026.1.post1", "build==1.4.0", "xblock==5.3.0", "tomlkit==0.14.0", "pycparser==3.0", "polib==1.2.0", "edx-celeryutils==1.4.0", "simplejson==3.20.2", "appdirs==1.4.4", "pip-tools==7.5.3", "jsonfield==3.2.0", "amqp==5.3.1", "edx-i18n-tools==1.6.1", "pip==26.0.1", "python-dateutil==2.9.0.post0", "slumber==0.7.1", "click-repl==0.3.0", "typing-extensions==4.15.0", "markdown==3.10.2", "jinja2==3.1.6", "fs==2.4.16", "dill==0.4.1", "vine==5.1.0", "platformdirs==4.9.4", "django-crum==0.7.9", "requests==2.32.5", "edx-django-utils==8.0.1", "djangorestframework==3.16.1", "tomli-w==1.2.0", "super-csv==4.1.0", "sqlparse==0.5.5", "setuptools==82.0.0", "click-plugins==1.1.1.2", "pynacl==1.6.2", "text-unidecode==1.3", "mako==1.3.10", "certifi==2026.2.25", "pylint-plugin-utils==0.9.0"]',13,'["edx-celeryutils", "super-csv", "pylint-django", "djangorestframework", "edx-opaque-keys", "edx-bulk-grades", "edx-django-utils", "edx-i18n-tools", "xblock", "code-annotations", "django-appconf", "web-fragments", "django-waffle"]',17,'["django-crum", "edx-celeryutils", "jsonfield", "super-csv", "pylint-django", "djangorestframework", "edx-opaque-keys", "edx-bulk-grades", "edx-django-utils", "django-model-utils", "edx-i18n-tools", "xblock", "code-annotations", "django-statici18n", "django-appconf", "web-fragments", "django-waffle"]',11,'["edx-celeryutils", "super-csv", "edx-opaque-keys", "edx-bulk-grades", "edx-django-utils", "edx-i18n-tools", "xblock", "code-annotations", "django-appconf", "web-fragments", "django-waffle"]',0,NULL,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,16,'{"total_duration": "1992 minutes 13 seconds", "checks": [{"name": "Dependabot", "duration": "2 minutes 30 seconds"}, {"name": "Dependabot", "duration": "1 minutes 31 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 6 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 47 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}]}','Other','2019-05-15 18:56:20','master','Staff Graded Points XBlock',293,17,1,0,0,0,0,0,0,'2026-06-08 03:12:30','GNU AGPLv3',15,1,208,972,3390,244732,4215,28886,0,0,1,0,1,1,1,1,'','openedx',3,'[''https://django-statici18n.readthedocs.io/en/latest/: 404'', ''https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html: HTTPSConnectionPool(host=\''www.gnu.org\'', port=443): Max retries exceeded with url: /software/gettext/manual/html_node/PO-Files.html (Caused by NewConnectionError("HTTPSConnection(host=\''www.gnu.org\'', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable"))'']',0,'[''https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html'', ''https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html'', ''https://github.com/openedx/i18n-tools'', ''https://docs.djangoproject.com/en/1.11/topics/i18n/translation/'', ''https://docs.transifex.com/integrations/django'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'staff-graded-xblock','[''3'', ''3.12'']','https://github.com/openedx/staff_graded-xblock',1,1,1,0,0,0,0,0,0,'[]','[]','[''gettext'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/course-discovery',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,289,0,'[]',354,'{"@babel/code-frame": "7.16.0", "@babel/helper-validator-identifier": "7.15.7", "@babel/highlight": "7.16.0", "@discoveryjs/json-ext": "0.5.5", "@jridgewell/gen-mapping": "0.3.5", "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/set-array": "1.2.1", "@jridgewell/source-map": "0.3.6", "@jridgewell/sourcemap-codec": "1.5.0", "@jridgewell/trace-mapping": "0.3.25", "@sindresorhus/is": "4.2.0", "@szmarczak/http-timer": "4.0.6", "@types/cacheable-request": "6.0.2", "@types/estree": "1.0.5", "@types/http-cache-semantics": "4.0.1", "@types/json-schema": "7.0.15", "@types/keyv": "3.1.3", "@types/minimist": "1.2.2", "@types/node": "16.9.4", "@types/normalize-package-data": "2.4.1", "@types/responselike": "1.0.0", "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-section": "1.12.1", "@webassemblyjs/ieee754": "1.11.6", "@webassemblyjs/leb128": "1.11.6", "@webassemblyjs/utf8": "1.11.6", "@webassemblyjs/wasm-edit": "1.12.1", "@webassemblyjs/wasm-gen": "1.12.1", "@webassemblyjs/wasm-opt": "1.12.1", "@webassemblyjs/wasm-parser": "1.12.1", "@webassemblyjs/wast-printer": "1.12.1", "@webpack-cli/configtest": "1.0.4", "@webpack-cli/info": "1.3.0", "@webpack-cli/serve": "1.5.2", "@xtuc/ieee754": "1.2.0", "@xtuc/long": "4.2.2", "abbrev": "1.1.1", "acorn": "8.12.1", "acorn-import-attributes": "1.9.5", "adm-zip": "0.5.9", "agent-base": "6.0.2", "ajv": "6.12.6", "ajv-formats": "2.1.1", "amdefine": "1.0.1", "ansi-regex": "6.0.1", "ansi-styles": "2.2.1", "anymatch": "3.1.2", "aproba": "1.2.0", "are-we-there-yet": "1.1.7", "arrify": "1.0.1", "asn1": "0.2.6", "assert-plus": "1.0.0", "async-foreach": "0.1.3", "asynckit": "0.4.0", "aws-sign2": "0.7.0", "aws4": "1.11.0", "balanced-match": "1.0.2", "bcrypt-pbkdf": "1.0.2", "big.js": "5.2.2", "binary-extensions": "2.2.0", "bluebird": "3.7.2", "bootstrap-sass": "3.4.3", "bower": "1.8.12", "brace-expansion": "1.1.11", "braces": "3.0.2", "browserslist": "4.23.3", "buffer-from": "1.1.2", "cacheable-lookup": "5.0.4", "cacheable-request": "7.0.2", "camelcase": "5.3.1", "camelcase-keys": "6.2.2", "caniuse-lite": "1.0.30001653", "caseless": "0.12.0", "chalk": "1.1.3", "chokidar": "3.5.3", "chownr": "2.0.0", "chrome-trace-event": "1.0.3", "cliui": "5.0.0", "clone-deep": "4.0.1", "clone-response": "1.0.2", "code-point-at": "1.1.0", "color-convert": "1.9.3", "color-name": "1.1.3", "colorette": "1.4.0", "combined-stream": "1.0.8", "commander": "2.20.3", "concat-map": "0.0.1", "console-control-strings": "1.1.0", "core-util-is": "1.0.2", "cross-spawn": "7.0.3", "css-loader": "6.11.0", "cssesc": "3.0.0", "dashdash": "1.14.1", "datatables.net": "1.13.11", "datatables.net-bs": "1.13.11", "debug": "4.3.3", "decamelize": "1.2.0", "decamelize-keys": "1.1.0", "decompress-response": "6.0.0", "defer-to-connect": "2.0.1", "delayed-stream": "1.0.0", "delegates": "1.0.0", "ecc-jsbn": "0.1.2", "electron-to-chromium": "1.5.13", "emoji-regex": "7.0.3", "emojis-list": "3.0.0", "end-of-stream": "1.4.4", "enhanced-resolve": "5.17.1", "env-paths": "2.2.1", "envinfo": "7.8.1", "error-ex": "1.3.2", "es-module-lexer": "1.5.4", "escalade": "3.1.2", "escape-string-regexp": "1.0.5", "eslint-scope": "5.1.1", "esrecurse": "4.3.0", "estraverse": "4.3.0", "events": "3.3.0", "execa": "5.1.1", "extend": "3.0.2", "extsprintf": "1.3.0", "fast-deep-equal": "3.1.3", "fast-json-stable-stringify": "2.1.0", "fast-uri": "3.0.1", "fastest-levenshtein": "1.0.12", "file-loader": "6.2.0", "fill-range": "7.0.1", "find-up": "4.1.0", "forever-agent": "0.6.1", "form-data": "2.3.3", "fs-minipass": "2.1.0", "fs.realpath": "1.0.0", "fsevents": "2.3.2", "function-bind": "1.1.1", "gauge": "2.7.4", "gaze": "1.1.3", "geckodriver": "3.2.0", "get-caller-file": "2.0.5", "get-stdin": "4.0.1", "get-stream": "6.0.1", "getpass": "0.1.7", "glob": "7.2.0", "glob-parent": "5.1.2", "glob-to-regexp": "0.4.1", "globule": "1.3.3", "got": "11.8.5", "graceful-fs": "4.2.11", "har-schema": "2.0.0", "har-validator": "5.1.5", "hard-rejection": "2.1.0", "has": "1.0.3", "has-ansi": "2.0.0", "has-flag": "4.0.0", "has-unicode": "2.0.1", "hosted-git-info": "4.0.2", "http-cache-semantics": "4.1.0", "http-signature": "1.2.0", "http2-wrapper": "1.0.3", "https-proxy-agent": "5.0.1", "human-signals": "2.1.0", "icss-utils": "5.1.0", "immutable": "4.0.0", "import-local": "3.0.2", "imports-loader": "0.8.0", "indent-string": "4.0.0", "inflight": "1.0.6", "inherits": "2.0.4", "interpret": "2.2.0", "is-arrayish": "0.2.1", "is-binary-path": "2.1.0", "is-core-module": "2.5.0", "is-extglob": "2.1.1", "is-fullwidth-code-point": "1.0.0", "is-glob": "4.0.3", "is-number": "7.0.0", "is-plain-obj": "1.1.0", "is-plain-object": "2.0.4", "is-typedarray": "1.0.0", "isarray": "1.0.0", "isexe": "2.0.0", "isobject": "3.0.1", "isstream": "0.1.2", "jest-worker": "27.5.1", "jquery": "3.7.1", "js-base64": "2.6.4", "js-tokens": "4.0.0", "jsbn": "0.1.1", "json-buffer": "3.0.1", "json-parse-even-better-errors": "2.3.1", "json-schema": "0.4.0", "json-schema-traverse": "0.4.1", "json-stringify-safe": "5.0.1", "json5": "1.0.1", "jsprim": "1.4.2", "keyv": "4.0.4", "kind-of": "6.0.3", "klona": "2.0.4", "lines-and-columns": "1.2.4", "loader-runner": "4.2.0", "loader-utils": "1.4.0", "locate-path": "5.0.0", "lodash": "4.17.21", "lodash.assign": "4.2.0", "lodash.defaults": "4.2.0", "lodash.foreach": "4.5.0", "lodash.frompairs": "4.0.1", "lodash.get": "4.4.2", "lodash.topairs": "4.3.0", "lowercase-keys": "2.0.0", "lru-cache": "6.0.0", "map-obj": "4.3.0", "meow": "9.0.0", "merge-stream": "2.0.0", "mime-db": "1.51.0", "mime-types": "2.1.34", "mimic-fn": "2.1.0", "mimic-response": "1.0.1", "min-indent": "1.0.1", "mini-css-extract-plugin": "2.9.2", "minimatch": "3.0.4", "minimist": "1.2.6", "minimist-options": "4.1.0", "minipass": "3.1.3", "minizlib": "2.1.2", "mkdirp": "1.0.4", "ms": "2.1.2", "nan": "2.15.0", "nanoid": "3.3.7", "neo-async": "2.6.2", "node-gyp": "7.1.2", "node-releases": "2.0.18", "node-sass": "6.0.1", "nopt": "5.0.0", "normalize-package-data": "3.0.3", "normalize-path": "3.0.0", "normalize-url": "6.1.0", "npm-run-path": "4.0.1", "npmlog": "4.1.2", "number-is-nan": "1.0.1", "oauth-sign": "0.9.0", "object-assign": "4.1.1", "once": "1.4.0", "onetime": "5.1.2", "p-cancelable": "2.1.1", "p-limit": "2.2.2", "p-locate": "4.1.0", "p-try": "2.2.0", "parse-json": "5.2.0", "path-exists": "4.0.0", "path-is-absolute": "1.0.1", "path-key": "3.1.1", "path-parse": "1.0.7", "performance-now": "2.1.0", "picocolors": "1.0.1", "picomatch": "2.3.1", "postcss": "8.4.33", "postcss-modules-extract-imports": "3.1.0", "postcss-modules-local-by-default": "4.0.5", "postcss-modules-scope": "3.2.0", "postcss-modules-values": "4.0.0", "postcss-selector-parser": "6.0.6", "postcss-value-parser": "4.2.0", "process-nextick-args": "2.0.1", "psl": "1.8.0", "pump": "3.0.0", "punycode": "2.1.1", "qs": "6.5.2", "quick-lru": "4.0.1", "randombytes": "2.1.0", "read-pkg": "5.2.0", "read-pkg-up": "7.0.1", "readable-stream": "2.3.7", "readdirp": "3.6.0", "rechoir": "0.7.1", "redent": "3.0.0", "request": "2.88.2", "require-directory": "2.1.1", "require-from-string": "2.0.2", "require-main-filename": "2.0.0", "resolve": "1.20.0", "resolve-alpn": "1.2.1", "resolve-cwd": "3.0.0", "resolve-from": "5.0.0", "responselike": "2.0.0", "rimraf": "3.0.2", "safe-buffer": "5.1.2", "safer-buffer": "2.1.2", "sass": "1.78.0", "sass-graph": "2.2.5", "sass-loader": "12.1.0", "schema-utils": "3.3.0", "scss-tokenizer": "0.2.3", "semver": "7.5.4", "serialize-javascript": "6.0.2", "set-blocking": "2.0.0", "shallow-clone": "3.0.1", "shebang-command": "2.0.0", "shebang-regex": "3.0.0", "signal-exit": "3.0.7", "source-map": "0.6.1", "source-map-js": "1.0.2", "source-map-support": "0.5.21", "spdx-correct": "3.1.1", "spdx-exceptions": "2.3.0", "spdx-expression-parse": "3.0.1", "spdx-license-ids": "3.0.11", "sshpk": "1.16.1", "stdout-stream": "1.4.1", "string_decoder": "1.1.1", "string-width": "1.0.2", "strip-ansi": "6.0.1", "strip-final-newline": "2.0.0", "strip-indent": "3.0.0", "supports-color": "2.0.0", "tapable": "2.2.1", "tar": "6.1.11", "terser": "5.31.6", "terser-webpack-plugin": "5.3.10", "to-regex-range": "5.0.1", "tough-cookie": "2.5.0", "trim-newlines": "3.0.1", "true-case-path": "1.0.3", "tunnel-agent": "0.6.0", "tweetnacl": "0.14.5", "type-fest": "0.18.1", "update-browserslist-db": "1.1.0", "uri-js": "4.2.2", "url-loader": "4.1.1", "util-deprecate": "1.0.2", "uuid": "3.4.0", "v8-compile-cache": "2.3.0", "validate-npm-package-license": "3.0.4", "verror": "1.10.0", "watchpack": "2.4.2", "webpack": "5.94.0", "webpack-bundle-tracker": "1.8.1", "webpack-cli": "4.8.0", "webpack-merge": "5.8.0", "webpack-sources": "3.2.3", "which": "2.0.2", "which-module": "2.0.0", "wide-align": "1.1.5", "wildcard": "2.0.0", "wrap-ansi": "5.1.0", "wrappy": "1.0.2", "y18n": "4.0.3", "yallist": "4.0.0", "yargs": "13.3.2", "yargs-parser": "20.2.9"}',16,1,'{"geckodriver": "3.2.0"}','{"ansi-regex": "6.0.1", "bootstrap-sass": "3.4.3", "bower": "1.8.12", "css-loader": "6.11.0", "datatables.net": "1.13.11", "datatables.net-bs": "1.13.11", "mini-css-extract-plugin": "2.9.2", "file-loader": "6.2.0", "imports-loader": "0.8.0", "jquery": "3.7.1", "sass": "1.78.0", "sass-loader": "12.1.0", "url-loader": "4.1.1", "webpack": "5.94.0", "webpack-bundle-tracker": "1.8.1", "webpack-cli": "4.8.0"}',186,'["unicodecsv==0.14.1", "social-auth-app-django==5.4.3", "google-api-core==2.30.2", "elasticsearch-dsl==7.4.1", "django==5.2.12", "django-celery-results==2.6.0", "edx-django-sites-extensions==6.0.0", "requests==2.33.1", "django-solo==2.5.1", "jinja2==3.1.6", "google-auth-httplib2==0.3.1", "google-api-python-client==2.193.0", "platformdirs==4.9.4", "greenlet==3.3.2", "amqp==5.3.1", "cairosvg==2.9.0", "django-extensions==4.1", "django-simple-history==3.11.0", "django-crum==0.7.9", "django-libsass==0.9", "django-localflavor==5.0", "vine==5.1.0", "text-unidecode==1.3", "snowflake-connector-python==4.3.0", "prompt-toolkit==3.0.52", "getsmarter-api-clients==0.6.3", "requests-file==3.0.1", "pyjwt[crypto]==2.12.1", "django-parler==2.3", "inflection==0.5.1", "backoff==2.2.1", "fastavro==1.12.1", "edx-rest-api-client==6.2.0", "botocore==1.42.84", "pyopenssl==25.3.0", "lxml-html-clean==0.4.4", "django-compressor==4.6.0", "click-didyoumean==0.3.1", "googleapis-common-protos==1.74.0", "six==1.17.0", "google-auth-oauthlib==1.3.1", "django-model-utils==5.0.0", "zipp==3.23.0", "django-dry-rest-permissions==1.2.0", "boto3==1.42.84", "pyparsing==3.3.2", "django-autocomplete-light==3.12.1", "beautifulsoup4==4.14.3", "pycountry==26.2.16", "cssselect2==0.9.0", "edx-ccx-keys==2.0.2", "lxml[html-clean]==6.0.2", "edx-auth-backends==5.0.0", "pillow==9.5.0", "pyasn1==0.6.3", "libsass==0.23.0", "pyasn1-modules==0.4.2", "edx-analytics-data-api-client==0.18.3", "filelock==3.25.2", "wcwidth==0.6.0", "gevent==25.9.1", "jsonschema==4.26.0", "django-storages==1.14.6", "django-countries==8.2.0", "tzdata==2026.1", "djangorestframework-csv==3.0.2", "referencing==0.37.0", "social-auth-core==4.8.5", "django-sortedm2m==4.0.0", "pycparser==3.0", "rjsmin==1.2.5", "zope-interface==8.2", "click-plugins==1.1.1.2", "drf-yasg==1.21.15", "django-multiselectfield==1.0.1", "asgiref==3.11.1", "djangorestframework-xml==2.0.0", "openedx-events==11.1.0", "drf-extensions==0.8.0", "requests-toolbelt==0.10.1", "django-admin-sortable2==2.3.1", "markupsafe==3.0.3", "tzlocal==5.3.1", "html2text==2025.4.15", "algoliasearch==1.20.0", "dnspython==2.8.0", "isodate==0.7.2", "openedx-atlas==0.7.0", "pynacl==1.6.2", "django-contrib-comments==2.2.0", "sqlparse==0.5.5", "gunicorn==25.3.0", "django-nine==0.2.7", "attrs==26.1.0", "click==8.3.2", "django-elasticsearch-dsl-drf==0.22.5", "asn1crypto==1.5.1", "edx-api-doc-tools==3.0.0", "edx-drf-extensions==10.6.0", "django-multi-email-field==0.8.0", "django-waffle==5.0.0", "simple-salesforce==1.12.9", "idna==3.11", "edx-django-utils==8.0.1", "sortedcontainers==2.4.0", "django-fsm==3.0.1", "django-webpack-loader==3.2.3", "djangorestframework==3.17.1", "webencodings==0.5.1", "python-slugify==8.0.4", "django-ses==4.7.2", "elasticsearch==7.13.4", "proto-plus==1.27.2", "django-cors-headers==4.9.0", "certifi==2026.2.25", "tomlkit==0.14.0", "django-dynamic-filenames==1.4.1", "django-appconf==1.2.0", "django-object-actions==5.0.0", "rcssmin==1.2.2", "gspread==6.2.1", "celery==5.6.3", "typing-extensions==4.15.0", "zope-event==6.1", "django-filter==25.2", "python3-openid==3.2.0", "cairocffi==1.7.1", "edx-opaque-keys[django]==4.0.0", "urllib3==1.26.20", "click-repl==0.3.0", "walrus==0.9.8", "requests-oauthlib==2.0.0", "code-annotations==3.0.0", "markdown==3.10.2", "python-monkey-business==1.1.0", "taxonomy-connector==2.4.0", "python-stdnum==2.2", "mysqlclient==2.2.8", "zeep==4.3.2", "cryptography==45.0.7", "jsonschema-specifications==2025.9.1", "pyyaml==6.0.3", "django-config-models==3.0.0", "edx-event-bus-redis==1.0.0", "billiard==4.2.4", "httplib2==0.31.2", "uritemplate==4.2.0", "xss-utils==1.0.0", "edx-django-release-util==1.5.0", "pytz==2026.1.post1", "semantic-version==2.10.0", "packaging==26.0", "algoliasearch-django==1.7.3", "oauthlib==3.3.1", "drf-jwt==1.19.2", "google-auth==2.49.1", "protobuf==7.34.1", "psutil==7.2.2", "pymemcache==4.0.0", "python-memcached==1.62", "rpds-py==0.30.0", "drf-flex-fields==1.0.2", "jsonfield==3.2.0", "cffi==2.0.0", "pymongo==4.16.0", "s3transfer==0.16.0", "edx-toggles==5.4.1", "redis==7.4.0", "more-itertools==11.0.1", "charset-normalizer==3.4.7", "contentful==2.5.0", "python-dateutil==2.9.0.post0", "django-taggit==6.1.0", "django-stdimage==5.3.0", "importlib-metadata==9.0.0", "tinycss2==1.5.1", "jmespath==1.1.0", "stevedore==5.7.0", "django-elasticsearch-dsl==7.4", "defusedxml==0.7.1", "django-nested-admin==4.1.6", "django-taggit-autosuggest==0.4.2", "django-guardian==3.0.3", "edx-event-bus-kafka==6.1.0", "kombu==5.6.2", "soupsieve==2.8.3"]',272,'["unicodecsv==0.14.1", "social-auth-app-django==5.4.3", "google-api-core==2.30.2", "astroid==4.0.4", "elasticsearch-dsl==7.4.1", "django==5.2.12", "django-celery-results==2.6.0", "edx-django-sites-extensions==6.0.0", "requests==2.33.1", "sphinxcontrib-htmlhelp==2.1.0", "django-solo==2.5.1", "jinja2==3.1.6", "outcome==1.3.0.post0", "mock==5.2.0", "google-auth-httplib2==0.3.1", "google-api-python-client==2.193.0", "click-option-group==0.5.9", "click-log==0.4.0", "platformdirs==4.9.4", "greenlet==3.3.2", "coverage[toml]==7.13.5", "amqp==5.3.1", "pygments==2.20.0", "pylint-django==2.7.0", "cairosvg==2.9.0", "django-extensions==4.1", "colorama==0.4.6", "django-simple-history==3.11.0", "django-crum==0.7.9", "django-libsass==0.9", "pytest-cov==7.1.0", "django-localflavor==5.0", "vine==5.1.0", "text-unidecode==1.3", "mccabe==0.7.0", "snowflake-connector-python==4.3.0", "mdurl==0.1.2", "prompt-toolkit==3.0.52", "pylint==4.0.5", "getsmarter-api-clients==0.6.3", "requests-file==3.0.1", "pyjwt[crypto]==2.12.1", "h11==0.16.0", "path==16.16.0", "build==1.4.2", "django-parler==2.3", "inflection==0.5.1", "backoff==2.2.1", "fastavro==1.12.1", "pip-tools==7.5.3", "trio==0.33.0", "edx-rest-api-client==6.2.0", "botocore==1.42.84", "pyopenssl==25.3.0", "pip==26.0.1", "lxml-html-clean==0.4.4", "boltons==21.0.0", "sphinx-book-theme==1.1.3", "django-compressor==4.6.0", "click-didyoumean==0.3.1", "googleapis-common-protos==1.74.0", "six==1.17.0", "pytest==9.0.2", "google-auth-oauthlib==1.3.1", "django-model-utils==5.0.0", "zipp==3.23.0", "django-dry-rest-permissions==1.2.0", "boto3==1.42.84", "pycodestyle==2.14.0", "pyparsing==3.3.2", "django-autocomplete-light==3.12.1", "beautifulsoup4==4.14.3", "pycountry==26.2.16", "cssselect2==0.9.0", "edx-ccx-keys==2.0.2", "lxml[html-clean]==6.0.2", "edx-auth-backends==5.0.0", "django-debug-toolbar==4.1.0", "polib==1.2.0", "pillow==9.5.0", "pyasn1==0.6.3", "libsass==0.23.0", "pyasn1-modules==0.4.2", "sniffio==1.3.1", "edx-analytics-data-api-client==0.18.3", "filelock==3.25.2", "wcwidth==0.6.0", "distlib==0.4.0", "faker==40.13.0", "selenium==4.12.0", "gevent==25.9.1", "jsonschema==4.26.0", "django-storages==1.14.6", "django-countries==8.2.0", "tzdata==2026.1", "snowballstemmer==3.0.1", "pytest-split==0.11.0", "djangorestframework-csv==3.0.2", "referencing==0.37.0", "social-auth-core==4.8.5", "django-sortedm2m==4.0.0", "factory-boy==3.3.3", "pycparser==3.0", "rjsmin==1.2.5", "cachetools==7.0.5", "zope-interface==8.2", "urllib3[socks]==1.26.20", "click-plugins==1.1.1.2", "drf-yasg==1.21.15", "django-multiselectfield==1.0.1", "asgiref==3.11.1", "djangorestframework-xml==2.0.0", "openedx-events==11.1.0", "drf-extensions==0.8.0", "face==26.0.0", "requests-toolbelt==0.10.1", "isort==8.0.1", "responses==0.26.0", "django-admin-sortable2==2.3.1", "slumber==0.7.1", "markupsafe==3.0.3", "tzlocal==5.3.1", "html2text==2025.4.15", "algoliasearch==1.20.0", "dnspython==2.8.0", "isodate==0.7.2", "openedx-atlas==0.7.0", "pynacl==1.6.2", "wsproto==1.3.2", "django-contrib-comments==2.2.0", "sqlparse==0.5.5", "gunicorn==25.3.0", "sphinx==5.3.0", "pydata-sphinx-theme==0.15.4", "ruamel-yaml==0.17.40", "trio-websocket==0.12.2", "django-nine==0.2.7", "attrs==26.1.0", "click==8.3.2", "tox==4.52.0", "tomli-w==1.2.0", "pylint-plugin-utils==0.9.0", "django-elasticsearch-dsl-drf==0.22.5", "freezegun==1.5.5", "glom==22.1.0", "asn1crypto==1.5.1", "edx-api-doc-tools==3.0.0", "docutils==0.19", "edx-drf-extensions==10.6.0", "python-discovery==1.2.1", "django-multi-email-field==0.8.0", "testfixtures==11.0.0", "tomli==2.0.2", "pyproject-hooks==1.2.0", "django-waffle==5.0.0", "simple-salesforce==1.12.9", "pytest-xdist==3.8.0", "idna==3.11", "edx-django-utils==8.0.1", "sortedcontainers==2.4.0", "django-fsm==3.0.1", "bracex==2.6", "pylint-celery==0.3", "pysocks==1.7.1", "edx-i18n-tools==2.0.0", "django-webpack-loader==3.2.3", "djangorestframework==3.17.1", "webencodings==0.5.1", "sphinxcontrib-qthelp==2.0.0", "python-slugify==8.0.4", "django-ses==4.7.2", "elasticsearch==7.13.4", "proto-plus==1.27.2", "django-cors-headers==4.9.0", "accessible-pygments==0.0.5", "certifi==2026.2.25", "tomlkit==0.14.0", "edx-lint==5.3.7", "django-dynamic-filenames==1.4.1", "django-appconf==1.2.0", "django-object-actions==5.0.0", "rcssmin==1.2.2", "pluggy==1.6.0", "wcmatch==8.5.2", "gspread==6.2.1", "sphinxcontrib-applehelp==2.0.0", "celery==5.6.3", "typing-extensions==4.15.0", "zope-event==6.1", "babel==2.18.0", "sphinxcontrib-devhelp==2.0.0", "django-filter==25.2", "python3-openid==3.2.0", "cairocffi==1.7.1", "edx-opaque-keys[django]==4.0.0", "urllib3==1.26.20", "pytest-django==4.12.0", "imagesize==2.0.0", "click-repl==0.3.0", "ddt==1.7.2", "walrus==0.9.8", "requests-oauthlib==2.0.0", "code-annotations==3.0.0", "markdown==3.10.2", "python-monkey-business==1.1.0", "taxonomy-connector==2.4.0", "python-stdnum==2.2", "ruamel-yaml-clib==0.2.15", "mysqlclient==2.2.8", "zeep==4.3.2", "wheel==0.46.3", "cryptography==45.0.7", "pyproject-api==1.10.0", "jsonschema-specifications==2025.9.1", "pyyaml==6.0.3", "rich==14.3.3", "django-config-models==3.0.0", "edx-event-bus-redis==1.0.0", "billiard==4.2.4", "httplib2==0.31.2", "execnet==2.1.2", "uritemplate==4.2.0", "xss-utils==1.0.0", "edx-django-release-util==1.5.0", "dill==0.4.1", "pytz==2026.1.post1", "semantic-version==2.10.0", "peewee==3.19.0", "packaging==26.0", "pywatchman==3.0.0", "algoliasearch-django==1.7.3", "oauthlib==3.3.1", "drf-jwt==1.19.2", "google-auth==2.49.1", "protobuf==7.34.1", "psutil==7.2.2", "pymemcache==4.0.0", "python-memcached==1.62", "rpds-py==0.30.0", "drf-flex-fields==1.0.2", "jsonfield==3.2.0", "semgrep==1.52.0", "cffi==2.0.0", "pymongo==4.16.0", "s3transfer==0.16.0", "sphinxcontrib-serializinghtml==2.0.0", "edx-toggles==5.4.1", "redis==7.4.0", "more-itertools==11.0.1", "charset-normalizer==3.4.7", "contentful==2.5.0", "python-dateutil==2.9.0.post0", "markdown-it-py==4.0.0", "virtualenv==21.2.0", "django-taggit==6.1.0", "django-stdimage==5.3.0", "importlib-metadata==9.0.0", "tinycss2==1.5.1", "iniconfig==2.3.0", "sphinxcontrib-jsmath==1.0.1", "alabaster==0.7.16", "jmespath==1.1.0", "stevedore==5.7.0", "django-elasticsearch-dsl==7.4", "defusedxml==0.7.1", "django-nested-admin==4.1.6", "django-taggit-autosuggest==0.4.2", "django-guardian==3.0.3", "edx-event-bus-kafka==6.1.0", "kombu==5.6.2", "soupsieve==2.8.3", "pytest-responses==0.5.1"]',37,'["django-solo", "edx-api-doc-tools", "django-object-actions", "django-webpack-loader", "django-cors-headers", "edx-i18n-tools", "pylint-django", "edx-toggles", "django-storages", "django-sortedm2m", "django-multi-email-field", "django-celery-results", "django-dynamic-filenames", "django-taggit", "django-extensions", "django-contrib-comments", "django-compressor", "code-annotations", "social-auth-app-django", "djangorestframework", "edx-django-release-util", "edx-django-sites-extensions", "django-waffle", "django-countries", "edx-auth-backends", "django-filter", "pytest-django", "django-debug-toolbar", "factory-boy", "edx-django-utils", "django-autocomplete-light", "edx-rest-api-client", "algoliasearch-django", "django-appconf", "xss-utils", "django-config-models", "edx-drf-extensions"]',57,'["django-dry-rest-permissions", "django-simple-history", "django-solo", "djangorestframework-xml", "edx-api-doc-tools", "django-object-actions", "django-crum", "drf-jwt", "django-webpack-loader", "django-cors-headers", "django-model-utils", "edx-i18n-tools", "pylint-django", "drf-extensions", "edx-toggles", "django-storages", "django-sortedm2m", "django-multi-email-field", "django-celery-results", "jsonfield", "django-dynamic-filenames", "django-taggit", "django-extensions", "django-contrib-comments", "django-compressor", "code-annotations", "social-auth-app-django", "djangorestframework", "django-elasticsearch-dsl", "edx-django-release-util", "edx-django-sites-extensions", "django-fsm", "django-libsass", "django-taggit-autosuggest", "django-waffle", "django-countries", "edx-auth-backends", "django-filter", "django-guardian", "pytest-django", "django-debug-toolbar", "factory-boy", "edx-django-utils", "django-ses", "django-autocomplete-light", "django-elasticsearch-dsl-drf", "django-stdimage", "edx-rest-api-client", "drf-yasg", "algoliasearch-django", "djangorestframework-csv", "django-nine", "django-appconf", "xss-utils", "django-config-models", "django-parler", "edx-drf-extensions"]',28,'["django-solo", "edx-api-doc-tools", "django-webpack-loader", "django-cors-headers", "edx-i18n-tools", "edx-toggles", "django-multi-email-field", "django-celery-results", "django-dynamic-filenames", "django-taggit", "django-extensions", "django-compressor", "code-annotations", "social-auth-app-django", "edx-django-release-util", "edx-django-sites-extensions", "django-waffle", "django-countries", "edx-auth-backends", "django-filter", "django-debug-toolbar", "django-autocomplete-light", "edx-django-utils", "edx-rest-api-client", "django-appconf", "xss-utils", "django-config-models", "edx-drf-extensions"]',0,NULL,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,1,1,245,'{"total_duration": "12132 minutes 29 seconds", "checks": [{"name": "check migrations (ubuntu-22.04, 3.12)", "duration": "3 minutes 18 seconds"}, {"name": "upgrade_requirements (3.12)", "duration": "2 minutes 7 seconds"}, {"name": "upgrade_requirements (3.12)", "duration": "1 minutes 46 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2015-11-09 20:57:54','master','Service providing access to consolidated course and program metadata',44175,194,1,0,0,0,0,0,0,'2026-06-08 01:16:49','GNU AGPLv3',26,1,1810,0,57087,9385,7915,4799823,1415,0,1,0,0,1,0,0,'','openedx',20,'[''https://github.com/openedx/course-discovery/blob/master/pytest=no-xdist.ini: 404'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'', ''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://github.com/openedx/course-discovery/workflows/Python%20CI/badge.svg?branch=master: 404'']',1,'[''https://django-elasticsearch-dsl.readthedocs.io/en/latest/management.html'', ''https://github.com/pytest-dev/pytest-xdist'', ''https://docs.python.org/3/library/pdb.html'', ''https://github.com/openedx/course-discovery/blob/master/pytest.ini'', ''https://github.com/pytest-dev/pytest/issues/390'', ''https://edx-discovery.readthedocs.io/en/latest/'', ''https://github.com/openedx/course-discovery/tree/master/docs'', ''https://github.com/openedx/course-discovery/blob/master/LICENSE'', ''https://discuss.openedx.org'', ''https://github.com/openedx/course-discovery/issues'', ''https://openedx.slack.com/'', ''https://github.com/openedx/devstack'', ''https://github.com/openedx/course-discovery/actions?query=workflow%3A%22Python+CI%22'', ''https://codecov.io/github/openedx/course-discovery/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/course-discovery?branch=master'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/github/license/openedx/course-discovery.svg'']',1,1,0,0,'','',1,'2026-04-08','2024-09-09','9',0,1,0,1,NULL,0,NULL,'[]',NULL,1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/license-manager',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,173,0,'[]',0,'',0,0,'','',106,'["django==5.2.14", "rpds-py==2026.5.1", "jsonschema==4.26.0", "edx-toggles==6.0.0", "dnspython==2.8.0", "six==1.17.0", "social-auth-core==4.9.1", "click-repl==0.3.0", "django-durationwidget==1.0.5", "oauthlib==3.3.1", "djangorestframework==3.17.1", "pynacl==1.6.2", "semantic-version==2.10.0", "celery==5.6.3", "cryptography==48.0.0", "edx-braze-client==0.2.5", "referencing==0.37.0", "gevent==26.5.0", "django-celery-results==2.6.0", "python-dateutil==2.9.0.post0", "requests==2.34.2", "ply==3.11", "code-annotations==3.0.0", "edx-django-utils==8.0.1", "django-filter==25.2", "drf-jwt==1.19.2", "django-waffle==5.0.0", "analytics-python==1.4.post1", "greenlet==3.5.1", "tinycss2==1.4.0", "edx-drf-extensions==10.6.0", "click-didyoumean==0.3.1", "jinja2==3.1.6", "tzlocal==5.3.1", "billiard==4.2.4", "uritemplate==4.2.0", "pyjwt[crypto]==2.13.0", "certifi==2026.5.20", "vine==5.1.0", "django-log-request-id==2.1.2", "zipp==4.1.0", "social-auth-app-django==5.9.0", "amqp==5.3.1", "python3-openid==3.2.0", "pymemcache==4.0.0", "cffi==2.0.0", "edx-celeryutils==2.0.0", "django-autocomplete-light==4.0.1", "zope-event==6.2", "packaging==26.2", "click==8.4.1", "pycparser==3.0", "pytz==2026.2", "sqlparse==0.5.5", "backoff==1.10.0", "redis==8.0.0", "kombu==5.6.2", "asgiref==3.11.1", "inflection==0.5.1", "python-slugify==8.0.4", "typing-extensions==4.15.0", "botocore==1.43.18", "drf-spectacular==0.29.0", "charset-normalizer==3.4.7", "mysqlclient==2.2.8", "bleach[css]==6.3.0", "boto3==1.43.18", "djangorestframework-csv==3.0.2", "rules==3.5", "edx-opaque-keys==4.0.0", "attrs==26.1.0", "idna==3.17", "pyyaml==6.0.3", "requests-oauthlib==2.0.0", "django-extensions==4.1", "markupsafe==3.0.3", "stevedore==5.8.0", "jsonfield==3.2.0", "psutil==7.2.2", "jmespath==1.1.0", "django-simple-history==3.11.0", "edx-auth-backends==5.0.0", "edx-rbac==3.0.0", "text-unidecode==1.3", "simplejson==4.1.1", "defusedxml==0.7.1", "gunicorn==26.0.0", "urllib3==2.7.0", "django-cors-headers==4.9.0", "click-plugins==1.1.1.2", "zope-interface==8.5", "s3transfer==0.18.0", "wcwidth==0.7.0", "django-crum==0.7.9", "prompt-toolkit==3.0.52", "edx-rest-api-client==7.0.0", "tzdata==2026.2", "webencodings==0.5.1", "monotonic==1.6", "djangoql==0.19.1", "jsonschema-specifications==2025.9.1", "django-model-utils==5.0.0", "drf-nested-routers==0.95.0", "pymongo==4.17.0", "python-memcached==1.62", "django-ses==4.7.2"]',173,'["django==5.2.14", "rpds-py==2026.5.1", "typeguard==4.5.2", "pylint-celery==0.3", "jsonschema==4.26.0", "edx-toggles==6.0.0", "dnspython==2.8.0", "six==1.17.0", "social-auth-core==4.9.1", "click-repl==0.3.0", "django-durationwidget==1.0.5", "pathlib2==2.3.7.post1", "imagesize==2.0.0", "edx-lint==6.1.0", "mccabe==0.7.0", "oauthlib==3.3.1", "restructuredtext-lint==2.0.2", "djangorestframework==3.17.1", "pynacl==1.6.2", "semantic-version==2.10.0", "platformdirs==4.10.0", "celery==5.6.3", "wheel==0.47.0", "cryptography==48.0.0", "edx-braze-client==0.2.5", "alabaster==1.0.0", "sphinxcontrib-devhelp==2.0.0", "polib==1.2.0", "pytest==9.0.3", "beautifulsoup4==4.14.3", "lxml[html-clean]==6.1.1", "edx-i18n-tools==2.0.0", "referencing==0.37.0", "sphinx==9.1.0", "pydata-sphinx-theme==0.16.1", "sphinxcontrib-applehelp==2.0.0", "gevent==26.5.0", "roman-numerals==4.1.0", "django-celery-results==2.6.0", "python-dateutil==2.9.0.post0", "requests==2.34.2", "ply==3.11", "code-annotations==3.0.0", "babel==2.18.0", "edx-django-utils==8.0.1", "pylint-django==2.7.0", "django-filter==25.2", "drf-jwt==1.19.2", "faker==40.19.1", "django-waffle==5.0.0", "pip-tools==7.5.3", "analytics-python==1.4.post1", "snowballstemmer==3.1.0", "tinycss2==1.4.0", "greenlet==3.5.1", "edx-drf-extensions==10.6.0", "click-didyoumean==0.3.1", "jinja2==3.1.6", "tzlocal==5.3.1", "isort==8.0.1", "readme-renderer==44.0", "soupsieve==2.8.4", "billiard==4.2.4", "uritemplate==4.2.0", "build==1.5.0", "coverage[toml]==7.14.1", "pyjwt[crypto]==2.13.0", "certifi==2026.5.20", "vine==5.1.0", "sphinxcontrib-jsmath==1.0.1", "django-log-request-id==2.1.2", "zipp==4.1.0", "social-auth-app-django==5.9.0", "pywatchman==3.0.0", "amqp==5.3.1", "python3-openid==3.2.0", "pymemcache==4.0.0", "cffi==2.0.0", "edx-celeryutils==2.0.0", "pip==26.1.2", "django-autocomplete-light==4.0.1", "zope-event==6.2", "packaging==26.2", "click==8.4.1", "accessible-pygments==0.0.5", "pycparser==3.0", "pytz==2026.2", "sqlparse==0.5.5", "backoff==1.10.0", "redis==8.0.0", "kombu==5.6.2", "pygments==2.20.0", "diff-cover==4.0.0", "asgiref==3.11.1", "inflection==0.5.1", "python-slugify==8.0.4", "typing-extensions==4.15.0", "botocore==1.43.18", "drf-spectacular==0.29.0", "nh3==0.3.5", "charset-normalizer==3.4.7", "mysqlclient==2.2.8", "bleach[css]==6.3.0", "boto3==1.43.18", "djangorestframework-csv==3.0.2", "rules==3.5", "edx-opaque-keys==4.0.0", "pytest-cov==7.1.0", "django-debug-toolbar==6.3.0", "attrs==26.1.0", "more-itertools==11.1.0", "factory-boy==3.3.3", "tomlkit==0.15.0", "docutils==0.21.2", "idna==3.17", "pyyaml==6.0.3", "requests-oauthlib==2.0.0", "django-extensions==4.1", "markupsafe==3.0.3", "stevedore==5.8.0", "sphinxcontrib-qthelp==2.0.0", "jsonfield==3.2.0", "psutil==7.2.2", "jmespath==1.1.0", "django-simple-history==3.11.0", "doc8==2.0.0", "edx-auth-backends==5.0.0", "pydocstyle==6.3.0", "edx-rbac==3.0.0", "astroid==4.0.4", "text-unidecode==1.3", "jinja2-pluralize==0.3.0", "click-log==0.4.0", "simplejson==4.1.1", "defusedxml==0.7.1", "pylint==4.0.5", "iniconfig==2.3.0", "pyproject-hooks==1.2.0", "gunicorn==26.0.0", "urllib3==2.7.0", "pylint-plugin-utils==0.9.0", "django-cors-headers==4.9.0", "setuptools==82.0.1", "click-plugins==1.1.1.2", "zope-interface==8.5", "s3transfer==0.18.0", "wcwidth==0.7.0", "dill==0.4.1", "django-crum==0.7.9", "prompt-toolkit==3.0.52", "edx-rest-api-client==7.0.0", "pluggy==1.6.0", "django-dynamic-fixture==4.0.1", "tzdata==2026.2", "monotonic==1.6", "webencodings==0.5.1", "sphinxcontrib-htmlhelp==2.1.0", "sphinxcontrib-serializinghtml==2.0.0", "djangoql==0.19.1", "pycodestyle==2.14.0", "jsonschema-specifications==2025.9.1", "django-model-utils==5.0.0", "drf-nested-routers==0.95.0", "path==16.14.0", "ddt==1.7.2", "pymongo==4.17.0", "freezegun==1.5.5", "python-memcached==1.62", "lxml-html-clean==0.4.5", "sphinx-book-theme==1.2.0", "pytest-django==4.12.0", "django-ses==4.7.2", "inflect==7.5.0"]',22,'["edx-i18n-tools", "djangorestframework", "code-annotations", "edx-rbac", "pylint-django", "django-autocomplete-light", "edx-drf-extensions", "django-debug-toolbar", "social-auth-app-django", "django-extensions", "edx-django-utils", "edx-auth-backends", "django-celery-results", "pytest-django", "django-cors-headers", "factory-boy", "django-waffle", "edx-celeryutils", "edx-opaque-keys", "edx-rest-api-client", "django-filter", "edx-toggles"]',32,'["edx-i18n-tools", "django-model-utils", "djangorestframework", "code-annotations", "edx-rbac", "django-crum", "pylint-django", "django-simple-history", "django-autocomplete-light", "jsonfield", "django-ses", "edx-drf-extensions", "django-debug-toolbar", "social-auth-app-django", "django-extensions", "edx-django-utils", "edx-auth-backends", "django-celery-results", "pytest-django", "django-cors-headers", "factory-boy", "django-waffle", "edx-celeryutils", "djangorestframework-csv", "rules", "drf-nested-routers", "edx-opaque-keys", "edx-rest-api-client", "drf-jwt", "django-filter", "edx-toggles", "django-dynamic-fixture"]',18,'["django-celery-results", "edx-i18n-tools", "django-cors-headers", "django-extensions", "edx-drf-extensions", "edx-toggles", "edx-celeryutils", "django-debug-toolbar", "django-waffle", "code-annotations", "edx-opaque-keys", "edx-rest-api-client", "django-filter", "social-auth-app-django", "edx-django-utils", "edx-rbac", "edx-auth-backends", "django-autocomplete-light"]',1,NULL,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,62,'{"total_duration": "9783 minutes 24 seconds", "checks": [{"name": "tests (3.12, pinned)", "duration": "2 minutes 27 seconds"}, {"name": "tests (3.12, 5.2)", "duration": "2 minutes 19 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 37 seconds"}, {"name": "quality (3.12)", "duration": "1 minutes 13 seconds"}, {"name": "check migration for MySql8 (ubuntu-latest, 3.12)", "duration": "0 minutes 56 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 35 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2020-04-07 15:41:12','master','Django backend for managing licenses and subscriptions',2735,41,1,0,0,0,0,0,0,'2026-06-08 03:15:30','GNU AGPLv3',4,1,0,0,537,525,8721,1190616,2501,1,1,0,0,1,0,0,'','openedx',6,'[''http://license-manager.readthedocs.io/en/latest/: 404'', ''https://license-manager.readthedocs.io/en/latest/: 404'', ''https://github.com/openedx/license-manager/tree/master/docs: 504'', ''https://github.com/openedx/license-manager/blob/master/LICENSE: 404'']',0,'[''http://codecov.io/github/edx/license-manager/coverage.svg?branch=master'', ''http://codecov.io/github/edx/license-manager?branch=master'', ''https://github.com/openedx/devstack'', ''https://github.com/openedx/license-manager/blob/master/docs/getting_started.rst'', ''https://readthedocs.org/projects/license-manager/badge/?version=latest'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://openedx.slack.com/messages/general/'', ''https://groups.google.com/forum/'']',1,0,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/ccx-keys',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,49,0,'[]',0,'',0,0,'','',6,'["dnspython==2.8.0", "pymongo==4.15.3", "stevedore==5.5.0", "edx-opaque-keys==3.0.0", "six==1.17.0", "typing-extensions==4.15.0"]',49,'["dill==0.4.0", "platformdirs==4.5.0", "pylint-django==2.6.1", "mock==5.2.0", "pycodestyle==2.14.0", "dnspython==2.8.0", "pylint-plugin-utils==0.9.0", "tox==4.31.0", "ddt==1.7.2", "click-log==0.4.0", "distlib==0.4.0", "lazy-object-proxy==1.12.0", "pluggy==1.6.0", "pylint-celery==0.3", "pyproject-hooks==1.2.0", "mccabe==0.7.0", "python-slugify==8.0.4", "colorama==0.4.6", "iniconfig==2.3.0", "click==8.3.0", "pylint==3.3.9", "code-annotations==2.3.0", "six==1.17.0", "typing-extensions==4.15.0", "chardet==5.2.0", "setuptools==80.9.0", "text-unidecode==1.3", "coverage==7.11.0", "tomlkit==0.13.3", "jinja2==3.1.6", "isort==6.1.0", "edx-lint==5.6.0", "build==1.3.0", "astroid==3.3.11", "pymongo==4.15.3", "edx-opaque-keys==3.0.0", "pytest==8.4.2", "pip==25.2", "pip-tools==7.5.1", "virtualenv==20.35.3", "pyyaml==6.0.3", "filelock==3.20.0", "pygments==2.19.2", "wheel==0.45.1", "markupsafe==3.0.3", "stevedore==5.5.0", "packaging==25.0", "cachetools==6.2.1", "pyproject-api==1.10.0"]',3,'["edx-opaque-keys", "code-annotations", "pylint-django"]',3,'["edx-opaque-keys", "code-annotations", "pylint-django"]',2,'["edx-opaque-keys", "code-annotations"]',0,NULL,1,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,0,1,13,'{"total_duration": "1 minutes 13 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 4 seconds"}, {"name": "Dependabot", "duration": "1 minutes 2 seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 9 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, unittest)", "duration": "0 minutes 8 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}]}','Other','2015-07-17 21:04:14','master','Opaque key implementation for the Custom Courses for EdX feature.',208,8,1,0,0,0,1,0,0,'2026-05-30 13:49:33','GNU AGPLv3',8,1,0,0,0,0,1465,28669,0,1,1,0,0,1,0,0,'','openedx',2,'[''https://github.com/openedx/ccx-keys/actions/workflows/ci.yaml/badge.svg: 404'', ''http://opaque-keys.readthedocs.org/en/latest/: 429'']',0,'[''http://code.edx.org/'', ''https://github.com/edx/jenkins-job-dsl/actions/workflows/ci.yml'', ''https://coveralls.io/repos/edx/ccx-keys/badge.svg'', ''https://coveralls.io/r/edx/ccx-keys'', ''https://github.com/openedx/opaque-keys'', ''https://github.com/openedx/edx-platform/wiki/Opaque-Keys'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'edx-ccx-keys','[''3'', ''3.12'']','https://github.com/openedx/ccx-keys',0,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xss-utils',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,84,0,'[]',0,'',0,0,'','',3,'["sqlparse==0.5.5", "asgiref==3.11.1", "django==5.2.12"]',84,'["readme-renderer==44.0", "platformdirs==4.9.4", "pluggy==1.6.0", "jinja2==3.1.6", "stevedore==5.7.0", "babel==2.18.0", "nh3==0.3.3", "snowballstemmer==3.0.1", "urllib3==2.6.3", "soupsieve==2.8.3", "isort==8.0.1", "python-discovery==1.1.1", "sqlparse==0.5.5", "accessible-pygments==0.0.5", "sphinx==9.1.0", "coverage[toml]==7.13.4", "iniconfig==2.3.0", "roman-numerals==4.1.0", "pygments==2.19.2", "sphinxcontrib-qthelp==2.0.0", "pylint-celery==0.3", "charset-normalizer==3.4.5", "pylint-django==2.7.0", "pydata-sphinx-theme==0.15.4", "six==1.17.0", "virtualenv==21.1.0", "requests==2.32.5", "dill==0.4.1", "wheel==0.46.3", "markupsafe==3.0.3", "sphinxcontrib-jsmath==1.0.1", "packaging==26.0", "restructuredtext-lint==2.0.2", "cachetools==7.0.3", "pyyaml==6.0.3", "sphinxcontrib-htmlhelp==2.1.0", "pip-tools==7.5.3", "edx-lint==5.6.0", "lxml[html-clean]==6.0.2", "pydocstyle==6.3.0", "python-slugify==8.0.4", "beautifulsoup4==4.14.3", "edx-i18n-tools==1.9.0", "doc8==2.0.0", "pip==26.0.1", "certifi==2026.2.25", "path==16.16.0", "asgiref==3.11.1", "mccabe==0.7.0", "pytest==9.0.2", "django==5.2.12", "pyproject-api==1.10.0", "idna==3.11", "tox==4.49.0", "docutils==0.21.2", "typing-extensions==4.15.0", "pycodestyle==2.14.0", "click-log==0.4.0", "polib==1.2.0", "diff-cover==10.2.0", "build==1.4.0", "pylint==4.0.5", "pyproject-hooks==1.2.0", "tomli-w==1.2.0", "code-annotations==2.3.2", "chardet==7.0.1", "sphinx-book-theme==1.1.4", "setuptools==82.0.0", "pytest-django==4.12.0", "text-unidecode==1.3", "imagesize==2.0.0", "pytest-cov==7.0.0", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "alabaster==1.0.0", "pylint-plugin-utils==0.9.0", "colorama==0.4.6", "tomlkit==0.14.0", "distlib==0.4.0", "lxml-html-clean==0.4.4", "astroid==4.0.4", "click==8.3.1", "filelock==3.25.0"]',4,'["edx-i18n-tools", "code-annotations", "pylint-django", "pytest-django"]',4,'["edx-i18n-tools", "code-annotations", "pylint-django", "pytest-django"]',2,'["edx-i18n-tools", "code-annotations"]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,27,'{"total_duration": "37512 minutes 55 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 35 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 25 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "Dependabot", "duration": "0 minutes 22 seconds"}]}','Other','2018-08-13 14:00:47','master',' This repo contains utility functions for Django and Mako templates to remove potential XSS attacks in templates.',338,10,1,0,0,0,0,0,0,'2026-03-30 20:41:16','GNU AGPLv3',3,1,0,0,0,0,3219,11775,0,1,1,0,0,1,0,0,'','openedx',1,'[''https://xss-utils.readthedocs.org: 404'', ''http://xss-utils.readthedocs.io/en/latest/: 404'', ''https://github.com/openedx/xss-utils/blob/master/LICENSE.txt: 404'']',1,'[''https://docs.openedx.org/en/latest/developers/references/developer_guide/preventing_xss/index.html'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/xss-utils/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/xss-utils/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/xss-utils.svg'', ''https://pypi.python.org/pypi/xss-utils/'', ''https://github.com/openedx/xss-utils/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/xss-utils/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/xss-utils/coverage.svg?branch=master'', ''http://codecov.io/github/edx/xss-utils?branch=master'', ''https://readthedocs.org/projects/xss-utils/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/xss-utils.svg'', ''https://img.shields.io/github/license/edx/xss-utils.svg'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'xss-utils','[''3'', ''3.12'']','https://github.com/openedx/xss-utils',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-aspects',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,14,0,'',0,'{}',3,11,'{"@edx/browserslist-config": "^1.5.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/jest": "^29.5.14", "@types/react": "^18", "@types/react-dom": "^18", "jest": "^29", "nodemon": "^3.1.14", "tsc-alias": "^1.8.16", "turbo": "^2.9.2"}','{"@edx/openedx-atlas": "^0.7.0", "@superset-ui/embedded-sdk": "^0.3.0", "react-helmet": "^6.1.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,5,'{"total_duration": "6117 minutes 19 seconds", "checks": [{"name": "Release", "duration": "0 minutes 40 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 37 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2026-05-28 13:40:16','main','',397,1,1,0,0,0,0,0,0,'2026-06-03 18:35:55','GNU AGPLv3',3,1,0,0,243,1300,1830,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-aspects: 404'']',1,'[''https://github.com/openedx/frontend-app-aspects.git'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-aspects/issues'', ''https://github.com/openedx/frontend-base'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-base/blob/main/docs/how_tos/i18n.rst'', ''https://openedx.org/slack'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-app-aspects.svg'', ''https://github.com/openedx/frontend-app-aspects/blob/main/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-aspects/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-app-aspects/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-app-aspects/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-app-aspects?branch=main'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/acid-block',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,45,0,'[]',0,'',0,0,'','',14,'["lazy==1.6", "mako==1.3.10", "appdirs==1.4.4", "lxml==6.0.2", "python-dateutil==2.9.0.post0", "pyyaml==6.0.3", "simplejson==3.20.2", "fs==2.4.16", "webob==1.8.9", "web-fragments==3.1.0", "xblock==5.3.0", "pytz==2025.2", "markupsafe==3.0.3", "six==1.17.0"]',45,'["isort==7.0.0", "pylint==4.0.4", "setuptools==80.9.0", "pylint-plugin-utils==0.9.0", "webob==1.8.9", "click==8.3.1", "jinja2==3.1.6", "pylint-django==2.7.0", "text-unidecode==1.3", "code-annotations==2.3.0", "markupsafe==3.0.3", "pytz==2025.2", "pip-tools==7.5.2", "pyyaml==6.0.3", "python-dateutil==2.9.0.post0", "platformdirs==4.5.1", "pytest-cov==7.0.0", "build==1.4.0", "pygments==2.19.2", "click-log==0.4.0", "iniconfig==2.3.0", "mccabe==0.7.0", "pylint-celery==0.3", "python-slugify==8.0.4", "tomlkit==0.14.0", "lazy==1.6", "pip==25.3", "simplejson==3.20.2", "coverage[toml]==7.13.1", "dill==0.4.0", "xblock==5.3.0", "wheel==0.45.1", "web-fragments==3.1.0", "six==1.17.0", "mako==1.3.10", "appdirs==1.4.4", "astroid==4.0.3", "lxml==6.0.2", "stevedore==5.6.0", "fs==2.4.16", "pytest==9.0.2", "pyproject-hooks==1.2.0", "pluggy==1.6.0", "edx-lint==5.6.0", "packaging==25.0"]',4,'["pylint-django", "xblock", "web-fragments", "code-annotations"]',4,'["pylint-django", "xblock", "web-fragments", "code-annotations"]',3,'["xblock", "web-fragments", "code-annotations"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,0,0,1,1,1,9,'{"total_duration": "1 minutes 7 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 7 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2014-02-13 15:54:08','master','An XBlock for testing XBlock Runtimes',176,23,1,0,0,0,0,0,0,'2026-06-02 03:44:36','GNU AGPLv3',8,0,671,0,679,8037,1846,19477,0,0,1,0,1,1,0,1,'','openedx',2,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'acid-xblock','[''3'', ''3.11'', ''3.12'']','https://github.com/openedx/acid-block',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/DoneXBlock',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,121,0,'[]',0,'',0,0,'','',16,'["mako==1.3.12", "simplejson==4.1.1", "xblock==6.1.0", "asgiref==3.11.1", "lxml==6.1.1", "appdirs==1.4.4", "pytz==2026.2", "web-fragments==4.0.0", "python-dateutil==2.9.0.post0", "six==1.17.0", "fs==2.4.16", "django==5.2.14", "markupsafe==3.0.3", "sqlparse==0.5.5", "webob==1.8.9", "pyyaml==6.0.3"]',121,'["cffi==2.0.0", "appdirs==1.4.4", "wheel==0.47.0", "mdurl==0.1.2", "alabaster==1.0.0", "nh3==0.3.5", "botocore==1.43.18", "keyring==25.7.0", "simplejson==4.1.1", "coveralls==4.1.0", "text-unidecode==1.3", "charset-normalizer==3.4.7", "code-annotations==3.0.0", "pip-tools==7.5.3", "polib==1.2.0", "urllib3==2.7.0", "mako==1.3.12", "jaraco-functools==4.5.0", "setuptools==82.0.1", "binaryornot==0.6.0", "docutils==0.23", "babel==2.18.0", "arrow==1.4.0", "rfc3986==2.0.0", "sphinx==9.1.0", "cachetools==7.1.4", "build==1.5.0", "sphinxcontrib-serializinghtml==2.0.0", "astroid==4.0.4", "id==1.6.1", "readme-renderer==44.0", "pypng==0.20220715.0", "pylint-django==2.7.0", "pylint-plugin-utils==0.9.0", "mccabe==0.7.0", "s3transfer==0.18.0", "annotated-doc==0.0.4", "accessible-pygments==0.0.5", "edx-i18n-tools==2.0.0", "dill==0.4.1", "python-dateutil==2.9.0.post0", "lxml[html-clean]==6.1.1", "iniconfig==2.3.0", "markupsafe==3.0.3", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-applehelp==2.0.0", "pyproject-hooks==1.2.0", "boto3==1.43.18", "docutils==0.22.4", "isort==8.0.1", "sphinxcontrib-htmlhelp==2.1.0", "tzdata==2026.2", "platformdirs==4.10.0", "sphinxcontrib-qthelp==2.0.0", "pylint==4.0.5", "imagesize==2.0.0", "markdown-it-py==4.2.0", "pygments==2.20.0", "fs==2.4.16", "pyyaml==6.0.3", "lxml==6.1.1", "roman-numerals==4.1.0", "fs-s3fs==1.1.1", "pycodestyle==2.14.0", "tomlkit==0.15.0", "lxml-html-clean==0.4.5", "xblock==6.1.0", "asgiref==3.11.1", "cookiecutter==2.7.1", "xblock-sdk==0.14.0", "path==16.16.0", "requests-toolbelt==1.0.0", "sqlparse==0.5.5", "typing-extensions==4.15.0", "rich==15.0.0", "ddt==1.7.2", "pytz==2026.2", "click==8.4.1", "jinja2==3.1.6", "shellingham==1.5.4", "pydata-sphinx-theme==0.16.1", "webob==1.8.9", "python-discovery==1.4.0", "pip==26.1.2", "typer==0.26.4", "python-slugify==8.0.4", "twine==6.2.0", "certifi==2026.5.20", "django==5.2.14", "more-itertools==11.1.0", "tox==4.55.0", "pylint-celery==0.3", "snowballstemmer==3.1.0", "cryptography==48.0.0", "web-fragments==4.0.0", "sphinxcontrib-jsmath==1.0.1", "tomli-w==1.2.0", "colorama==0.4.6", "jaraco-classes==3.4.0", "pytest==9.0.3", "six==1.17.0", "secretstorage==3.5.0", "filelock==3.29.0", "jaraco-context==6.1.2", "distlib==0.4.0", "requests==2.34.2", "pluggy==1.6.0", "beautifulsoup4==4.14.3", "virtualenv==21.4.2", "sphinx-book-theme==1.2.0", "idna==3.17", "soupsieve==2.8.4", "pycparser==3.0", "jmespath==1.1.0", "click-log==0.4.0", "coverage[toml]==7.14.1", "packaging==26.2", "jeepney==0.9.0", "pyproject-api==1.10.1", "edx-lint==6.1.0", "stevedore==5.8.0"]',6,'["web-fragments", "xblock", "pylint-django", "code-annotations", "edx-i18n-tools", "xblock-sdk"]',6,'["web-fragments", "xblock", "pylint-django", "code-annotations", "edx-i18n-tools", "xblock-sdk"]',5,'["web-fragments", "xblock", "code-annotations", "edx-i18n-tools", "xblock-sdk"]',0,NULL,1,0,1,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,0,1,40,'{"total_duration": "3351 minutes 32 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 23 seconds"}, {"name": "Analyze (javascript)", "duration": "1 minutes 16 seconds"}, {"name": "Analyze (python)", "duration": "0 minutes 58 seconds"}, {"name": "Tests (3.12, quality)", "duration": "0 minutes 49 seconds"}, {"name": "Tests (3.12, django42)", "duration": "0 minutes 45 seconds"}, {"name": "Dependabot", "duration": "0 minutes 44 seconds"}, {"name": "Tests (3.12, django52)", "duration": "0 minutes 39 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}]}','Other','2017-07-07 16:01:04','master','An XBlock for students to mark they''ve finished something. ',655,25,1,0,0,0,0,0,0,'2026-06-08 00:54:05','GNU AGPLv3',4,1,2185,290,1526,1496,3794,11612,367,1,1,0,0,1,0,0,'','openedx',0,'[''https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\''www.gnu.org\'', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError("HTTPSConnection(host=\''www.gnu.org\'', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable"))'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/DoneXBlock: 404'']',1,'[''https://img.shields.io/badge/License-AGPL_v3-blue.svg'', ''https://github.com/openedx/DoneXBlock/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/DoneXBlock/actions/workflows/ci.yml'', ''https://github.com/openedx/DoneXBlock/actions/workflows/pypi-release.yml/badge.svg'', ''https://github.com/openedx/DoneXBlock/actions/workflows/pypi-release.yml'', ''https://img.shields.io/badge/status-maintained-31c653'', ''https://openedx.org/r/xblock'', ''https://docs.tutor.edly.io/configuration.html'', ''https://discuss.openedx.org'', ''https://github.com/openedx/DoneXBlock/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'done-xblock','[''3'', ''3.12'']','https://github.com/openedx/DoneXBlock',1,1,1,0,0,0,0,0,0,'[]','[]','[''gettext'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-val',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,125,0,'[]',0,'',0,0,'','',120,'["coveralls==4.1.0", "chardet==7.1.0", "propcache==0.4.1", "click-log==0.4.0", "boto3==1.42.66", "cffi==1.17.1", "pylint-django==2.7.0", "code-annotations==2.3.2", "requests-toolbelt==1.0.0", "pytest==9.0.2", "docutils==0.22.4", "typing-extensions==4.15.0", "annotated-doc==0.0.4", "pillow==12.1.1", "tomlkit==0.14.0", "coverage[toml]==7.13.4", "filelock==3.25.2", "pydocstyle==6.3.0", "readme-renderer==44.0", "jmespath==1.1.0", "distlib==0.4.0", "diff-cover==10.2.0", "keyring==25.7.0", "pluggy==1.6.0", "annotated-types==0.7.0", "pyproject-api==1.10.0", "multidict==6.7.1", "certifi==2026.2.25", "pyyaml==6.0.3", "ddt==1.7.2", "platformdirs==4.9.4", "colorama==0.4.6", "edx-opaque-keys==3.1.0", "pydantic-core==2.41.5", "semantic-version==2.10.0", "edx-lint==5.6.0", "setuptools==81.0.0", "pact-python==2.3.3", "python-discovery==1.1.3", "pycparser==3.0", "packaging==26.0", "jaraco-context==6.1.1", "yarl==1.23.0", "pyjwt[crypto]==2.11.0", "typer==0.24.1", "rich==14.3.3", "drf-jwt==1.19.2", "pygments==2.19.2", "psutil==7.2.2", "edx-django-utils==8.0.1", "pylint==4.0.5", "pymongo==4.16.0", "urllib3==2.6.3", "iniconfig==2.3.0", "pylint-celery==0.3", "astroid==4.0.4", "sqlparse==0.5.5", "mock==5.2.0", "fastapi==0.135.1", "jaraco-classes==3.4.0", "pylint-plugin-utils==0.9.0", "charset-normalizer==3.4.5", "markdown-it-py==4.0.0", "edx-drf-extensions==10.6.0", "markupsafe==3.0.3", "djangorestframework==3.16.1", "nh3==0.3.3", "id==1.6.1", "rfc3986==2.0.0", "python-slugify==8.0.4", "dill==0.4.1", "django==5.2.12", "h11==0.16.0", "appdirs==1.4.4", "six==1.17.0", "botocore==1.42.66", "mccabe==0.7.0", "typing-inspection==0.4.2", "django-model-utils==5.0.0", "virtualenv==21.2.0", "jeepney==0.9.0", "jinja2==3.1.6", "edx-django-release-util==1.5.0", "asgiref==3.11.1", "python-dateutil==2.9.0.post0", "twine==6.2.0", "more-itertools==10.8.0", "lxml==6.0.2", "requests==2.32.5", "pydantic==2.12.5", "isort==8.0.1", "cryptography==46.0.0", "stevedore==5.7.0", "pycodestyle==2.14.0", "text-unidecode==1.3", "starlette==0.52.1", "cachetools==7.0.5", "anyio==4.12.1", "jaraco-functools==4.4.0", "dnspython==2.8.0", "fs==2.4.16", "edx-toggles==5.4.1", "shellingham==1.5.4", "mdurl==0.1.2", "snowballstemmer==3.0.1", "tox==4.49.1", "responses==0.26.0", "uvicorn==0.41.0", "pytest-cov==7.0.0", "tomli-w==1.2.0", "django-waffle==5.0.0", "django-crum==0.7.9", "s3transfer==0.16.0", "click==8.3.1", "django-storages==1.14.6", "pysrt==1.1.2", "pytest-django==4.12.0", "secretstorage==3.5.0", "idna==3.11", "pynacl==1.6.0"]',125,'["coveralls==4.1.0", "chardet==7.1.0", "propcache==0.4.1", "click-log==0.4.0", "boto3==1.42.66", "cffi==1.17.1", "pylint-django==2.7.0", "code-annotations==2.3.2", "requests-toolbelt==1.0.0", "pytest==9.0.2", "docutils==0.22.4", "typing-extensions==4.15.0", "annotated-doc==0.0.4", "pillow==12.1.1", "wheel==0.46.3", "pyproject-hooks==1.2.0", "tomlkit==0.14.0", "coverage[toml]==7.13.4", "filelock==3.25.2", "pydocstyle==6.3.0", "readme-renderer==44.0", "jmespath==1.1.0", "distlib==0.4.0", "diff-cover==10.2.0", "keyring==25.7.0", "pluggy==1.6.0", "pip==26.0.1", "annotated-types==0.7.0", "pyproject-api==1.10.0", "multidict==6.7.1", "certifi==2026.2.25", "pyyaml==6.0.3", "ddt==1.7.2", "platformdirs==4.9.4", "colorama==0.4.6", "edx-opaque-keys==3.1.0", "pydantic-core==2.41.5", "semantic-version==2.10.0", "edx-lint==5.6.0", "setuptools==81.0.0", "build==1.4.0", "pact-python==2.3.3", "python-discovery==1.1.3", "pycparser==3.0", "packaging==26.0", "pip-tools==7.5.3", "jaraco-context==6.1.1", "yarl==1.23.0", "pyjwt[crypto]==2.11.0", "typer==0.24.1", "rich==14.3.3", "drf-jwt==1.19.2", "pygments==2.19.2", "psutil==7.2.2", "edx-django-utils==8.0.1", "pylint==4.0.5", "pymongo==4.16.0", "urllib3==2.6.3", "iniconfig==2.3.0", "pylint-celery==0.3", "astroid==4.0.4", "sqlparse==0.5.5", "mock==5.2.0", "fastapi==0.135.1", "jaraco-classes==3.4.0", "pylint-plugin-utils==0.9.0", "charset-normalizer==3.4.5", "markdown-it-py==4.0.0", "edx-drf-extensions==10.6.0", "markupsafe==3.0.3", "djangorestframework==3.16.1", "nh3==0.3.3", "id==1.6.1", "rfc3986==2.0.0", "python-slugify==8.0.4", "dill==0.4.1", "django==5.2.12", "h11==0.16.0", "appdirs==1.4.4", "six==1.17.0", "botocore==1.42.66", "mccabe==0.7.0", "typing-inspection==0.4.2", "django-model-utils==5.0.0", "virtualenv==21.2.0", "jeepney==0.9.0", "jinja2==3.1.6", "edx-django-release-util==1.5.0", "asgiref==3.11.1", "python-dateutil==2.9.0.post0", "twine==6.2.0", "more-itertools==10.8.0", "lxml==6.0.2", "requests==2.32.5", "pydantic==2.12.5", "isort==8.0.1", "cryptography==46.0.0", "stevedore==5.7.0", "pycodestyle==2.14.0", "text-unidecode==1.3", "starlette==0.52.1", "cachetools==7.0.5", "anyio==4.12.1", "jaraco-functools==4.4.0", "dnspython==2.8.0", "fs==2.4.16", "edx-toggles==5.4.1", "shellingham==1.5.4", "mdurl==0.1.2", "snowballstemmer==3.0.1", "tox==4.49.1", "responses==0.26.0", "uvicorn==0.41.0", "pytest-cov==7.0.0", "tomli-w==1.2.0", "django-waffle==5.0.0", "django-crum==0.7.9", "s3transfer==0.16.0", "click==8.3.1", "django-storages==1.14.6", "pysrt==1.1.2", "pytest-django==4.12.0", "secretstorage==3.5.0", "idna==3.11", "pynacl==1.6.0"]',11,'["edx-toggles", "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "djangorestframework", "pytest-django", "django-storages", "pylint-django", "edx-django-release-util", "django-waffle", "code-annotations"]',14,'["edx-toggles", "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "djangorestframework", "pytest-django", "django-model-utils", "django-crum", "django-storages", "drf-jwt", "pylint-django", "edx-django-release-util", "django-waffle", "code-annotations"]',7,'["edx-toggles", "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "edx-django-release-util", "django-waffle", "code-annotations"]',0,NULL,1,0,1,0,0,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,52,'{"total_duration": "2106 minutes 46 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 55 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 30 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 20 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 6 seconds"}, {"name": "Pact Provider Verification", "duration": "0 minutes 41 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 50 seconds"}]}','Other','2014-07-08 20:11:27','master','',1670,37,1,0,0,0,0,0,0,'2026-06-05 03:28:00','GNU AGPLv3',5,1,0,0,0,0,3841,374378,0,1,1,0,0,1,0,0,'','openedx',4,'[''http://www.example.com/example_mobile_video.mp4: 404'', ''http://www.example.com/example_desktop_video.mp4: 404'']',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edxval','[''3'', ''3.12'']','http://github.com/openedx/edx-val',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-lint',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,49,0,'[]',0,'',0,0,'','',20,'["pylint-django==2.7.0", "jinja2==3.1.6", "isort==8.0.1", "astroid==4.0.4", "pylint-celery==0.3", "tomlkit==0.14.0", "six==1.17.0", "pylint-plugin-utils==0.9.0", "platformdirs==4.9.6", "markupsafe==3.0.3", "pyyaml==6.0.3", "click-log==0.4.0", "dill==0.4.1", "stevedore==5.7.0", "code-annotations==3.0.0", "text-unidecode==1.3", "mccabe==0.7.0", "pylint==4.0.5", "click==8.3.3", "python-slugify==8.0.4"]',49,'["filelock==3.29.0", "build==1.4.4", "python-discovery==1.2.2", "pluggy==1.6.0", "pyproject-api==1.10.0", "pylint-django==2.7.0", "jinja2==3.1.6", "pip==26.0.1", "tomli-w==1.2.0", "tox==4.53.0", "coverage==7.13.5", "pyproject-hooks==1.2.0", "isort==8.0.1", "astroid==4.0.4", "pylint-celery==0.3", "tomlkit==0.14.0", "cachetools==7.0.6", "asgiref==3.11.1", "six==1.17.0", "pip-tools==7.5.3", "wheel==0.47.0", "wheel==0.45.1", "pylint-plugin-utils==0.9.0", "platformdirs==4.9.6", "markupsafe==3.0.3", "pyyaml==6.0.3", "distlib==0.4.0", "virtualenv==21.2.4", "sqlparse==0.5.5", "click-log==0.4.0", "setuptools==82.0.1", "dill==0.4.1", "pygments==2.20.0", "stevedore==5.7.0", "colorama==0.4.6", "code-annotations==3.0.0", "tox==3.28.0", "setuptools==79.0.0", "packaging==26.1", "text-unidecode==1.3", "mccabe==0.7.0", "pylint==4.0.5", "click==8.3.3", "tox-battery==0.6.2", "python-slugify==8.0.4", "py==1.11.0", "pytest==9.0.3", "pip==24.2", "iniconfig==2.3.0"]',2,'["code-annotations", "pylint-django"]',2,'["code-annotations", "pylint-django"]',1,'["code-annotations"]',0,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,30,'{"total_duration": "12319 minutes 17 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 4 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 56 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 43 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 38 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pylint)", "duration": "0 minutes 32 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}]}','Other','2015-01-29 05:14:33','master','Custom tooling for pylint and other repo management tools',2353,30,1,0,0,0,0,0,0,'2026-06-08 04:33:52','Apache License 2.0',14,1,0,0,0,1281,1902,145338,0,0,0,0,0,1,0,0,'','openedx',1,'[''https://open.edx.org/getting-help: 403'']',1,'[''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/edx-lint/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-lint/actions?query=workflow%3A%22Python+CI%22'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-lint','[]','https://github.com/openedx/edx-lint',1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-platform',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,624,0,'[]',0,'{}',64,24,'{"@edx/stylelint-config-edx": "^2", "babel-jest": "^29", "jasmine-core": "2.99.1", "jasmine-jquery": "git+https://git@github.com/velesin/jasmine-jquery.git#ebad463d592d3fea00c69f26ea18a930e09c7b58", "jest": "^29", "karma": "^6.0.0", "karma-chrome-launcher": "^3", "karma-coverage": "^2", "karma-firefox-launcher": "^2", "karma-jasmine": "^1", "karma-jasmine-html-reporter": "^0.2", "karma-junit-reporter": "^2", "karma-requirejs": "^1", "karma-sourcemap-loader": "^0.4", "karma-spec-reporter": "^0.0", "karma-webpack": "^5", "plato": "^1", "react-test-renderer": "^16", "selenium-webdriver": "^4", "sinon": "^19", "squirejs": "^0.1", "string-replace-loader": "^3", "stylelint-formatter-pretty": "^4", "webpack-cli": "^5"}','{"@babel/core": "^7", "@babel/plugin-proposal-object-rest-spread": "^7", "@babel/plugin-transform-object-assign": "^7", "@babel/preset-env": "^7", "@babel/preset-react": "^7", "@edx/brand": "npm:@openedx/brand-openedx@^1", "@edx/edx-bootstrap": "^1", "@edx/edx-proctoring": "^4", "@edx/frontend-component-cookie-policy-banner": "2.2.0", "@edx/paragon": "^2", "@testing-library/jest-dom": "^6", "@testing-library/react": "^12", "@testing-library/user-event": "^12", "babel-loader": "^10.0.0", "babel-plugin-transform-class-properties": "^6", "babel-polyfill": "^6", "backbone": "^1", "backbone-associations": "^0.6", "backbone.paginator": "^2", "bootstrap": "4.0.0", "camelize": "^1", "classnames": "^2", "css-loader": "^7", "datatables": "^1", "datatables.net-fixedcolumns": "^5", "edx-ui-toolkit": "^1", "exports-loader": "^0.7.0", "file-loader": "^6", "font-awesome": "^4", "hls.js": "^1", "imports-loader": "^0.8", "jest-environment-jsdom": "^29", "jquery": "^2", "jquery-migrate": "^1", "jquery.scrollto": "^2", "js-cookie": "^3", "moment": "^2", "moment-timezone": "^0.6.0", "node-gyp": "^12.0.0", "popper.js": "^1", "prop-types": "^15", "raw-loader": "^0.5", "react": "^16", "react-dom": "^16", "react-focus-lock": "^2.0.0", "react-redux": "^5", "react-router-dom": "^5", "react-slick": "^0.31.0", "redux": "3.7.2", "redux-thunk": "2.2.0", "requirejs": "^2", "rtlcss": "^4", "sass": "^1", "sass-loader": "^16", "scriptjs": "^2", "style-loader": "^4", "svg-inline-loader": "^0.8", "uglify-js": "^3", "underscore": "^1", "underscore.string": "^3", "webpack": "^5", "webpack-bundle-tracker": "^3", "webpack-merge": "^6", "which-country": "^1"}',309,'["django-ipware==7.0.1", "markupsafe==3.0.3", "tzlocal==5.3.1", "frozenlist==1.8.0", "fastavro==1.12.2", "edx-i18n-tools==2.0.0", "olxcleaner==0.3.0", "fonttools==4.63.0", "edx-celeryutils==2.0.0", "semantic-version==2.10.0", "python-slugify==8.0.4", "defusedxml==0.7.1", "edx-completion==5.0.0", "chardet==7.4.3", "pymongo==4.4.0", "gunicorn==26.0.0", "edx-drf-extensions==10.6.0", "packaging==26.2", "encutils==1.0.0", "tqdm==4.67.3", "asgiref==3.11.1", "edx-django-utils==8.0.1", "platformdirs==4.10.0", "xblock-google-drive==0.8.2", "idna==3.18", "aiosignal==1.4.0", "path==16.11.0", "lxml[html-clean]==5.3.2", "google-cloud-storage==3.11.0", "cachetools==7.1.4", "help-tokens==4.0.0", "celery==5.6.3", "edx-django-release-util==1.5.0", "protobuf==7.35.0", "redis==8.0.0", "acid-xblock==0.4.1", "aniso8601==10.0.1", "sortedcontainers==2.4.0", "anyio==4.13.0", "edxval==4.0.1", "pyrsistent==0.20.0", "attrs==26.1.0", "httpcore==1.0.9", "code-annotations==3.0.0", "openedx-django-pyfs==4.0.0", "oauthlib==3.3.1", "mongoengine==0.29.3", "tomlkit==0.15.0", "staff-graded-xblock==4.0.0", "python-swiftclient==4.10.0", "django-webpack-loader==3.2.4", "google-resumable-media==2.10.0", "django-model-utils==5.0.0", "amqp==5.3.1", "pyyaml==6.0.3", "tinycss2==1.4.0", "ora2==7.0.0", "path-py==12.5.0", "boto3==1.43.21", "edx-search==5.0.1", "nltk==3.9.4", "django-multi-email-field==0.8.0", "recommender-xblock==5.0.0", "pyuca==1.2", "sorl-thumbnail==13.0.0", "drf-yasg==1.21.15", "cryptography==48.0.0", "wcmatch==10.1", "django-method-override==1.0.4", "drf-spectacular==0.29.0", "tzdata==2026.2", "edx-when==4.0.0", "xblock-poll==1.15.1", "social-auth-app-django==5.4.1", "edx-event-bus-redis==1.0.0", "google-cloud-firestore==2.27.0", "jinja2==3.1.6", "edx-event-bus-kafka==6.1.0", "cachecontrol==0.14.4", "openedx-authz==1.16.0", "python3-saml==1.16.0", "msgpack==1.1.2", "enmerkar==0.7.1", "fs-s3fs==1.1.1", "babel==2.18.0", "mailsnake==1.6.4", "django-crum==0.7.9", "wrapt==2.2.1", "unicodecsv==0.14.1", "xss-utils==1.0.0", "pycasbin==2.8.0", "bleach[css]==6.3.0", "casbin-django-orm-adapter==1.7.0", "enterprise-integrated-channels==0.1.59", "grpcio-status==1.81.0", "s3transfer==0.18.0", "rules==3.5", "ipaddress==1.0.23", "openedx-calc==5.0.0", "pyparsing==3.3.2", "zipp==4.1.0", "icalendar==7.1.2", "elasticsearch==7.9.1", "django-config-models==3.0.0", "edx-api-doc-tools==3.0.0", "django-mysql==4.19.0", "soupsieve==2.8.4", "laboratory==1.0.2", "python3-openid==3.2.0 ; python_version >= \"3\"", "nh3==0.3.5", "referencing==0.37.0", "six==1.17.0", "lazy==1.6", "pycparser==3.0", "requests==2.34.2", "xblock[django]==6.1.0", "python-ipware==3.0.0", "django-storages==1.14.6", "appdirs==1.4.4", "pydantic==2.13.4", "xblock-utils==4.0.0", "django-simple-history==3.11.0", "mysqlclient==2.2.8", "click==8.4.1", "uritemplate==4.2.0", "text-unidecode==1.3", "edx-organizations==8.0.0", "kiwisolver==1.5.0", "bcrypt==5.0.0", "codejail-includes==2.0.0", "django-user-tasks==4.0.0", "mpmath==1.3.0", "firebase-admin==7.4.0", "djangorestframework==3.17.1", "jmespath==1.1.0", "polib==1.2.0", "typesense==2.0.0", "scipy==1.17.1", "django-oauth-toolkit==1.7.1", "piexif==1.1.3", "importlib-metadata==9.0.0", "geoip2==5.2.0", "django-cache-memoize==0.2.1", "jsondiff==2.2.1", "wcwidth==0.7.0", "regex==2026.5.9", "social-auth-core==4.9.1", "sympy==1.14.0", "django-autocomplete-light==4.0.1", "asn1crypto==1.5.1", "sqlparse==0.5.5", "hpack==4.1.0", "markdown==3.10.2", "edx-ccx-keys==2.0.2", "propcache==0.5.2", "django-ses==4.7.2", "openedx-django-require==3.0.0", "event-tracking==4.0.2", "django==5.2.15", "django-pipeline==4.1.0", "edx-sga==0.28.0", "pynacl==1.6.2", "pydantic-core==2.46.4", "walrus==0.9.8", "h2==4.3.0", "django-countries==8.2.0", "stevedore==5.8.0", "edx-rbac==3.0.0", "typing-inspection==0.4.2", "pgpy==0.6.0", "meilisearch==0.41.0", "bridgekeeper==0.9", "edx-submissions==4.0.0", "jsonschema-specifications==2025.9.1", "django-cors-headers==4.9.0", "click-plugins==1.1.1.2", "requests-oauthlib==2.0.0", "openedx-django-wiki==3.1.1", "pyasn1==0.6.3", "botocore==1.43.21", "django-appconf==1.2.0", "simplejson==4.1.1", "googleapis-common-protos==1.75.0", "grpcio==1.81.0", "jsonfield==3.2.0", "typing-extensions==4.15.0", "edx-bulk-grades==2.0.0", "aiohappyeyeballs==2.6.2", "matplotlib==3.10.9", "done-xblock==3.0.0", "pyopenssl==26.2.0", "bracex==2.6", "tincan==1.0.0", "mako==1.3.12", "pynliner==0.8.0", "beautifulsoup4==4.14.3", "h11==0.16.0", "edx-milestones==2.0.0", "django-waffle==5.0.0", "html5lib==1.1", "inflection==0.5.1", "isodate==0.7.2", "sailthru-client==2.2.3", "web-fragments==4.0.0", "crowdsourcehinter-xblock==1.0.0", "annotated-types==0.7.0", "voluptuous==0.16.0", "xmlsec==1.3.14", "cssutils==2.15.0", "unicodeit==0.7.5", "more-itertools==11.1.0", "vine==5.1.0", "lti-consumer-xblock==11.3.1", "pyasn1-modules==0.4.2", "glob2==0.7", "aiohttp==3.14.0", "python-dateutil==2.9.0.post0", "joblib==1.5.3", "charset-normalizer==3.4.7", "analytics-python==1.4.post1", "shapely==2.1.2", "camel-converter[pydantic]==5.1.0", "jsonschema==4.26.0", "click-didyoumean==0.3.1", "django-fernet-fields-v2==0.9", "openedx-forum==0.4.3", "edx-proctoring==5.2.0", "snowflake-connector-python==4.6.0", "slumber==0.7.1", "django-sekizai==4.1.0", "google-crc32c==1.8.0", "edx-auth-backends==5.0.0", "fs==2.4.16", "super-csv==5.0.0", "django-celery-results==2.6.0", "prompt-toolkit==3.0.52", "edx-opaque-keys[django]==4.0.0", "cffi==2.0.0", "simpleeval==1.0.7", "nodeenv==1.10.0", "google-api-core[grpc]==2.31.0", "xblock-drag-and-drop-v2==5.0.6", "networkx==3.6.1", "yarl==1.24.2", "edx-ace==1.15.0", "hyperframe==6.1.0", "pylatexenc==2.10", "multidict==6.7.1", "drf-jwt==1.19.2", "edx-enterprise==8.0.16", "paramiko==5.0.0", "urllib3==2.7.0", "enmerkar-underscore==2.4.0", "testfixtures==12.0.0", "django-ratelimit==4.1.0", "pyjwt[crypto]==2.13.0", "contourpy==1.3.3", "google-cloud-core==2.6.0", "maxminddb==3.1.1", "wheel==0.47.0", "django-statici18n==2.7.1", "django-push-notifications==3.3.0", "openedx-filters==3.4.1", "pylti1p3==2.0.0", "optimizely-sdk==5.5.0", "rpds-py==2026.5.1", "psutil==7.2.2", "pytz==2026.2", "monotonic==1.6", "jwcrypto==1.5.7", "google-auth==2.53.0", "httpx[http2]==0.28.1", "cycler==0.12.1", "filelock==3.29.1", "edx-toggles==6.0.0", "pysrt==1.1.2", "billiard==4.2.4", "pillow==12.2.0", "django-object-actions==5.1.2", "edx-tincan-py35==2.0.0", "edx-rest-api-client==7.0.0", "lxml-html-clean==0.4.4", "numpy==1.26.4", "dnspython==2.8.0", "django-filter==25.2", "django-mptt==0.18.0", "random2==1.0.2", "webob==1.8.10", "openedx-events==11.2.0", "psycopg2-binary==2.9.12", "backoff==1.10.0", "click-repl==0.3.0", "webencodings==0.5.1", "openedx-core==1.1.0", "pycountry==26.2.16", "pymemcache==4.0.0", "djangorestframework-xml==2.0.0", "invoke==3.0.3", "edx-codejail==4.1.0", "xblocks-contrib==0.16.1", "chem==2.0.0", "kombu==5.6.2", "pycryptodomex==3.23.0", "certifi==2026.5.20", "proto-plus==1.28.0", "openedx-atlas==0.7.0", "edx-django-sites-extensions==6.0.0", "django-js-asset==3.1.2", "django-classy-tags==4.1.0"]',536,'["django-ipware==7.0.1", "isort==8.0.1", "markupsafe==3.0.3", "tzlocal==5.3.1", "frozenlist==1.8.0", "fastavro==1.12.2", "pillow==11.0.0", "sphinxcontrib-devhelp==2.0.0", "edx-i18n-tools==2.0.0", "olxcleaner==0.3.0", "regex==2025.10.23", "setuptools==81.0.0", "roman-numerals==4.1.0", "fonttools==4.63.0", "mypy-extensions==1.1.0", "edx-celeryutils==2.0.0", "semantic-version==2.10.0", "openedx-calc==3.1.2", "scipy==1.15.2", "pytest-reportlog==1.0.0", "networkx==3.1", "python-slugify==8.0.4", "defusedxml==0.7.1", "edx-completion==5.0.0", "chardet==7.4.3", "pymongo==4.4.0", "gunicorn==26.0.0", "unidiff==0.7.5", "edx-drf-extensions==10.6.0", "mdurl==0.1.2", "packaging==26.2", "encutils==1.0.0", "py==1.11.0", "sphinx-mdinclude==0.6.2", "tqdm==4.67.3", "asgiref==3.11.1", "edx-django-utils==8.0.1", "sphinx-design==0.7.0", "pytest==8.2.0", "freezegun==1.5.5", "deepmerge==2.0", "platformdirs==4.10.0", "xblock-google-drive==0.8.2", "networkx==3.5", "idna==3.18", "importlib-resources==6.1.1", "six==1.16.0", "pyproject-api==1.10.1", "aiosignal==1.4.0", "path==16.11.0", "lxml[html-clean]==5.3.2", "google-cloud-storage==3.11.0", "cachetools==7.1.4", "coverage==7.14.1", "help-tokens==4.0.0", "celery==5.6.3", "edx-django-release-util==1.5.0", "protobuf==7.35.0", "redis==8.0.0", "regex==2024.9.11", "wrapt==1.17.3", "acid-xblock==0.4.1", "alabaster==1.0.0", "pydantic-settings==2.14.1", "aniso8601==10.0.1", "pycparser==2.22", "importlib-resources==6.4.0", "sortedcontainers==2.4.0", "anyio==4.13.0", "edxval==4.0.1", "pyrsistent==0.20.0", "attrs==26.1.0", "protobuf==6.33.6", "opentelemetry-instrumentation-threading==0.58b0", "regex==2023.12.25", "httpcore==1.0.9", "code-annotations==3.0.0", "openedx-django-pyfs==4.0.0", "oauthlib==3.3.1", "mongoengine==0.29.3", "pyparsing==3.2.0", "tomlkit==0.15.0", "staff-graded-xblock==4.0.0", "uvicorn==0.48.0", "numpy==1.22.4", "smmap==5.0.3", "httpx-sse==0.4.3", "python-swiftclient==4.10.0", "django-webpack-loader==3.2.4", "pytest-xdist[psutil]==3.8.0", "google-resumable-media==2.10.0", "networkx==3.4.2", "django-model-utils==5.0.0", "mccabe==0.7.0", "amqp==5.3.1", "pyyaml==6.0.3", "tinycss2==1.4.0", "pyparsing==3.1.1", "pact-python==3.4.0", "lxml[html-clean,html_clean]==5.3.2", "ora2==7.0.0", "types-pyyaml==6.0.12.20260518", "pillow==10.3.0", "path-py==12.5.0", "boto3==1.43.21", "edx-search==5.0.1", "nltk==3.9.4", "sphinxcontrib-qthelp==2.0.0", "django-multi-email-field==0.8.0", "recommender-xblock==5.0.0", "packaging==24.1", "sphinxcontrib-htmlhelp==2.1.0", "pyuca==1.2", "sorl-thumbnail==13.0.0", "drf-yasg==1.21.15", "cryptography==48.0.0", "wcmatch==10.1", "contourpy==1.1.1", "pylint-celery==0.3", "pact-python-ffi==0.5.4.0", "django-method-override==1.0.4", "drf-spectacular==0.29.0", "fonttools==4.49.0", "tqdm==4.66.5", "tzdata==2026.2", "edx-when==4.0.0", "rich==15.0.0", "libsass==0.10.0", "xblock-poll==1.15.1", "social-auth-app-django==5.4.1", "edx-event-bus-redis==1.0.0", "google-cloud-firestore==2.27.0", "dill==0.4.1", "semgrep==1.164.0", "jinja2==3.1.6", "pyparsing==3.2.3", "pyquery==2.0.1", "mcp==1.23.3", "click-log==0.4.0", "pytest-django==4.12.0", "edx-event-bus-kafka==6.1.0", "pylint-plugin-utils==0.9.0", "cachecontrol==0.14.4", "openedx-authz==1.16.0", "python3-saml==1.16.0", "msgpack==1.1.2", "enmerkar==0.7.1", "watchdog==6.0.0", "faker==40.21.0", "fs-s3fs==1.1.1", "opentelemetry-exporter-otlp-proto-common==1.37.0", "babel==2.18.0", "mailsnake==1.6.4", "django-crum==0.7.9", "ruamel-yaml==0.19.1", "regex==2024.11.6", "numpy==1.24.4", "cffi==1.17.1", "scipy==1.7.3", "wrapt==2.2.1", "iniconfig==2.3.0", "unicodecsv==0.14.1", "tqdm==4.66.2", "pytest-metadata==3.1.1", "lxml-html-clean==0.4.2", "xss-utils==1.0.0", "pycasbin==2.8.0", "bleach[css]==6.3.0", "casbin-django-orm-adapter==1.7.0", "enterprise-integrated-channels==0.1.59", "pytest-json-report==1.5.0", "lxml==4.9.4", "grpcio-status==1.81.0", "s3transfer==0.18.0", "coverage[toml]==7.14.1", "rules==3.5", "ipaddress==1.0.23", "openedx-calc==5.0.0", "picobox==4.0.0", "pyparsing==3.3.2", "zipp==4.1.0", "icalendar==7.1.2", "elasticsearch==7.9.1", "packaging==25.0", "django-config-models==3.0.0", "edx-api-doc-tools==3.0.0", "django-mysql==4.19.0", "matplotlib==3.10.7", "soupsieve==2.8.4", "laboratory==1.0.2", "python3-openid==3.2.0 ; python_version >= \"3\"", "cryptography==47.0.0", "nh3==0.3.5", "referencing==0.37.0", "six==1.17.0", "click==8.1.6", "lazy==1.6", "sympy==1.13.3", "pip==26.1.2", "pycparser==3.0", "matplotlib==3.7.5", "requests==2.34.2", "xblock[django]==6.1.0", "python-ipware==3.0.0", "django-storages==1.14.6", "appdirs==1.4.4", "pydantic==2.13.4", "python-dotenv==1.2.2", "factory-boy==3.3.3", "xblock-utils==4.0.0", "pycparser==2.21", "cryptography==43.0.3", "accessible-pygments==0.0.5", "django-simple-history==3.11.0", "mysqlclient==2.2.8", "nltk==3.9.2", "cffi==1.16.0", "click==8.4.1", "joblib==1.5.2", "uritemplate==4.2.0", "text-unidecode==1.3", "edx-organizations==8.0.0", "kiwisolver==1.5.0", "bcrypt==5.0.0", "regex==2024.4.28", "codejail-includes==2.0.0", "django-user-tasks==4.0.0", "mpmath==1.3.0", "firebase-admin==7.4.0", "singledispatch==4.1.2", "fonttools==4.51.0", "djangorestframework==3.17.1", "sphinxcontrib-serializinghtml==2.0.0", "jmespath==1.1.0", "polib==1.2.0", "pytest-randomly==4.1.0", "typesense==2.0.0", "pluggy==1.6.0", "scipy==1.17.1", "django-oauth-toolkit==1.7.1", "pyparsing==3.1.2", "piexif==1.1.3", "importlib-metadata==8.7.1", "importlib-metadata==9.0.0", "kiwisolver==1.4.7", "geoip2==5.2.0", "django-cache-memoize==0.2.1", "pylint==4.0.5", "jsondiff==2.2.1", "wcwidth==0.7.0", "pip-tools==7.5.3", "regex==2026.5.9", "social-auth-core==4.9.1", "sympy==1.14.0", "django-autocomplete-light==4.0.1", "asn1crypto==1.5.1", "sqlparse==0.5.5", "hpack==4.1.0", "pathspec==1.1.1", "markdown==3.10.2", "face==26.0.0", "contourpy==1.3.2", "django-stubs-ext==6.0.5", "wcmatch==8.5.2", "edx-ccx-keys==2.0.2", "propcache==0.5.2", "cryptography==38.0.4", "python-dateutil==2.8.2", "django-ses==4.7.2", "openedx-django-require==3.0.0", "opentelemetry-instrumentation==0.58b0", "exceptiongroup==1.2.2", "event-tracking==4.0.2", "pillow==10.2.0", "kiwisolver==1.4.5", "django==5.2.15", "sphinxcontrib-jsmath==1.0.1", "django-pipeline==4.1.0", "edx-sga==0.28.0", "build==1.5.0", "pydantic-core==2.46.4", "pynacl==1.6.2", "codejail-includes==1.0.0", "packaging==24.0", "walrus==0.9.8", "h2==4.3.0", "zipp==3.17.0", "django-countries==8.2.0", "scipy==1.10.1", "stevedore==5.8.0", "edx-rbac==3.0.0", "typing-inspection==0.4.2", "grimp==3.14", "pgpy==0.6.0", "meilisearch==0.41.0", "matplotlib==3.9.2", "bridgekeeper==0.9", "edx-submissions==4.0.0", "jsonschema-specifications==2025.9.1", "django-cors-headers==4.9.0", "click-plugins==1.1.1.2", "requests-oauthlib==2.0.0", "fonttools==4.62.1", "openedx-django-wiki==3.1.1", "pyasn1==0.6.3", "botocore==1.43.21", "click-option-group==0.5.9", "django-appconf==1.2.0", "simplejson==4.1.1", "googleapis-common-protos==1.75.0", "grpcio==1.81.0", "jsonfield==3.2.0", "typing-extensions==4.15.0", "sphinx-reredirects==1.1.0", "fonttools==4.60.1", "pytest-cov==7.1.0", "edx-bulk-grades==2.0.0", "aiohappyeyeballs==2.6.2", "ruff==0.15.15", "matplotlib==3.10.9", "done-xblock==3.0.0", "pyopenssl==26.2.0", "bracex==2.6", "tincan==1.0.0", "contourpy==1.3.0", "mako==1.3.12", "pynliner==0.8.0", "click==8.3.0", "djangorestframework-stubs==3.16.9", "django-debug-toolbar==5.2.0", "beautifulsoup4==4.14.3", "h11==0.16.0", "tomli==2.4.1", "opentelemetry-api==1.37.0", "edx-milestones==2.0.0", "opentelemetry-exporter-otlp-proto-http==1.37.0", "tqdm==4.66.4", "pylint-pytest==1.1.8", "django-waffle==5.0.0", "html5lib==1.1", "inflection==0.5.1", "isodate==0.7.2", "sailthru-client==2.2.3", "pylint-django==2.7.0", "vulture==2.16", "web-fragments==4.0.0", "sse-starlette==3.4.4", "execnet==2.1.2", "virtualenv==21.4.2", "colorama==0.4.6", "boltons==21.0.0", "gitpython==3.1.50", "crowdsourcehinter-xblock==1.0.0", "annotated-types==0.7.0", "python-discovery==1.4.0", "voluptuous==0.16.0", "kiwisolver==1.4.8", "pywatchman==3.0.0", "xmlsec==1.3.14", "cssutils==2.15.0", "unicodeit==0.7.5", "more-itertools==11.1.0", "opentelemetry-proto==1.37.0", "tox==4.55.0", "vine==5.1.0", "lti-consumer-xblock==11.3.1", "pyasn1-modules==0.4.2", "gitdb==4.0.12", "pycparser==2.23", "glob2==0.7", "tomli-w==1.2.0", "pillow==12.0.0", "joblib==1.4.2", "aiohttp==3.14.0", "python-dateutil==2.9.0.post0", "joblib==1.5.3", "types-requests==2.33.0.20260518", "opentelemetry-util-http==0.58b0", "charset-normalizer==3.4.7", "analytics-python==1.4.post1", "shapely==2.1.2", "camel-converter[pydantic]==5.1.0", "pytest-attrib==0.1.3", "nltk==3.8.1", "jsonschema==4.26.0", "click-didyoumean==0.3.1", "sphinxcontrib-openapi==0.9.0", "mypy==1.19.1", "django-fernet-fields-v2==0.9", "openedx-forum==0.4.3", "edx-proctoring==5.2.0", "snowflake-connector-python==4.6.0", "import-linter==2.11", "fonttools==4.54.1", "slumber==0.7.1", "markupsafe==2.1.5", "fonttools==4.57.0", "django-sekizai==4.1.0", "glom==25.12.0", "google-crc32c==1.8.0", "pyproject-hooks==1.2.0", "edx-auth-backends==5.0.0", "fs==2.4.16", "super-csv==5.0.0", "django-celery-results==2.6.0", "prompt-toolkit==3.0.52", "edx-opaque-keys[django]==4.0.0", "cffi==2.0.0", "simpleeval==1.0.7", "nodeenv==1.10.0", "cryptography==44.0.2", "google-api-core[grpc]==2.31.0", "scipy==1.14.1", "xblock-drag-and-drop-v2==5.0.6", "sphinxcontrib-httpdomain==2.0.0", "python-multipart==0.0.30", "networkx==3.6.1", "yarl==1.24.2", "edx-ace==1.15.0", "hyperframe==6.1.0", "mock==5.2.0", "pygments==2.20.0", "pylatexenc==2.10", "sphinx-book-theme==1.2.0", "multidict==6.7.1", "sphinx==9.1.0", "drf-jwt==1.19.2", "starlette==1.2.1", "docutils==0.22.4", "edx-enterprise==8.0.16", "edx-lint==6.1.0", "paramiko==5.0.0", "matplotlib==3.10.1", "urllib3==2.7.0", "regex==2026.4.4", "enmerkar-underscore==2.4.0", "testfixtures==12.0.0", "django-ratelimit==4.1.0", "pyjwt[crypto]==2.13.0", "httpx==0.28.1", "snowballstemmer==3.1.1", "contourpy==1.3.3", "lxml-html-clean==0.4.3", "django-storage-swift==1.2.19", "google-cloud-core==2.6.0", "maxminddb==3.1.1", "jsonschema==4.25.1", "cryptography==45.0.7", "wheel==0.47.0", "opentelemetry-instrumentation-requests==0.58b0", "diff-cover==10.3.0", "django-statici18n==2.7.1", "django-push-notifications==3.3.0", "httpretty==1.1.4", "packaging==23.2", "zipp==3.18.1", "openedx-filters==3.4.1", "opentelemetry-sdk==1.37.0", "pylti1p3==2.0.0", "click==8.3.3", "optimizely-sdk==5.5.0", "cryptography==42.0.7", "rpds-py==2026.5.1", "psutil==7.2.2", "click==8.1.8", "chem==1.3.0", "markdown-it-py==4.2.0", "pytz==2026.2", "django-stubs[compatible-mypy]==5.2.9", "openedx-calc==4.0.2", "monotonic==1.6", "jwcrypto==1.5.7", "google-auth==2.53.0", "httpx[http2]==0.28.1", "cycler==0.12.1", "filelock==3.29.1", "edx-toggles==6.0.0", "pysrt==1.1.2", "sphinx-autoapi==3.6.0", "opentelemetry-semantic-conventions==0.58b0", "scipy==1.16.3", "sphinxext-rediraffe==0.3.0", "pillow==11.2.1", "billiard==4.2.4", "ddt==1.7.2", "pillow==12.2.0", "django-object-actions==5.1.2", "edx-tincan-py35==2.0.0", "edx-rest-api-client==7.0.0", "mistune==3.2.1", "sphinxcontrib-applehelp==2.0.0", "lxml-html-clean==0.4.4", "joblib==1.3.2", "pyjwt[crypto]==2.12.1", "imagesize==2.0.0", "numpy==1.26.4", "dnspython==2.8.0", "nltk==3.9.1", "django-filter==25.2", "django-mptt==0.18.0", "random2==1.0.2", "webob==1.8.10", "pydata-sphinx-theme==0.16.1", "openedx-events==11.2.0", "distlib==0.4.1", "sympy==1.12", "psycopg2-binary==2.9.12", "backoff==1.10.0", "tqdm==4.67.1", "click-repl==0.3.0", "webencodings==0.5.1", "openedx-core==1.1.0", "pycountry==26.2.16", "markupsafe==3.0.2", "librt==0.11.0", "pyparsing==3.2.5", "pymemcache==4.0.0", "chem==1.2.0", "djangorestframework-xml==2.0.0", "invoke==3.0.3", "kiwisolver==1.4.9", "edx-codejail==4.1.0", "astroid==4.0.4", "xblocks-contrib==0.16.1", "chem==2.0.0", "ruamel-yaml-clib==0.2.15", "kombu==5.6.2", "cssselect==1.4.0", "pycryptodomex==3.23.0", "certifi==2026.5.20", "proto-plus==1.28.0", "peewee==3.19.0", "openedx-atlas==0.7.0", "edx-django-sites-extensions==6.0.0", "django-js-asset==3.1.2", "django-classy-tags==4.1.0"]',62,'["django-classy-tags", "django-config-models", "edx-search", "edx-django-release-util", "xblock-google-drive", "django-storages", "edx-organizations", "enmerkar-underscore", "django-countries", "edx-ace", "django-object-actions", "factory-boy", "edx-enterprise", "django-mysql", "edx-submissions", "edx-milestones", "djangorestframework", "xblock-utils", "django-sekizai", "django-waffle", "edx-when", "django-ratelimit", "pytest-django", "edx-celeryutils", "edx-bulk-grades", "event-tracking", "code-annotations", "django-webpack-loader", "super-csv", "edx-drf-extensions", "social-auth-app-django", "django-js-asset", "edx-proctoring", "edx-django-sites-extensions", "pylint-django", "help-tokens", "django-multi-email-field", "edx-rbac", "django-autocomplete-light", "django-user-tasks", "xss-utils", "django-cache-memoize", "edx-auth-backends", "edx-api-doc-tools", "edxval", "django-appconf", "lti-consumer-xblock", "edx-i18n-tools", "edx-django-utils", "edx-toggles", "edx-rest-api-client", "xblock-drag-and-drop-v2", "done-xblock", "django-debug-toolbar", "web-fragments", "django-oauth-toolkit", "django-filter", "django-celery-results", "django-cors-headers", "edx-completion", "django-pipeline", "staff-graded-xblock"]',81,'["django-classy-tags", "django-model-utils", "edx-django-release-util", "xblock-google-drive", "enmerkar-underscore", "factory-boy", "edx-ace", "edx-milestones", "django-sekizai", "django-waffle", "django-storage-swift", "code-annotations", "django-statici18n", "django-ipware", "edx-rbac", "django-autocomplete-light", "django-user-tasks", "xss-utils", "django-appconf", "edx-toggles", "xblock-drag-and-drop-v2", "django-debug-toolbar", "django-oauth-toolkit", "drf-yasg", "staff-graded-xblock", "django-storages", "edx-organizations", "django-countries", "drf-jwt", "xblock-poll", "djangorestframework", "django-ses", "djangorestframework-xml", "edx-celeryutils", "super-csv", "django-simple-history", "social-auth-app-django", "django-js-asset", "enmerkar", "pylint-django", "rules", "edx-api-doc-tools", "edx-django-utils", "sorl-thumbnail", "django-filter", "django-method-override", "django-pipeline", "edx-sga", "django-mysql", "xblock-utils", "edx-bulk-grades", "django-crum", "django-multi-email-field", "django-mptt", "edx-i18n-tools", "bridgekeeper", "done-xblock", "web-fragments", "edx-completion", "django-config-models", "edx-search", "django-object-actions", "edx-enterprise", "edx-submissions", "django-ratelimit", "edx-when", "pytest-django", "event-tracking", "django-webpack-loader", "edx-drf-extensions", "edx-proctoring", "edx-django-sites-extensions", "help-tokens", "jsonfield", "django-cache-memoize", "edx-auth-backends", "edxval", "lti-consumer-xblock", "edx-rest-api-client", "django-celery-results", "django-cors-headers"]',52,'["django-config-models", "edx-search", "edx-django-release-util", "xblock-google-drive", "edx-organizations", "enmerkar-underscore", "django-countries", "edx-ace", "edx-enterprise", "django-mysql", "edx-submissions", "edx-milestones", "xblock-utils", "django-sekizai", "django-waffle", "edx-when", "edx-celeryutils", "edx-bulk-grades", "event-tracking", "code-annotations", "django-webpack-loader", "super-csv", "edx-drf-extensions", "social-auth-app-django", "django-js-asset", "edx-proctoring", "edx-django-sites-extensions", "help-tokens", "django-multi-email-field", "edx-rbac", "django-autocomplete-light", "django-user-tasks", "xss-utils", "django-cache-memoize", "edx-auth-backends", "edx-api-doc-tools", "edxval", "django-appconf", "lti-consumer-xblock", "edx-i18n-tools", "edx-django-utils", "edx-toggles", "edx-rest-api-client", "xblock-drag-and-drop-v2", "done-xblock", "django-debug-toolbar", "web-fragments", "django-celery-results", "django-filter", "django-cors-headers", "edx-completion", "staff-graded-xblock"]',0,NULL,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,265,'{"total_duration": "8 minutes 0 seconds", "checks": [{"name": "pylint lms-2", "duration": "7 minutes 53 seconds"}, {"name": "pylint openedx-2", "duration": "6 minutes 58 seconds"}, {"name": "pylint openedx-1", "duration": "5 minutes 56 seconds"}, {"name": "pylint lms-1", "duration": "5 minutes 19 seconds"}, {"name": "pylint cms", "duration": "5 minutes 18 seconds"}, {"name": "pylint common", "duration": "5 minutes 0 seconds"}, {"name": "Analyze (python)", "duration": "4 minutes 29 seconds"}, {"name": "Analyze (javascript-typescript)", "duration": "3 minutes 59 seconds"}, {"name": "pylint xmodule", "duration": "3 minutes 45 seconds"}, {"name": "JS (ubuntu-latest, 20, 3.12)", "duration": "3 minutes 30 seconds"}, {"name": "Lint Python Imports", "duration": "1 minutes 46 seconds"}, {"name": "test (3.12)", "duration": "1 minutes 43 seconds"}, {"name": "Analyze (actions)", "duration": "0 minutes 46 seconds"}, {"name": "Verify __init__.py Files", "duration": "0 minutes 21 seconds"}, {"name": "Pylint checks successful", "duration": "0 minutes 3 seconds"}]}','Other','2013-05-30 20:20:38','master','The Open edX LMS & Studio, powering education sites around the world!',2311317,4300,1,0,0,0,0,0,0,'2026-06-08 05:24:10','GNU AGPLv3',157,0,181797,0,1441391,5697092,8779,29548540,15393,0,0,0,0,0,0,0,'','openedx',22,'[''https://www.gnu.org/licenses/agpl-3.0: 403'', ''https://openedx.org/get-started/: 403'', ''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://openedx.org/cla: 403'', ''https://openedx.org/code-of-conduct/: 403'']',1,'[''https://img.shields.io/badge/License-AGPL_v3-blue.svg'', ''https://github.com/openedx/openedx-platform/actions/workflows/unit-tests.yml/badge.svg'', ''https://github.com/openedx/openedx-platform/actions/workflows/unit-tests.yml'', ''https://img.shields.io/badge/status-maintained-31c653'', ''https://openedx.org'', ''https://docs.openedx.org/projects/edx-platform'', ''https://github.com/openedx/codejail?tab=readme-ov-file'', ''https://github.com/overhangio/tutor'', ''https://docs.openedx.org/en/latest/site_ops/index.html'', ''https://docs.tutor.edly.io/dev.html'', ''https://github.com/openedx/frontend-app-learner-dashboard'', ''https://github.com/openedx/frontend-app-learning/'', ''https://github.com/openedx/frontend-app-authoring/'', ''https://github.com/openedx/openedx-platform/blob/master/LICENSE'', ''https://discuss.openedx.org'', ''http://openedx.slack.com/'', ''https://github.com/openedx/openedx-platform/issues'', ''https://github.com/openedx/openedx-platform/issues/new/choose'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/.github/blob/master/AI_POLICY.md'', ''https://backstage.openedx.org/catalog/default/component/openedx-platform'']',1,1,0,1,'.readthedocs.yaml','2',1,'2026-05-07','2026-05-04','12',0,1,0,1,NULL,0,NULL,'[]',NULL,1,0,1,0,0,0,0,0,0,'[]','[''python-software-properties'', ''pkg-config'', ''gfortran'', ''libatlas-dev'', ''libblas-dev'', ''liblapack-dev'', ''liblapack3gf'', ''curl'', ''git'', ''python-virtualenv'', ''python-scipy'', ''python-numpy'', ''build-essential'', ''python-dev'', ''gfortran'', ''libfreetype6-dev'', ''libpng12-dev'', ''libjpeg-dev'', ''libtiff4-dev'', ''zlib1g-dev'', ''libxml2-dev'', ''libxslt-dev'', ''yui-compressor'', ''graphviz'', ''libgraphviz-dev'', ''graphviz-dev'', ''mysql-server'', ''libmysqlclient-dev'', ''libgeos-dev'', ''libreadline6'', ''libreadline6-dev'', ''mongodb'', ''nodejs'', ''mysql-client'', ''virtualenvwrapper'', ''libgeos-ruby1.8'', ''lynx-cur'', ''libxmlsec1-dev'', ''swig'']',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-wordpress-ecommerce',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,46,0,'[]',0,'',0,0,'','',0,'[]',46,'["starlette==1.0.0", "sphinx==9.1.0", "sphinxcontrib-devhelp==2.0.0", "websockets==16.0", "accessible-pygments==0.0.5", "h11==0.16.0", "click==8.3.2", "certifi==2026.2.25", "soupsieve==2.8.3", "sphinx-autobuild==2025.8.25", "anyio==4.13.0", "imagesize==2.0.0", "sphinx-copybutton==0.5.2", "sphinxcontrib-serializinghtml==2.0.0", "typing-extensions==4.15.0", "pip==26.0.1", "pip-tools==7.5.3", "sphinxcontrib-qthelp==2.0.0", "uvicorn==0.44.0", "beautifulsoup4==4.14.3", "pyyaml==6.0.3", "jinja2==3.1.6", "requests==2.33.1", "pygments==2.20.0", "wheel==0.46.3", "sphinxcontrib-jsmath==1.0.1", "babel==2.18.0", "sphinxcontrib-htmlhelp==2.1.0", "setuptools==82.0.1", "pyproject-hooks==1.2.0", "build==1.4.2", "alabaster==1.0.0", "markupsafe==3.0.3", "sphinxcontrib-mermaid==2.0.1", "sphinxcontrib-applehelp==2.0.0", "roman-numerals==4.1.0", "docutils==0.22.4", "sphinx-book-theme==1.2.0", "pydata-sphinx-theme==0.16.1", "packaging==26.0", "urllib3==2.6.3", "idna==3.11", "snowballstemmer==3.0.1", "charset-normalizer==3.4.7", "colorama==0.4.6", "watchfiles==1.1.1"]',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,0,1,1,14,'{"total_duration": "20812 minutes 5 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "build-test", "duration": "0 minutes 10 seconds"}]}','Other','2023-06-05 21:25:23','main','You can sell your Open edX courses with WooCommerce using this free and open-source WordPress plugin.',2187,13,1,0,0,0,0,0,0,'2026-06-03 10:56:42','GNU GPLv2',2,0,2477,0,0,3746,1993,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-wordpress-ecommerce/issues: 504'']',0,'[''https://github.com/openedx/edx-platform'', ''https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/decisions/0002-api-connection.html'', ''https://openedx.org/terms-of-use/'', ''https://wordpress.org/plugins/woocommerce'', ''https://github.com/openedx/openedx-wordpress-ecommerce/releases'', ''https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/plugin_quickstart.html'', ''https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/index.html'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-admin-console',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,22,0,'',0,'{}',12,10,'{"@edx/browserslist-config": "^1.1.1", "@edx/typescript-config": "1.1.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.6.4", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/react": "^18", "@types/react-dom": "^18", "ts-jest": "^29.4.5"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-header": "^8.0.0", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.15.1", "@tanstack/react-query": "5.96.2", "lodash.debounce": "^4.0.8", "react": "^18.3.1", "react-dom": "^18.3.1", "react-error-boundary": "^4.1.2", "react-router-dom": "^6.30.3"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,6,'{"total_duration": "0 minutes 56 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 56 seconds"}]}','Other','2025-09-23 11:32:49','master','Administrator console for the Open edX application',1657,9,1,0,0,0,0,0,0,'2026-06-08 00:47:12','GNU AGPLv3',6,1,0,0,457,744,1565,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/frontend-app-admin-console/blob/main/LICENSE: 404'']',1,'[''https://img.shields.io/github/license/openedx/frontend-app-admin-console.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-admin-console/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-app-admin-console/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-app-admin-console/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-app-admin-console?branch=main'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file'', ''https://github.com/openedx/openedx-authz'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://openedx.atlassian.net/wiki/x/M4B4MgE'', ''https://openedx.atlassian.net/wiki/x/AgAwMQE'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-04-29','2026-03-30','3',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-template-application',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,28,0,'',0,'{}',19,9,'{"@edx/browserslist-config": "^1.1.1", "@edx/reactifex": "^2.2.0", "@edx/stylelint-config-edx": "^2.3.3", "@edx/typescript-config": "^1.1.0", "@openedx/frontend-build": "14.6.3", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "glob": "11.1.0"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/frontend-component-footer": "^14.9.2", "@edx/frontend-component-header": "^8.0.0", "@edx/frontend-platform": "^8.5.1", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/paragon": "^23.14.9", "@tanstack/react-query": "^5.90.5", "classnames": "^2.5.1", "core-js": "3.49.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router": "6.30.3", "react-router-dom": "6.30.3", "regenerator-runtime": "0.14.1"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,47,'{"total_duration": "26598 minutes 24 seconds", "checks": [{"name": "test", "duration": "1 minutes 52 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 11 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 7 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 6 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 5 seconds"}]}','Other','2018-02-27 18:34:11','master','A template repository for creating Open edX frontend applications. 💿➡️📀',17444,63,1,0,0,0,0,0,0,'2026-06-08 00:29:36','GNU AGPLv3',22,1,0,0,464,667,1565,0,0,0,0,0,0,0,0,0,'@edx/frontend-template-application','openedx',0,'[''https://openedx.slack.com/archives/C04BM6YC7A6: 429'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-application: 404'', ''https://github.com/openedx/frontend-template-application/blob/main/LICENSE: 404'']',1,'[''https://github.com/openedx/paragon/?tab=readme-ov-file'', ''https://github.com/openedx/brand-openedx/issues/23'', ''https://github.com/openedx/frontend-template-application/tree/release/teak'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst'', ''https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-template-application/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-template-application.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-template-application/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-template-application/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-template-application?branch=main'']',1,1,0,0,'','',1,'2026-04-06','2025-10-20','6',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/typescript-config',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'{}',0,0,'{}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,3,'{"total_duration": "0 minutes 22 seconds", "checks": [{"name": "Release", "duration": "0 minutes 22 seconds"}, {"name": "tests", "duration": "0 minutes 7 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 6 seconds"}]}','Other','2023-02-01 16:54:40','master','Common TypeScript configuration for Open edX',84,3,1,0,0,0,0,0,0,'2026-05-20 13:18:07','GNU AGPLv3',1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'@edx/typescript-config','openedx',0,'[''https://www.npmjs.com/package/@edx/typescript-config: 403'', ''https://www.npmjs.com/package/@edx/tpyescript-config: 403'', ''https://github.com/openedx/typescript-config/blob/main/LICENSE: 504'', ''https://github.com/semantic-release/semantic-release: 504'']',0,'[''https://github.com/openedx/typescript-config/actions/workflows/release.yml/badge.svg'', ''https://github.com/openedx/typescript-config/actions/workflows/release.yml/'', ''https://img.shields.io/npm/v/@edx/typescript-config.svg'', ''https://img.shields.io/npm/dt/@edx/typescript-config.svg'', ''https://img.shields.io/npm/l/@edx/typescript-config.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'', ''https://www.typescriptlang.org/docs/handbook/tsconfig-json.html'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-plugin-aspects',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,21,0,'',0,'{}',2,19,'{"@edx/browserslist-config": "^1.1.1", "@edx/eslint-config": "^4.3.0", "@edx/typescript-config": "^1.1.0", "@openedx/frontend-build": "14.6.3", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.6.1", "eslint": "^8.57.1", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^4.6.2", "glob": "13.0.6", "husky": "9.1.7", "jest": "30.3.0", "react-test-renderer": "^18.3.1", "ts-jest": "^29.4.0", "typescript": "^4.9.5"}','{"@hookstate/core": "^4.0.2", "@superset-ui/embedded-sdk": "^0.3.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,5,'{"total_duration": "20166 minutes 47 seconds", "checks": [{"name": "update-browserslist / update-dep", "duration": "1 minutes 17 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}]}','Other','2025-03-21 15:08:32','main','Frontend plugins for Aspects',2479,6,1,0,0,0,0,0,0,'2026-06-08 01:09:33','GNU AGPLv3',3,1,118,0,464,864,1351,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-aspects: 404'']',1,'[''https://img.shields.io/github/license/openedx/frontend-plugin-aspects.svg'', ''https://github.com/openedx/frontend-plugin-aspects/blob/main/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-plugin-aspects/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-plugin-aspects/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-plugin-aspects/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-plugin-aspects?branch=main'', ''https://github.com/openedx/tutor-contrib-aspects'', ''https://github.com/openedx/frontend-app-authoring.git'', ''https://github.com/openedx/frontend-plugin-aspects.git'', ''https://nodemon.io'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-05-25','2026-05-25','1',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblocks-core',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,133,0,'[]',0,'{}',0,0,'{}','{}',78,'["chem==2.0.0", "path==17.1.1", "typing-extensions==4.15.0", "djangorestframework==3.17.1", "django-waffle==5.0.0", "pytz==2026.2", "pymongo==4.17.0", "web-fragments==4.0.0", "lxml==6.1.1", "mako==1.3.12", "webencodings==0.5.1", "edxval==4.0.1", "markupsafe==3.0.3", "asgiref==3.11.1", "stevedore==5.8.0", "random2==1.0.2", "edx-drf-extensions==10.6.0", "simplejson==4.1.1", "pyparsing==3.3.2", "regex==2026.5.9", "defusedxml==0.7.1", "wrapt==2.2.1", "pyjwt[crypto]==2.13.0", "soupsieve==2.8.4", "sympy==1.14.0", "edx-toggles==6.0.0", "sqlparse==0.5.5", "django-model-utils==5.0.0", "jinja2==3.1.6", "edx-django-utils==8.0.1", "html5lib==1.1", "scipy==1.17.1", "idna==3.17", "mpmath==1.3.0", "dnspython==2.8.0", "click==8.4.1", "appdirs==1.4.4", "charset-normalizer==3.4.7", "semantic-version==2.10.0", "tqdm==4.67.3", "pycparser==3.0", "code-annotations==3.0.0", "nltk==3.9.4", "cachetools==7.1.4", "xblock==6.1.0", "pillow==12.2.0", "edx-django-release-util==1.5.0", "numpy==2.4.6", "shapely==2.1.2", "fs==2.4.16", "django-storages==1.14.6", "text-unidecode==1.3", "python-slugify==8.0.4", "edx-codejail==4.1.0", "requests==2.34.2", "pynacl==1.6.2", "edx-opaque-keys==4.0.0", "edx-submissions==4.0.0", "certifi==2026.5.20", "joblib==1.5.3", "psutil==7.2.2", "openedx-calc==5.0.0", "python-dateutil==2.9.0.post0", "pyyaml==6.0.3", "six==1.17.0", "pysrt==1.1.2", "nh3==0.3.5", "urllib3==2.7.0", "django-crum==0.7.9", "jsonfield==3.2.0", "webob==1.8.9", "chardet==7.4.3", "django==5.2.14", "cffi==2.0.0", "drf-jwt==1.19.2", "oauthlib==3.3.1", "beautifulsoup4==4.14.3", "cryptography==48.0.0"]',133,'["chem==2.0.0", "path==17.1.1", "typing-extensions==4.15.0", "djangorestframework==3.17.1", "django-waffle==5.0.0", "pytz==2026.2", "pymongo==4.17.0", "dill==0.4.1", "web-fragments==4.0.0", "pip==26.1.2", "sphinxcontrib-applehelp==2.0.0", "lxml==6.1.1", "alabaster==1.0.0", "isort==8.0.1", "mako==1.3.12", "webencodings==0.5.1", "click-log==0.4.0", "edxval==4.0.1", "markupsafe==3.0.3", "platformdirs==4.10.0", "pip-tools==7.5.3", "asgiref==3.11.1", "python-discovery==1.4.0", "pytest==9.0.3", "stevedore==5.8.0", "random2==1.0.2", "edx-drf-extensions==10.6.0", "astroid==4.0.4", "filelock==3.29.0", "simplejson==4.1.1", "sphinx-book-theme==1.2.0", "pyparsing==3.3.2", "regex==2026.5.9", "defusedxml==0.7.1", "mccabe==0.7.0", "edx-lint==6.1.0", "wrapt==2.2.1", "pyjwt[crypto]==2.13.0", "soupsieve==2.8.4", "sphinxcontrib-htmlhelp==2.1.0", "sympy==1.14.0", "edx-toggles==6.0.0", "restructuredtext-lint==2.0.2", "sphinxcontrib-serializinghtml==2.0.0", "sqlparse==0.5.5", "django-model-utils==5.0.0", "jinja2==3.1.6", "edx-django-utils==8.0.1", "html5lib==1.1", "tox==4.55.0", "scipy==1.17.1", "idna==3.17", "distlib==0.4.0", "mpmath==1.3.0", "dnspython==2.8.0", "click==8.4.1", "appdirs==1.4.4", "pylint==4.0.5", "charset-normalizer==3.4.7", "pygments==2.20.0", "semantic-version==2.10.0", "tomlkit==0.15.0", "imagesize==2.0.0", "pydocstyle==6.3.0", "tqdm==4.67.3", "pylint-django==2.7.0", "pycparser==3.0", "colorama==0.4.6", "code-annotations==3.0.0", "nltk==3.9.4", "cachetools==7.1.4", "snowballstemmer==3.1.0", "pycodestyle==2.14.0", "accessible-pygments==0.0.5", "xblock==6.1.0", "pillow==12.2.0", "edx-django-release-util==1.5.0", "pyproject-api==1.10.1", "numpy==2.4.6", "sphinx==9.1.0", "shapely==2.1.2", "build==1.5.0", "ddt==1.7.2", "fs==2.4.16", "doc8==2.0.0", "django-storages==1.14.6", "text-unidecode==1.3", "python-slugify==8.0.4", "edx-codejail==4.1.0", "sphinxcontrib-qthelp==2.0.0", "requests==2.34.2", "pynacl==1.6.2", "edx-opaque-keys==4.0.0", "pytest-django==4.12.0", "pyproject-hooks==1.2.0", "edx-submissions==4.0.0", "certifi==2026.5.20", "joblib==1.5.3", "docutils==0.21.2", "wheel==0.47.0", "coverage[toml]==7.14.1", "psutil==7.2.2", "openedx-calc==5.0.0", "sphinxcontrib-devhelp==2.0.0", "tomli-w==1.2.0", "python-dateutil==2.9.0.post0", "pylint-plugin-utils==0.9.0", "sphinxcontrib-jsmath==1.0.1", "pyyaml==6.0.3", "pylint-celery==0.3", "six==1.17.0", "babel==2.18.0", "pysrt==1.1.2", "nh3==0.3.5", "urllib3==2.7.0", "django-crum==0.7.9", "jsonfield==3.2.0", "webob==1.8.9", "chardet==7.4.3", "django==5.2.14", "pytest-cov==7.1.0", "cffi==2.0.0", "drf-jwt==1.19.2", "pydata-sphinx-theme==0.16.1", "oauthlib==3.3.1", "roman-numerals==4.1.0", "setuptools==80.9.0", "beautifulsoup4==4.14.3", "iniconfig==2.3.0", "packaging==26.2", "virtualenv==21.4.2", "cryptography==48.0.0", "pluggy==1.6.0"]',15,'["djangorestframework", "edx-django-release-util", "edx-submissions", "pylint-django", "pytest-django", "django-storages", "edx-opaque-keys", "edxval", "web-fragments", "code-annotations", "edx-toggles", "xblock", "edx-drf-extensions", "django-waffle", "edx-django-utils"]',19,'["django-crum", "django-model-utils", "django-storages", "jsonfield", "edx-drf-extensions", "djangorestframework", "edx-submissions", "code-annotations", "edx-django-release-util", "drf-jwt", "pytest-django", "edx-opaque-keys", "edxval", "edx-toggles", "django-waffle", "edx-django-utils", "pylint-django", "web-fragments", "xblock"]',11,'["edx-django-release-util", "edx-submissions", "edx-opaque-keys", "edxval", "web-fragments", "code-annotations", "edx-toggles", "xblock", "edx-drf-extensions", "django-waffle", "edx-django-utils"]',0,NULL,1,1,1,0,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,8,'{"total_duration": "6368 minutes 34 seconds", "checks": [{"name": "Analyze (javascript-typescript)", "duration": "1 minutes 59 seconds"}, {"name": "Run JavaScript Tests (24)", "duration": "1 minutes 46 seconds"}, {"name": "Run Python Tests and Coverage (3.12, quality)", "duration": "1 minutes 28 seconds"}, {"name": "Run Python Tests and Coverage (3.12, docs)", "duration": "1 minutes 26 seconds"}, {"name": "Run Python Tests and Coverage (3.12, django42)", "duration": "1 minutes 21 seconds"}, {"name": "Run Python Tests and Coverage (3.12, django52)", "duration": "1 minutes 16 seconds"}, {"name": "Analyze (python)", "duration": "1 minutes 8 seconds"}, {"name": "Analyze (actions)", "duration": "0 minutes 37 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 29 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 52 seconds"}]}','Other','2024-06-26 15:14:53','main','',22289,9,1,0,0,0,0,0,0,'2026-06-08 07:09:58','GNU AGPLv3',6,0,389247,0,1373326,1707755,5025,1708301,0,0,0,0,0,0,0,0,'','openedx',1,'[''https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html: HTTPSConnectionPool(host=\''www.gnu.org\'', port=443): Max retries exceeded with url: /software/gettext/manual/html_node/PO-Files.html (Caused by NewConnectionError("HTTPSConnection(host=\''www.gnu.org\'', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable"))'']',0,'[''https://github.com/openedx/xblocks-extra'', ''https://github.com/openedx/edx-ora2'', ''https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/edx_platform/edx_lms.html'', ''https://github.com/openedx/i18n-tools'', ''https://docs.openedx.org/en/latest/developers/references/developer_guide/internationalization/i18n.html'', ''https://github.com/openedx/openedx-translations'', ''https://docs.openedx.org/en/latest/developers/concepts/oep58.html'', ''https://developers.transifex.com/docs/cli'', ''https://docs.djangoproject.com/en/5.2/topics/i18n/translation/'']',1,1,0,1,'.readthedocs.yaml','2',1,'2026-04-01',NULL,'0',0,1,0,1,NULL,0,'xblocks-contrib','[''3'', ''3.12'']','https://github.com/openedx/xblocks-contrib',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/credentials',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,236,0,'[]',0,'{}',14,21,'{"@babel/core": "7.29.0", "@babel/eslint-parser": "7.28.6", "@babel/plugin-proposal-object-rest-spread": "7.20.7", "@babel/plugin-transform-modules-commonjs": "7.28.6", "@babel/plugin-transform-object-assign": "7.27.1", "@babel/preset-env": "7.29.2", "@edx/eslint-config": "4.4.0", "babel-loader": "10.1.1", "eslint": "8.57.1", "eslint-plugin-import": "2.32.0", "eslint-plugin-jsx-a11y": "6.10.2", "jasmine-core": "6.1.0", "jasmine-jquery": "2.1.1", "karma": "6.4.4", "karma-coverage": "2.2.1", "karma-firefox-launcher": "2.1.3", "karma-jasmine": "5.1.0", "karma-jasmine-jquery-2": "0.1.1", "karma-spec-reporter": "0.0.36", "karma-webpack": "5.0.1", "webpack-cli": "6.0.1"}','{"@fortawesome/fontawesome-svg-core": "^6.7.2", "@fortawesome/free-brands-svg-icons": "^6.7.2", "@fortawesome/free-solid-svg-icons": "^6.7.2", "@openedx/paragon": "^23.3.1", "bi-app-sass": "1.1.0", "css-loader": "7.1.4", "css-minimizer-webpack-plugin": "7.0.4", "file-loader": "6.2.0", "mini-css-extract-plugin": "2.10.2", "sass": "1.99.0", "sass-loader": "16.0.7", "url-loader": "4.1.1", "webpack": "5.106.0", "webpack-bundle-tracker": "3.2.3"}',134,'["django-sortedm2m==4.0.0", "polib==1.2.0", "pymemcache==4.0.0", "zope-event==6.1", "stevedore==5.6.0", "botocore==1.42.40", "backoff==2.2.1", "typing-extensions==4.15.0", "openedx-didkit==0.3.5", "edx-drf-extensions==10.6.0", "social-auth-app-django==5.4.3", "gevent==25.9.1", "django-ratelimit==4.1.0", "google-crc32c==1.8.0", "django-push-notifications==3.3.0", "boto3==1.42.40", "h11==0.16.0", "walrus==0.9.8", "django-appconf==1.2.0", "firebase-admin==7.1.0", "edx-ace==1.15.0", "pygments==2.19.2", "certifi==2026.1.4", "edx-rest-api-client==6.2.0", "code-annotations==2.3.0", "grpcio==1.76.0", "edx-auth-backends==4.6.2", "edx-django-utils==8.0.1", "uritemplate==4.2.0", "oauthlib==3.3.1", "psutil==7.2.2", "django-storages==1.14.6", "django-extensions==4.1", "django-filter==25.2", "defusedxml==0.7.1", "django-webpack-loader==3.2.3", "edx-opaque-keys[django]==3.0.0", "google-cloud-core==2.5.0", "google-api-core[grpc]==2.29.0", "google-resumable-media==2.8.0", "pyasn1-modules==0.4.2", "webencodings==0.5.1", "django-model-utils==5.0.0", "dnspython==2.8.0", "text-unidecode==1.3", "msgpack==1.1.2", "packaging==26.0", "edx-i18n-tools==1.9.0", "bleach==6.3.0", "django-config-models==2.9.0", "httpx[http2]==0.28.1", "python3-openid==3.2.0", "djangorestframework==3.16.1", "google-auth==2.48.0", "mysqlclient==2.2.7", "django-cors-headers==4.9.0", "sqlparse==0.5.5", "hyperframe==6.1.0", "coreapi==2.3.3", "fastavro==1.12.1", "drf-yasg==1.21.14", "markdown==3.10.1", "click==8.3.1", "itypes==1.2.0", "googleapis-common-protos==1.72.0", "edx-ccx-keys==2.0.2", "gunicorn==25.0.1", "lxml-html-clean==0.4.3", "asgiref==3.11.1", "charset-normalizer==3.4.4", "s3transfer==0.16.0", "django==5.2.11", "jmespath==1.1.0", "xss-utils==0.8.0", "python-slugify==8.0.4", "protobuf==6.33.5", "httpcore==1.0.9", "python-memcached==1.62", "django-simple-history==3.11.0", "django-crum==0.7.9", "h2==4.3.0", "segment-analytics-python==2.3.5", "zope-interface==8.2", "drf-jwt==1.19.2", "pynacl==1.6.2", "nodeenv==1.10.0", "sailthru-client==2.2.3", "semantic-version==2.10.0", "openedx-events==10.5.0", "redis==7.1.0", "grpcio-status==1.76.0", "django-statici18n==2.6.0", "google-cloud-firestore==2.23.0", "cffi==2.0.0", "anyio==4.12.1", "proto-plus==1.27.1", "simplejson==3.20.2", "social-auth-core==4.8.3", "path==16.16.0", "inflection==0.5.1", "pyjwt[crypto]==2.10.1", "django-ses==4.6.0", "attrs==25.4.0", "markupsafe==3.0.3", "pillow==12.1.0", "lxml[html-clean]==6.0.2", "google-cloud-storage==3.9.0", "django-rest-swagger==2.2.0", "requests-oauthlib==2.0.0", "edx-django-sites-extensions==5.1.0", "qrcode==8.2", "django-waffle==5.0.0", "requests==2.32.5", "edx-toggles==5.4.1", "pycparser==3.0", "greenlet==3.3.1", "pyasn1==0.6.2", "cachecontrol==0.14.4", "pymongo==4.16.0", "urllib3==2.6.3", "python-dateutil==2.9.0.post0", "pytz==2025.2", "pyyaml==6.0.3", "six==1.17.0", "cryptography==46.0.4", "hpack==4.1.0", "coreschema==0.0.4", "edx-event-bus-kafka==6.1.0", "idna==3.11", "openapi-codec==1.3.2", "edx-django-release-util==1.5.0", "openedx-atlas==0.7.0", "rsa==4.9.1", "jinja2==3.1.6"]',201,'["polib==1.2.0", "django-sortedm2m==4.0.0", "pymemcache==4.0.0", "zope-event==6.1", "stevedore==5.6.0", "sphinxcontrib-devhelp==2.0.0", "backoff==2.2.1", "botocore==1.42.40", "typing-extensions==4.15.0", "setuptools==80.10.2", "pywatchman==3.0.0 ; \"linux\" in sys_platform", "openedx-didkit==0.3.5", "edx-drf-extensions==10.6.0", "social-auth-app-django==5.4.3", "gevent==25.9.1", "django-ratelimit==4.1.0", "google-crc32c==1.8.0", "filelock==3.20.3", "django-push-notifications==3.3.0", "h11==0.16.0", "pluggy==1.6.0", "walrus==0.9.8", "boto3==1.42.40", "edx-lint==5.6.0", "django-appconf==1.2.0", "firebase-admin==7.1.0", "edx-ace==1.15.0", "beautifulsoup4==4.14.3", "pygments==2.19.2", "certifi==2026.1.4", "edx-rest-api-client==6.2.0", "pylint-plugin-utils==0.9.0", "black==26.1.0", "code-annotations==2.3.0", "grpcio==1.76.0", "edx-auth-backends==4.6.2", "edx-django-utils==8.0.1", "uritemplate==4.2.0", "oauthlib==3.3.1", "psutil==7.2.2", "django-storages==1.14.6", "django-extensions==4.1", "django-filter==25.2", "defusedxml==0.7.1", "django-webpack-loader==3.2.3", "docutils==0.22.4", "wheel==0.46.3", "edx-opaque-keys[django]==3.0.0", "google-cloud-core==2.5.0", "librt==0.7.8", "google-api-core[grpc]==2.29.0", "pylint==4.0.4", "google-resumable-media==2.8.0", "pyasn1-modules==0.4.2", "snowballstemmer==3.0.1", "webencodings==0.5.1", "django-model-utils==5.0.0", "dnspython==2.8.0", "text-unidecode==1.3", "msgpack==1.1.2", "packaging==26.0", "edx-i18n-tools==1.9.0", "bleach==6.3.0", "django-config-models==2.9.0", "sphinxcontrib-applehelp==2.0.0", "httpx[http2]==0.28.1", "python3-openid==3.2.0", "djangorestframework==3.16.1", "soupsieve==2.8.3", "google-auth==2.48.0", "testfixtures==10.0.0", "mysqlclient==2.2.7", "cachetools==7.0.0", "sqlparse==0.5.5", "django-cors-headers==4.9.0", "hyperframe==6.1.0", "coreapi==2.3.3", "fastavro==1.12.1", "pyproject-api==1.10.0", "drf-yasg==1.21.14", "markdown==3.10.1", "click==8.3.1", "iniconfig==2.3.0", "sphinxcontrib-serializinghtml==2.0.0", "responses==0.25.8", "itypes==1.2.0", "django-debug-toolbar==6.2.0", "googleapis-common-protos==1.72.0", "isort==7.0.0", "sphinxcontrib-htmlhelp==2.1.0", "edx-ccx-keys==2.0.2", "coverage==7.13.3", "gunicorn==25.0.1", "lxml-html-clean==0.4.3", "httpretty==1.1.4", "types-pyyaml==6.0.12.20250915", "asgiref==3.11.1", "charset-normalizer==3.4.4", "s3transfer==0.16.0", "django==5.2.11", "jmespath==1.1.0", "jsx-lexer==2.0.1", "xss-utils==0.8.0", "python-slugify==8.0.4", "protobuf==6.33.5", "ddt==1.7.2", "httpcore==1.0.9", "python-memcached==1.62", "pip-tools==7.5.2", "django-simple-history==3.11.0", "virtualenv==20.36.1", "django-crum==0.7.9", "h2==4.3.0", "alabaster==1.0.0", "tomlkit==0.14.0", "imagesize==1.4.1", "segment-analytics-python==2.3.5", "zope-interface==8.2", "distlib==0.4.0", "pydata-sphinx-theme==0.15.4", "drf-jwt==1.19.2", "pynacl==1.6.2", "pathspec==1.0.4", "nodeenv==1.10.0", "pytokens==0.4.1", "sailthru-client==2.2.3", "pyproject-hooks==1.2.0", "semantic-version==2.10.0", "openedx-events==10.5.0", "redis==7.1.0", "sphinx-book-theme==1.1.4", "grpcio-status==1.76.0", "accessible-pygments==0.0.5", "roman-numerals==4.1.0", "django-statici18n==2.6.0", "google-cloud-firestore==2.23.0", "cffi==2.0.0", "astroid==4.0.3", "anyio==4.12.1", "tox==4.34.1", "pip==25.3", "proto-plus==1.27.1", "simplejson==3.20.2", "social-auth-core==4.8.3", "path==16.16.0", "inflection==0.5.1", "build==1.4.0", "pyjwt[crypto]==2.10.1", "click-log==0.4.0", "attrs==25.4.0", "markupsafe==3.0.3", "pillow==12.1.0", "lxml[html-clean]==6.0.2", "google-cloud-storage==3.9.0", "django-ses==4.6.0", "factory-boy==3.3.3", "django-rest-swagger==2.2.0", "colorama==0.4.6", "pylint-celery==0.3", "pytest==9.0.2", "requests-oauthlib==2.0.0", "sphinxcontrib-jsmath==1.0.1", "mypy==1.19.1", "chardet==5.2.0", "edx-django-sites-extensions==5.1.0", "django-stubs==5.2.9", "platformdirs==4.5.1", "django-stubs-ext==5.2.9", "qrcode==8.2", "django-waffle==5.0.0", "requests==2.32.5", "edx-toggles==5.4.1", "mccabe==0.7.0", "pycparser==3.0", "pylint-django==2.7.0", "greenlet==3.3.1", "pyasn1==0.6.2", "cachecontrol==0.14.4", "dill==0.4.1", "pymongo==4.16.0", "urllib3==2.6.3", "python-dateutil==2.9.0.post0", "pytz==2025.2", "pyyaml==6.0.3", "six==1.17.0", "faker==40.1.2", "pytest-django==4.11.1", "cryptography==46.0.4", "hpack==4.1.0", "coreschema==0.0.4", "sphinx==9.1.0", "babel==2.18.0", "sphinxcontrib-qthelp==2.0.0", "edx-event-bus-kafka==6.1.0", "idna==3.11", "openapi-codec==1.3.2", "edx-django-release-util==1.5.0", "openedx-atlas==0.7.0", "rsa==4.9.1", "jinja2==3.1.6", "mypy-extensions==1.1.0"]',27,'["django-ratelimit", "edx-django-utils", "edx-rest-api-client", "social-auth-app-django", "django-appconf", "pytest-django", "code-annotations", "django-cors-headers", "xss-utils", "django-storages", "edx-ace", "django-extensions", "djangorestframework", "django-filter", "django-sortedm2m", "edx-django-release-util", "edx-i18n-tools", "django-config-models", "factory-boy", "edx-auth-backends", "django-webpack-loader", "pylint-django", "edx-drf-extensions", "django-waffle", "django-debug-toolbar", "edx-toggles", "edx-django-sites-extensions"]',35,'["django-ratelimit", "edx-django-utils", "edx-rest-api-client", "social-auth-app-django", "django-statici18n", "django-appconf", "pytest-django", "code-annotations", "django-cors-headers", "drf-jwt", "django-crum", "xss-utils", "django-storages", "edx-ace", "django-extensions", "djangorestframework", "django-simple-history", "django-filter", "django-ses", "django-sortedm2m", "edx-django-release-util", "edx-i18n-tools", "django-config-models", "drf-yasg", "factory-boy", "django-model-utils", "edx-auth-backends", "django-webpack-loader", "pylint-django", "edx-drf-extensions", "django-rest-swagger", "django-waffle", "django-debug-toolbar", "edx-toggles", "edx-django-sites-extensions"]',20,'["edx-django-utils", "edx-rest-api-client", "social-auth-app-django", "django-appconf", "code-annotations", "django-cors-headers", "xss-utils", "edx-ace", "django-extensions", "django-filter", "edx-django-release-util", "edx-i18n-tools", "django-config-models", "edx-auth-backends", "django-webpack-loader", "edx-drf-extensions", "django-waffle", "django-debug-toolbar", "edx-toggles", "edx-django-sites-extensions"]',0,NULL,1,0,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,0,1,1,33,'{"total_duration": "5 minutes 43 seconds", "checks": [{"name": "unit_tests (3.12, django52)", "duration": "5 minutes 43 seconds"}, {"name": "quality_and_translations_tests (3.12)", "duration": "2 minutes 16 seconds"}, {"name": "docs (3.12)", "duration": "1 minutes 26 seconds"}, {"name": "check migrations (3.12)", "duration": "1 minutes 19 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2015-12-11 14:09:03','master','Service hosting course and program certificates',28446,82,1,0,0,0,0,0,0,'2026-06-07 05:25:50','GNU AGPLv3',10,1,0,0,24727,12460,7611,1209816,0,0,1,1,0,0,0,0,'','openedx',4,'[]',0,'[''https://github.com/openedx/credentials/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/credentials/actions?query=workflow%3ACI'', ''https://codecov.io/github/openedx/credentials/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/credentials?branch=master'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/github/license/openedx/credentials.svg'', ''https://github.com/openedx/credentials/blob/master/LICENSE'', ''https://github.com/openedx/openedx-platform/tree/master'', ''https://docs.tutor.edly.io/'', ''https://github.com/overhangio/tutor-credentials'', ''https://github.com/openedx/frontend-app-learner-record'', ''https://edx-credentials.readthedocs.io/en/latest/'', ''https://github.com/openedx/credentials/tree/master/docs'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://discuss.openedx.org'', ''http://openedx.slack.com/'']',1,1,0,1,'.readthedocs.yaml','2',1,'2026-04-09','2025-08-21','4',0,1,0,1,NULL,0,NULL,'[]',NULL,1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-build-test-release',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,7,'{"total_duration": "11155 minutes 59 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "move_and_notify", "duration": "0 minutes 6 seconds"}, {"name": "move_and_notify", "duration": "0 minutes 5 seconds"}, {"name": "move_and_notify", "duration": "0 minutes 5 seconds"}, {"name": "add_label", "duration": "0 minutes 5 seconds"}, {"name": "add_label", "duration": "0 minutes 2 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 52 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2021-02-01 17:07:12','main','Open edX Build / Test / Release Working Group',4307,14,1,0,0,0,0,0,0,'2026-05-19 12:26:46',NULL,0,0,0,0,0,5560,0,11553,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx/build-test-release-wg/projects'', ''https://discuss.openedx.org/c/working-groups/build-test-release/30'', ''https://calendar.google.com/calendar/u/0?cid=Y192ODZzaHJuZWdzaHNxZ3A0Zmoyazk0dTdiY0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3185508485/BTR+Meeting+Minutes'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/1022099494/Build+-+Test+-+Release+Working+Group'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-lti-consumer',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,128,0,'[]',0,'',0,0,'','',46,'["django-appconf==1.2.0", "openedx-filters==3.1.0", "six==1.17.0", "web-fragments==4.0.0", "webencodings==0.5.1", "dnspython==2.8.0", "cffi==2.0.0", "simplejson==4.0.1", "django-filter==25.2", "django-statici18n==2.7.1", "fastavro==1.12.1", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", "webob==1.8.9", "markupsafe==3.0.3", "lxml==6.1.0", "django-waffle==5.0.0", "attrs==26.1.0", "asgiref==3.11.1", "mako==1.3.11", "pyyaml==6.0.3", "djangorestframework==3.17.1", "django-config-models==3.0.0", "edx-ccx-keys==2.0.2", "click==8.3.2", "pyjwt==2.12.1", "typing-extensions==4.15.0", "pytz==2026.1.post1", "edx-django-utils==8.0.1", "oauthlib==3.3.1", "fs==2.4.16", "edx-opaque-keys[django]==4.0.0", "xblock==6.0.0", "psutil==7.2.2", "pycryptodomex==3.23.0", "pymongo==4.16.0", "sqlparse==0.5.5", "stevedore==5.7.0", "appdirs==1.4.4", "pycparser==3.0", "lazy==1.6", "jsonfield==3.2.0", "bleach==6.3.0", "openedx-events==11.1.1", "django-crum==0.7.9", "django==5.2.13"]',128,'["django-appconf==1.2.0", "path==16.16.0", "mock==5.2.0", "text-unidecode==1.3", "isort==8.0.1", "dnspython==2.8.0", "keyring==25.7.0", "pygments==2.20.0", "setuptools==82.0.1", "django-statici18n==2.7.1", "platformdirs==4.9.6", "djangorestframework==3.17.1", "idna==3.11", "binaryornot==0.6.0", "pycodestyle==2.14.0", "jmespath==1.1.0", "click==8.3.2", "secretstorage==3.5.0", "cachetools==7.0.5", "pyjwt==2.12.1", "typing-extensions==4.15.0", "edx-django-utils==8.0.1", "pyproject-hooks==1.2.0", "oauthlib==3.3.1", "fs==2.4.16", "pycryptodomex==3.23.0", "pylint-django==2.7.0", "distlib==0.4.0", "lxml[html-clean]==6.1.0", "pip-tools==7.5.3", "pymongo==4.16.0", "certifi==2026.2.25", "nh3==0.3.4", "pycparser==3.0", "lazy==1.6", "id==1.5.0", "web-fragments==4.0.0", "charset-normalizer==3.4.7", "pypng==0.20220715.0", "cryptography==46.0.7", "requests-toolbelt==1.0.0", "django-waffle==5.0.0", "boto3==1.42.91", "tomlkit==0.14.0", "rfc3986==2.0.0", "filelock==3.29.0", "ddt==1.7.2", "coveralls==4.1.0", "jaraco-classes==3.4.0", "cookiecutter==2.7.1", "jaraco-functools==4.4.0", "astroid==4.0.4", "requests==2.33.1", "build==1.4.3", "code-annotations==3.0.0", "markdown-it-py==4.0.0", "dill==0.4.1", "openedx-events==11.1.1", "more-itertools==11.0.2", "jaraco-context==6.1.2", "webob==1.8.9", "pluggy==1.6.0", "docutils==0.22.4", "six==1.17.0", "coverage[toml]==7.13.5", "webencodings==0.5.1", "tox==4.53.0", "cffi==2.0.0", "fs-s3fs==1.1.1", "django-filter==25.2", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", "markupsafe==3.0.3", "lxml==6.1.0", "pylint==4.0.5", "attrs==26.1.0", "edx-i18n-tools==2.0.0", "jeepney==0.9.0", "botocore==1.42.91", "mako==1.3.11", "packaging==26.1", "typer==0.24.1", "annotated-doc==0.0.4", "edx-lint==6.0.0", "shellingham==1.5.4", "python-discovery==1.2.2", "wheel==0.46.3", "polib==1.2.0", "readme-renderer==44.0", "pylint-plugin-utils==0.9.0", "psutil==7.2.2", "xblock-sdk==0.14.0", "sqlparse==0.5.5", "urllib3==1.26.20", "bleach==6.3.0", "django-crum==0.7.9", "django==5.2.13", "openedx-filters==3.1.0", "arrow==1.4.0", "python-slugify==8.0.4", "simplejson==4.0.1", "fastavro==1.12.1", "rich==15.0.0", "click-log==0.4.0", "colorama==0.4.6", "asgiref==3.11.1", "pyyaml==6.0.3", "django-config-models==3.0.0", "edx-ccx-keys==2.0.2", "jinja2==3.1.6", "mdurl==0.1.2", "pyproject-api==1.10.0", "pylint-celery==0.3", "pytz==2026.1.post1", "virtualenv==21.2.4", "s3transfer==0.16.0", "twine==6.2.0", "edx-opaque-keys[django]==4.0.0", "xblock==6.0.0", "pip==26.0.1", "tomli-w==1.2.0", "django==4.2.24", "mccabe==0.7.0", "stevedore==5.7.0", "appdirs==1.4.4", "jsonfield==3.2.0", "tzdata==2026.1", "lxml-html-clean==0.4.4"]',12,'["xblock", "django-waffle", "xblock-sdk", "django-config-models", "django-appconf", "code-annotations", "pylint-django", "edx-i18n-tools", "edx-django-utils", "django-filter", "web-fragments", "djangorestframework"]',15,'["xblock", "django-waffle", "xblock-sdk", "django-config-models", "django-statici18n", "code-annotations", "pylint-django", "django-crum", "django-appconf", "edx-i18n-tools", "jsonfield", "edx-django-utils", "django-filter", "web-fragments", "djangorestframework"]',10,'["xblock", "django-waffle", "xblock-sdk", "django-config-models", "django-appconf", "code-annotations", "edx-i18n-tools", "edx-django-utils", "django-filter", "web-fragments"]',0,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,55,'{"total_duration": "1606 minutes 28 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "5 minutes 1 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 28 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 22 seconds"}, {"name": "push", "duration": "0 minutes 21 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2015-11-09 15:21:44','master','',2022,97,1,0,0,0,0,0,0,'2026-06-08 03:13:26','GNU AGPLv3',6,1,7508,0,52292,170308,3797,879140,0,0,1,0,0,1,0,0,'','openedx',4,'[''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'']',1,'[''https://docs.tutor.edly.io/configuration.html'', ''https://github.com/openedx/xblock-lti-consumer/blob/v9.14.2/README.rst'', ''http://lti.tools/saltire/'', ''https://docs.openedx.org/en/latest/educators/how-tos/course_development/exercise_tools/set_up_lti_1_1_component.html'', ''https://saltire.lti.app/tool'', ''https://saltire.lti.app/tool?norefresh'', ''https://lti-ri.imsglobal.org/lti/tools/'', ''https://lti-ri.imsglobal.org/lti/tools'', ''https://lti-ri.imsglobal.org/keygen/index'', ''https://docs.openedx.org/en/latest/educators/how-tos/course_development/exercise_tools/set_up_lti_1_3_component.html'', ''http://www.imsglobal.org/spec/lti-bo/v1p1/'', ''https://github.com/openedx/xblock-lti-consumer/tree/master/docs/basic_outcomes_service.rst'', ''https://www.imsglobal.org/lti/model/uml/purl.imsglobal.org/vocab/lis/v2/outcomes/Result/service.html'', ''https://github.com/openedx/xblock-lti-consumer/tree/master/docs/result_service.rst'', ''https://github.com/open-craft/openedx-ltistore'', ''https://discuss.openedx.org'', ''https://github.com/openedx/xblock-lti-consumer/issues'', ''https://openedx.slack.com/'', ''https://backstage.openedx.org/catalog/default/component/xblock-lti-consumer'', ''https://github.com/openedx/xblock-lti-consumer/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/xblock-lti-consumer/actions?query=workflow%3A%22Python+CI%22'', ''https://codecov.io/github/openedx/xblock-lti-consumer/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/xblock-lti-consumer?branch=master'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/github/license/openedx/xblock-lti-consumer.svg'', ''https://github.com/openedx/edx-rest-api-client/blob/master/LICENSE'', ''https://img.shields.io/pypi/v/lti-consumer-xblock.svg'', ''https://pypi.python.org/pypi/lti-consumer-xblock/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,0,NULL,0,'lti-consumer-xblock','[''3'', ''3.12'']','https://github.com/openedx/xblock-lti-consumer',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-firebase-analytics-ios',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "", "checks": []}','Other','2024-10-11 09:09:07','main','',23,3,1,0,0,0,0,0,0,'2026-05-30 15:29:05','Apache License 2.0',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/user-attachments/assets/fdd60f8b-bd61-4c3d-b97f-4b28323ec369: 403'', ''https://github.com/user-attachments/assets/ef7b07a5-9fdf-4bbe-b47f-ba328a6faafb: 403'']',0,'[''https://github.com/openedx/openedx-app-firebase-analytics-ios'', ''https://firebase.google.com/docs/ios/setup'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/pr_watcher_configuration',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "", "checks": []}','Other','2020-03-16 15:27:27','master','Configuration for pr_watcher_notifier on Heroku',20,4,1,0,0,0,0,0,0,'2024-12-16 20:05:07',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/open-craft/pr_watcher_notifier: 504'']',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/django-user-tasks',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,144,0,'[]',0,'',0,0,'','',26,'["amqp==5.3.1", "packaging==26.2", "drf-yasg==1.21.15", "vine==5.1.0", "click==8.3.3", "django==5.2.14", "click-plugins==1.1.1.2", "six==1.17.0", "sqlparse==0.5.5", "inflection==0.5.1", "tzdata==2026.2", "django-model-utils==5.0.0", "djangorestframework==3.17.1", "uritemplate==4.2.0", "celery==5.6.3", "wcwidth==0.7.0", "click-repl==0.3.0", "click-didyoumean==0.3.1", "billiard==4.2.4", "pyyaml==6.0.3", "prompt-toolkit==3.0.52", "python-dateutil==2.9.0.post0", "tzlocal==5.3.1", "asgiref==3.11.1", "kombu==5.6.2", "pytz==2026.2"]',144,'["amqp==5.3.1", "keyring==25.7.0", "tomli-w==1.2.0", "pylint-celery==0.3", "pip-tools==7.5.3", "roman-numerals==4.1.0", "click-log==0.4.0", "six==1.17.0", "snowballstemmer==3.0.1", "charset-normalizer==3.4.7", "cachetools==7.1.1", "referencing==0.37.0", "mdurl==0.1.2", "babel==2.18.0", "jaraco-context==6.1.2", "pytest==9.0.3", "wcwidth==0.7.0", "sphinxcontrib-jsmath==1.0.1", "dill==0.4.1", "openapi-codec==1.3.2", "platformdirs==4.9.6", "click-didyoumean==0.3.1", "python-dateutil==2.9.0.post0", "sphinx-mdinclude==0.6.2", "deepmerge==2.0", "edx-i18n-tools==2.0.0", "pycodestyle==2.14.0", "nh3==0.3.5", "isort==8.0.1", "pytest-cov==7.1.0", "jsonschema==4.26.0", "pygments==2.20.0", "rfc3986==2.0.0", "pyproject-api==1.10.0", "sphinxcontrib-applehelp==2.0.0", "stevedore==5.7.0", "packaging==26.2", "secretstorage==3.5.0", "picobox==4.0.0", "tox==4.53.1", "requests-toolbelt==1.0.0", "soupsieve==2.8.3", "idna==3.13", "beautifulsoup4==4.14.3", "more-itertools==11.0.2", "sphinxcontrib-qthelp==2.0.0", "coverage==7.13.5", "twine==6.2.0", "requests==2.33.1", "rpds-py==0.30.0", "mock==5.2.0", "iniconfig==2.3.0", "tzdata==2026.2", "sphinxcontrib-htmlhelp==2.1.0", "django-model-utils==5.0.0", "polib==1.2.0", "setuptools==82.0.1", "markdown-it-py==4.2.0", "readme-renderer==44.0", "restructuredtext-lint==2.0.2", "jsonschema-specifications==2025.9.1", "djangorestframework==3.17.1", "alabaster==1.0.0", "click-repl==0.3.0", "colorama==0.4.6", "sphinx-book-theme==1.2.0", "sphinxcontrib-openapi==0.9.0", "pylint-plugin-utils==0.9.0", "pytz==2026.2", "sphinx==9.1.0", "mistune==3.2.1", "drf-yasg==1.21.15", "vine==5.1.0", "django==5.2.14", "rules==3.5", "mccabe==0.7.0", "sqlparse==0.5.5", "inflection==0.5.1", "doc8==2.0.0", "jmespath==1.1.0", "wheel==0.47.0", "path==16.16.0", "botocore==1.43.6", "celery==5.6.3", "s3transfer==0.17.0", "text-unidecode==1.3", "astroid==4.0.4", "cffi==2.0.0", "coverage[toml]==7.13.5", "boto3==1.43.6", "pydata-sphinx-theme==0.16.1", "tomlkit==0.14.0", "python-slugify==8.0.4", "accessible-pygments==0.0.5", "docutils==0.21.2", "sphinxcontrib-devhelp==2.0.0", "tzlocal==5.3.1", "sphinxcontrib-httpdomain==2.0.0", "jaraco-classes==3.4.0", "pylint-django==2.7.0", "jaraco-functools==4.4.0", "code-annotations==3.0.0", "distlib==0.4.0", "jinja2==3.1.6", "django-rest-swagger==2.2.0", "python-discovery==1.3.0", "attrs==26.1.0", "click==8.3.3", "typing-extensions==4.15.0", "click-plugins==1.1.1.2", "jeepney==0.9.0", "lxml[html-clean]==6.1.0", "coreapi==2.3.3", "pyproject-hooks==1.2.0", "sphinxcontrib-serializinghtml==2.0.0", "build==1.5.0", "lxml-html-clean==0.4.4", "itypes==1.2.0", "pip==26.1.1", "coreschema==0.0.4", "filelock==3.29.0", "rich==15.0.0", "uritemplate==4.2.0", "pycparser==3.0", "id==1.6.1", "imagesize==2.0.0", "pluggy==1.6.0", "pylint==4.0.5", "cryptography==48.0.0", "django-storages==1.14.6", "billiard==4.2.4", "pyyaml==6.0.3", "prompt-toolkit==3.0.52", "pydocstyle==6.3.0", "testfixtures==11.0.0", "edx-lint==6.1.0", "markupsafe==3.0.3", "asgiref==3.11.1", "simplejson==4.1.1", "kombu==5.6.2", "virtualenv==21.3.1", "certifi==2026.4.22", "urllib3==2.7.0", "pytest-django==4.12.0"]',6,'["djangorestframework", "pytest-django", "code-annotations", "edx-i18n-tools", "django-storages", "pylint-django"]',10,'["djangorestframework", "drf-yasg", "django-model-utils", "pytest-django", "rules", "code-annotations", "edx-i18n-tools", "django-rest-swagger", "django-storages", "pylint-django"]',2,'["edx-i18n-tools", "code-annotations"]',1,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,7,'{"total_duration": "2028 minutes 8 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 9 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 4 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 40 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52-celery54-drflatest)", "duration": "0 minutes 37 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42-celery53-drflatest)", "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2016-08-09 20:52:58','master','A Django application for managing user-triggered asynchronous tasks.',577,20,1,0,0,0,0,0,0,'2026-06-08 00:53:31','Apache License 2.0',5,1,0,0,0,0,4247,125438,0,1,1,0,0,1,0,0,'','openedx',1,'[''https://open-edx-proposals.readthedocs.io/en/latest/oeps/oep-0003.html: 404'', ''https://open.edx.org/getting-help: 403'']',1,'[''https://img.shields.io/pypi/v/django-user-tasks.svg'', ''https://pypi.python.org/pypi/django-user-tasks/'', ''https://github.com/openedx/django-user-tasks/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/django-user-tasks/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/django-user-tasks/coverage.svg?branch=master'', ''http://codecov.io/github/edx/django-user-tasks?branch=master'', ''https://readthedocs.org/projects/django-user-tasks/badge/?version=latest'', ''http://django-user-tasks.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/django-user-tasks.svg'', ''https://img.shields.io/github/license/edx/django-user-tasks.svg'', ''https://github.com/openedx/django-user-tasks/blob/master/LICENSE.txt'', ''http://www.celeryproject.org/'', ''https://channels.readthedocs.io/en/latest/'', ''http://docs.celeryproject.org/en/latest/userguide/signals.html'', ''https://django-user-tasks.readthedocs.org'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'django-user-tasks','[''3'', ''3.12'']','https://github.com/openedx/django-user-tasks',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/pytest-repo-health',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,87,0,'[]',0,'',0,0,'','',19,'["iniconfig==2.1.0", "pytest-aiohttp==1.1.0", "packaging==25.0", "pytest-asyncio==0.26.0", "attrs==25.3.0", "gitpython==3.1.44", "aiohappyeyeballs==2.6.1", "frozenlist==1.6.0", "idna==3.10", "pluggy==1.5.0", "pytest==8.3.5", "propcache==0.3.1", "pyyaml==6.0.2", "aiosignal==1.3.2", "gitdb==4.0.12", "multidict==6.4.3", "yarl==1.20.0", "smmap==5.0.2", "aiohttp==3.11.18"]',87,'["stevedore==5.4.1", "pycodestyle==2.13.0", "wheel==0.45.1", "doc8==1.1.2", "colorama==0.4.6", "charset-normalizer==3.4.1", "roman-numerals-py==3.1.0", "isort==6.0.1", "certifi==2025.4.26", "sphinxcontrib-jsmath==1.0.1", "idna==3.10", "typing-extensions==4.13.2", "pylint-celery==0.3", "pydata-sphinx-theme==0.15.4", "readme-renderer==44.0", "multidict==6.4.3", "sphinxcontrib-htmlhelp==2.1.0", "pip-tools==7.4.1", "imagesize==1.4.1", "restructuredtext-lint==1.4.0", "markupsafe==3.0.2", "python-slugify==8.0.4", "click==8.1.8", "requests==2.32.3", "cachetools==5.5.2", "docutils==0.21.2", "jinja2==3.1.6", "gitpython==3.1.44", "platformdirs==4.3.7", "snowballstemmer==2.2.0", "nh3==0.2.21", "chardet==5.2.0", "aiosignal==1.3.2", "sphinxcontrib-serializinghtml==2.0.0", "sphinxcontrib-qthelp==2.0.0", "diff-cover==9.2.4", "text-unidecode==1.3", "pylint-django==2.6.1", "setuptools==80.0.1", "filelock==3.18.0", "sphinx-book-theme==1.1.4", "distlib==0.3.9", "virtualenv==20.30.0", "pytest-asyncio==0.26.0", "attrs==25.3.0", "dill==0.4.0", "coverage[toml]==7.8.0", "pylint==3.3.6", "astroid==3.3.9", "frozenlist==1.6.0", "pluggy==1.5.0", "edx-lint==5.6.0", "propcache==0.3.1", "build==1.2.2.post1", "pbr==6.1.1", "pydocstyle==6.3.0", "sphinx==8.2.3", "gitdb==4.0.12", "aiohttp==3.11.18", "pyproject-hooks==1.2.0", "mccabe==0.7.0", "babel==2.17.0", "iniconfig==2.1.0", "pytest-aiohttp==1.1.0", "packaging==25.0", "pylint-plugin-utils==0.8.2", "soupsieve==2.7", "pygments==2.19.1", "urllib3==2.2.3", "sphinxcontrib-devhelp==2.0.0", "pytest-cov==6.1.1", "aiohappyeyeballs==2.6.1", "code-annotations==2.3.0", "accessible-pygments==0.0.5", "tomlkit==0.13.2", "pyproject-api==1.9.0", "pytest==8.3.5", "pip==24.2", "pyyaml==6.0.2", "sphinxcontrib-applehelp==2.0.0", "click-log==0.4.0", "beautifulsoup4==4.13.4", "tox==4.25.0", "yarl==1.20.0", "smmap==5.0.2", "six==1.17.0", "alabaster==1.0.0"]',2,'["code-annotations", "pylint-django"]',2,'["code-annotations", "pylint-django"]',1,'["code-annotations"]',0,NULL,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,11,'{"total_duration": "6201 minutes 29 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 41 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "tests (ubuntu-latest, 3.12, py)", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}]}','Other','2020-03-16 16:53:00','master','',426,8,1,0,0,0,0,0,0,'2026-06-04 00:33:59','GNU AGPLv3',3,1,0,0,0,0,2689,31722,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/pytest-repo-health/workflows/Python%20CI/badge.svg?branch=master: 504'', ''https://github.com/openedx/pytest-repo-health/actions?query=workflow%3A%22Python+CI%22: 504'', ''https://ci.appveyor.com/api/projects/status/github/edx/pytest-repo-health?branch=master: 405'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md: 504'', ''https://github.com/openedx/pytest-repo-health/blob/master/.github/PULL_REQUEST_TEMPLATE.md: 504'', ''https://github.com/openedx/pytest-repo-health/blob/master/.github/ISSUE_TEMPLATE.md: 504'', ''https://github.com/openedx/edx-repo-health: 504'', ''https://github.com/audreyr/cookiecutter: 504'', ''http://www.gnu.org/licenses/gpl-3.0.txt: HTTPConnectionPool(host=\''www.gnu.org\'', port=80): Max retries exceeded with url: /licenses/gpl-3.0.txt (Caused by NewConnectionError("HTTPConnection(host=\''www.gnu.org\'', port=80): Failed to establish a new connection: [Errno 101] Network is unreachable"))'', ''https://pypi.org/project: 404'']',1,'[''https://img.shields.io/pypi/v/pytest-repo-health.svg'', ''https://pypi.org/project/pytest-repo-health'', ''https://img.shields.io/pypi/pyversions/pytest-repo-health.svg'', ''https://ci.appveyor.com/project/edx/pytest-repo-health/branch/master'', ''https://open.edx.org/getting-help'', ''https://github.com/hackebrot'', ''http://opensource.org/licenses/BSD-3-Clause'', ''http://www.apache.org/licenses/LICENSE-2.0'', ''https://github.com/pytest-dev/cookiecutter-pytest-plugin'', ''https://github.com/openedx/pytest-repo-health/issues'', ''https://github.com/pytest-dev/pytest'', ''https://tox.readthedocs.io/en/latest/'', ''https://pypi.org/project/pip/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'pytest-repo-health','[''3'', ''3.12'']','https://github.com/edX/pytest-repo-health',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-rest-api-client',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,88,0,'[]',0,'',0,0,'','',18,'["charset-normalizer==3.4.7", "pycparser==3.0", "cffi==2.0.0", "psutil==7.2.2", "stevedore==5.7.0", "django-crum==0.7.9", "pyjwt==2.12.1", "sqlparse==0.5.5", "urllib3==2.6.3", "asgiref==3.11.1", "django-waffle==5.0.0", "requests==2.33.1", "pynacl==1.6.2", "edx-django-utils==8.0.1", "django==5.2.13", "click==8.3.3", "certifi==2026.4.22", "idna==3.13"]',88,'["cffi==2.0.0", "freezegun==1.5.5", "mdurl==0.1.2", "click-log==0.4.0", "pygments==2.20.0", "cryptography==48.0.0", "django-crum==0.7.9", "pytest-cov==7.1.0", "jaraco-functools==4.4.0", "pytest-django==4.12.0", "click==8.3.3", "requests-toolbelt==1.0.0", "pyproject-hooks==1.2.0", "colorama==0.4.6", "code-annotations==3.0.0", "python-dateutil==2.9.0.post0", "markupsafe==3.0.3", "python-discovery==1.1.0", "python-discovery==1.2.2", "pip-tools==7.5.3", "filelock==3.25.0", "certifi==2026.4.22", "idna==3.13", "wheel==0.47.0", "pyyaml==6.0.3", "pytest==9.0.3", "asgiref==3.11.1", "pycparser==3.0", "pluggy==1.5.0", "stevedore==5.7.0", "pyjwt==2.12.1", "markdown-it-py==4.0.0", "pylint-celery==0.3", "chardet==7.4.3", "django-waffle==5.0.0", "ddt==1.7.2", "chardet==7.0.1", "edx-django-utils==8.0.1", "text-unidecode==1.3", "iniconfig==2.3.0", "distlib==0.4.0", "cachetools==7.0.3", "id==1.6.1", "twine==6.2.0", "more-itertools==11.0.2", "pynacl==1.6.2", "dill==0.4.1", "nh3==0.3.5", "isort==8.0.1", "jaraco-classes==3.4.0", "pylint-django==2.7.0", "jaraco-context==6.1.2", "edx-lint==6.1.0", "tomlkit==0.14.0", "setuptools==82.0.1", "tox==4.27.0", "packaging==24.2", "readme-renderer==44.0", "charset-normalizer==3.4.7", "cachetools==7.1.1", "six==1.17.0", "pylint==4.0.5", "keyring==25.7.0", "pylint-plugin-utils==0.9.0", "filelock==3.29.0", "pycodestyle==2.14.0", "astroid==4.0.4", "coverage[toml]==7.13.5", "build==1.5.0", "responses==0.26.0", "requests==2.33.1", "jeepney==0.9.0", "sqlparse==0.5.5", "secretstorage==3.5.0", "django==5.2.13", "jinja2==3.1.6", "rfc3986==2.0.0", "psutil==7.2.2", "urllib3==2.6.3", "pip==26.1.1", "platformdirs==4.3.6", "python-slugify==8.0.4", "docutils==0.22.4", "mccabe==0.7.0", "virtualenv==21.3.1", "pyproject-api==1.9.0", "rich==15.0.0", "virtualenv==21.1.0"]',5,'["django-waffle", "edx-django-utils", "pytest-django", "code-annotations", "pylint-django"]',6,'["django-waffle", "edx-django-utils", "django-crum", "pytest-django", "code-annotations", "pylint-django"]',3,'["edx-django-utils", "django-waffle", "code-annotations"]',0,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,16,'{"total_duration": "3795 minutes 11 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 15 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 33 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 32 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 51 seconds"}]}','Other','2015-04-29 18:11:55','master','Facilitates interaction with edX REST APIs',464,18,1,0,0,0,0,0,0,'2026-06-02 06:31:48','Apache License 2.0',13,1,0,0,0,0,2700,38968,0,0,1,0,0,1,0,0,'','openedx',5,'[''https://lms.root: HTTPSConnectionPool(host=\''lms.root\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''lms.root\'', port=443): Failed to resolve \''lms.root\'' ([Errno -2] Name or service not known)"))'', ''https://some.url: HTTPSConnectionPool(host=\''some.url\'', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=\''some.url\'', port=443): Failed to resolve \''some.url\'' ([Errno -2] Name or service not known)"))'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/slack: 403'', ''https://openedx.org/getting-help: 403'', ''https://openedx.org/code-of-conduct/: 403'']',1,'[''https://requests.readthedocs.io/en/master/user/advanced/'', ''https://github.com/openedx/edx-django-utils/blob/master/edx_django_utils/cache/README.rst'', ''https://discuss.openedx.org'', ''https://github.com/openedx/edx-rest-api-client/issues'', ''https://openedx.slack.com/'', ''https://github.com/openedx/edx-rest-api-client/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-rest-api-client/actions?query=workflow%3A%22Python+CI%22'', ''https://codecov.io/github/openedx/edx-rest-api-client/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/edx-rest-api-client?branch=master'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/github/license/openedx/edx-rest-api-client.svg'', ''https://github.com/openedx/edx-rest-api-client/blob/master/LICENSE'', ''https://img.shields.io/pypi/v/edx-rest-api-client.svg'', ''https://pypi.python.org/pypi/edx-rest-api-client/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-rest-api-client','[''3.12'']','https://github.com/openedx/edx-rest-api-client',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/xblock-image-explorer',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,80,0,'[]',0,'',0,0,'','',24,'["python-dateutil==2.9.0.post0", "openedx-django-pyfs==4.0.0", "six==1.17.0", "webob==1.8.9", "mako==1.3.12", "pytz==2026.2", "s3transfer==0.18.0", "lxml==6.1.1", "pyyaml==6.0.3", "urllib3==2.7.0", "lazy==1.6", "sqlparse==0.5.5", "appdirs==1.4.4", "web-fragments==4.0.0", "fs-s3fs==1.1.1", "simplejson==4.1.1", "jmespath==1.1.0", "botocore==1.43.18", "xblock[django]==6.1.0", "markupsafe==3.0.3", "asgiref==3.11.1", "boto3==1.43.18", "django==5.2.14", "fs==2.4.16"]',80,'["pytest==9.0.3", "binaryornot==0.6.0", "certifi==2026.5.20", "coverage[toml]==7.14.1", "pylint==4.0.5", "tomlkit==0.15.0", "colorama==0.4.6", "openedx-django-pyfs==4.0.0", "setuptools==82.0.1", "webob==1.8.9", "pytz==2026.2", "dill==0.4.1", "idna==3.17", "pylint-celery==0.3", "cookiecutter==2.7.1", "cachetools==7.1.4", "web-fragments==4.0.0", "jmespath==1.1.0", "pypng==0.20220715.0", "markupsafe==3.0.3", "astroid==4.0.4", "mdurl==0.1.2", "mock==5.2.0", "pygments==2.20.0", "boto3==1.43.18", "requests==2.34.2", "distlib==0.4.0", "wheel==0.47.0", "python-discovery==1.4.0", "build==1.5.0", "mccabe==0.7.0", "six==1.17.0", "s3transfer==0.18.0", "pip==26.1.2", "lxml==6.1.1", "platformdirs==4.10.0", "pyyaml==6.0.3", "urllib3==2.7.0", "tox==4.55.0", "stevedore==5.8.0", "appdirs==1.4.4", "markdown-it-py==4.2.0", "pylint-django==2.7.0", "simplejson==4.1.1", "asgiref==3.11.1", "virtualenv==21.4.2", "filelock==3.29.0", "pip-tools==7.5.3", "rich==15.0.0", "django==5.2.14", "click-log==0.4.0", "edx-lint==6.1.0", "pytest-django==4.12.0", "python-dateutil==2.9.0.post0", "iniconfig==2.3.0", "python-slugify==8.0.4", "pylint-plugin-utils==0.9.0", "mako==1.3.12", "xblock-sdk==0.14.0", "pyproject-hooks==1.2.0", "click==8.4.1", "sqlparse==0.5.5", "botocore==1.43.18", "xblock[django]==6.1.0", "pycodestyle==2.14.0", "text-unidecode==1.3", "arrow==1.4.0", "charset-normalizer==3.4.7", "jinja2==3.1.6", "fs==2.4.16", "isort==8.0.1", "pluggy==1.6.0", "packaging==26.2", "pytest-cov==7.1.0", "code-annotations==3.0.0", "lazy==1.6", "tzdata==2026.2", "tomli-w==1.2.0", "fs-s3fs==1.1.1", "pyproject-api==1.10.1"]',5,'["xblock-sdk", "code-annotations", "pylint-django", "pytest-django", "web-fragments"]',5,'["xblock-sdk", "code-annotations", "pylint-django", "pytest-django", "web-fragments"]',3,'["xblock-sdk", "code-annotations", "web-fragments"]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,12,'{"total_duration": "9705 minutes 42 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 57 seconds"}, {"name": "Dependabot", "duration": "0 minutes 47 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 44 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 37 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 33 seconds"}, {"name": "tests (ubuntu-latest, 3.12, package)", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 20 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 50 seconds"}]}','Other','2014-03-09 14:40:29','master','',1516,42,1,0,0,0,0,0,0,'2026-06-08 01:10:03','GNU AGPLv3',2,1,3925,0,6149,7384,3323,33384,0,1,0,0,0,0,0,0,'','openedx',0,'[''http://link/to/image.jpg: HTTPConnectionPool(host=\''link\'', port=80): Max retries exceeded with url: /to/image.jpg (Caused by NameResolutionError("HTTPConnection(host=\''link\'', port=80): Failed to resolve \''link\'' ([Errno -3] Temporary failure in name resolution)"))'']',0,'[''https://github.com/openedx/xblock-image-explorer/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/xblock-image-explorer/actions/workflows/ci.yml'', ''https://raw.githubusercontent.com/openedx/xblock-image-explorer/3b67392a73edcd606f4e3fb30cfa8b3cc20720d3/doc/img/student-view.png'', ''https://raw.githubusercontent.com/openedx/xblock-image-explorer/3b67392a73edcd606f4e3fb30cfa8b3cc20720d3/doc/img/edit-view.png'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'xblock-image-explorer','[''3.12'']','https://github.com/openedx/xblock-image-explorer',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/tinymce-language-selector',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'{}',0,0,'{}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,1,5,'{"total_duration": "11187 minutes 55 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 46 seconds"}, {"name": "Dependabot", "duration": "0 minutes 23 seconds"}]}','Other','2020-01-23 19:26:19','master','A plugin for TinyMCE 5 that allows the user to specify if text is written in a foreign language and in which language. Adds language data to tags to improve accessibility.',2454,6,1,0,0,0,0,0,0,'2026-05-19 11:12:48','GNU AGPLv3',0,0,0,0,0,22003,0,0,0,0,0,0,0,0,0,0,'@edx/tinymce-language-selector','openedx',0,'[''https://github.com/semantic-release/semantic-release: 504'']',0,'[]',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-learner-record',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,38,0,'',0,'{}',29,9,'{"@edx/browserslist-config": "^1.2.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "14.3.1", "axios-mock-adapter": "2.1.0", "babel-plugin-react-intl": "8.2.25", "husky": "9.1.7", "resize-observer-polyfill": "^1.5.1", "rosie": "2.1.1"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.9.2", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/fontawesome-svg-core": "7.2.0", "@fortawesome/free-brands-svg-icons": "7.2.0", "@fortawesome/free-regular-svg-icons": "7.2.0", "@fortawesome/free-solid-svg-icons": "7.2.0", "@fortawesome/react-fontawesome": "3.3.0", "@openedx/frontend-plugin-framework": "^1.6.0", "@openedx/paragon": "^23.4.2", "ajv": "^8.12.0", "ajv-keywords": "^5.1.0", "babel-polyfill": "6.26.0", "core-js": "3.49.0", "js-cookie": "3.0.5", "lodash": "4.18.1", "prop-types": "15.8.1", "react": "18.3.1", "react-device-detect": "^2.2.3", "react-dom": "18.3.1", "react-helmet-async": "^2.0.0", "react-redux": "7.2.9", "react-router": "6.30.3", "react-router-dom": "6.30.3", "redux": "4.2.1", "regenerator-runtime": "0.14.1", "schema-utils": "^4.2.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,20,'{"total_duration": "26621 minutes 40 seconds", "checks": [{"name": "tests", "duration": "2 minutes 19 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 12 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 58 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 56 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2021-07-19 19:30:14','master','Open edX micro-frontend application for viewing learner records',8717,24,1,0,0,0,0,0,0,'2026-06-08 01:05:29','GNU AGPLv3',8,1,0,0,579,136471,2086,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-learner-record','openedx',0,'[''https://en.wikipedia.org/wiki/Verifiable_credentials: 403'', ''https://github.com/openedx/frontend-plugin-framework: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/: 404'', ''https://travis-ci.com/edx/frontend-app-learner-record: 415'', ''https://github.com/openedx/frontend-app-learner-record/blob/master/LICENSE: 504'']',1,'[''https://www.edx.org'', ''https://edx-credentials.readthedocs.io/en/latest/learner_records.html'', ''https://github.com/edx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst'', ''https://openedx.atlassian.net/wiki/spaces/FEDX/pages/2629829454/Micro+Frontend+MFE+Onboarding'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-learner-record/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://api.travis-ci.com/edx/frontend-app-learner-record.svg?branch=master'', ''https://codecov.io/gh/edx/frontend-app-learner-record/branch/master/graph/badge.svg'', ''https://codecov.io/gh/edx/frontend-app-learner-record'', ''https://img.shields.io/npm/l/@edx/frontend-app-learner-record.svg'']',1,1,0,0,'','',1,'2026-04-06','2024-10-28','5',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-ui-toolkit',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,50,0,'',0,'{}',13,37,'{"@edx/eslint-config": "^4.0.0", "bi-app-sass": "1.1.0", "bourbon": "4.3.4", "browser-sync": "3.0.4", "css-loader": "^6.0.0", "del": "2.2.2", "eslint": "^8.35.0", "eslint-config-edx": "4.0.4", "gulp": "^4.0.2", "gulp-gh-pages": "0.5.4", "gulp-rename": "2.1.0", "gulp-util": "3.0.8", "gulp4-run-sequence": "^1.0.1", "jasmine": "5.13.0", "jasmine-core": "5.13.0", "jsdoc3-parser": "3.0.0", "jsdox": "0.4.10", "karma": "6.4.4", "karma-chrome-launcher": "^3.1.1", "karma-coverage": "2.2.1", "karma-firefox-launcher": "2.1.3", "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.2.0", "karma-jasmine-jquery-2": "^0.1.1", "karma-phantomjs-launcher": "1.0.4", "karma-requirejs": "1.1.0", "karma-sinon": "1.0.5", "karma-spec-reporter": "0.0.36", "puppeteer": "^14.1.2", "require-dir": "latest", "requirejs-plugins": "1.0.2", "sass-loader": "^13.2.0", "susy": "2.2.14", "style-loader": "3.3.4", "through2": "2.0.5", "webpack": "^5.75.0", "webpack-stream": "7.0.0"}','{"backbone": "1.6.1", "backbone.paginator": "2.0.8", "gulp-shell": "0.8.0", "jquery": "~3.7.0", "mini-css-extract-plugin": "^2.7.2", "moment": "2.30.1", "moment-timezone": "0.6.1", "requirejs": "2.1.22", "requirejs-text": "2.0.16", "sass": "^1.58.3", "sinon": "1.17.7", "underscore": "~1.8.3", "urijs": "1.19.11"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0,1,29,'{"total_duration": "1 minutes 48 seconds", "checks": [{"name": "build", "duration": "1 minutes 48 seconds"}, {"name": "Release", "duration": "0 minutes 35 seconds"}]}','Other','2015-08-13 07:28:13','master','A JavaScript toolkit for building edX user interfaces.',3781,14,1,0,0,0,0,0,0,'2026-06-02 19:55:23','Apache License 2.0',13,1,0,0,0,180573,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://badge.fury.io/gh/edx%2Fedx-ui-toolkit.svg: 503'', ''https://badge.fury.io/js/edx-ui-toolkit: 403'', ''http://ux.edx.org/: HTTPConnectionPool(host=\''ux.edx.org\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''ux.edx.org\'', port=80): Failed to resolve \''ux.edx.org\'' ([Errno -2] Name or service not known)"))'', ''https://github.com/openedx/edx-ui-toolkit/blob/master/CONTRIBUTING.md: 404'']',0,'[''https://badge.fury.io/gh/edx%2Fedx-ui-toolkit'', ''https://badge.fury.io/js/edx-ui-toolkit.svg'', ''https://badge.fury.io/bo/edx-ui-toolkit.svg'', ''https://badge.fury.io/bo/edx-ui-toolkit'', ''https://img.shields.io/coveralls/edx/edx-ui-toolkit.svg'', ''https://coveralls.io/r/edx/edx-ui-toolkit?branch=master'', ''https://github.com/openedx/edx-ui-toolkit/blob/master/LICENSE'', ''https://github.com/tj/n'', ''http://ui-toolkit.edx.org/'']',1,1,0,0,'','',1,'2026-04-06','2023-09-04','8',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-ace',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,146,0,'[]',0,'',0,0,'','',107,'["google-auth==2.39.0", "asgiref==3.8.1", "edx-lint==5.6.0", "google-api-python-client==2.168.0", "pygments==2.19.1", "diff-cover==9.2.4", "pydocstyle==6.3.0", "googleapis-common-protos==1.70.0", "lxml[html-clean,html_clean]==5.4.0", "markdown-it-py==3.0.0", "stevedore==5.4.1", "pyasn1-modules==0.4.2", "pylint-plugin-utils==0.8.2", "rich==14.0.0", "distlib==0.3.9", "pynacl==1.5.0", "click==8.1.8", "pbr==6.1.1", "jaraco-classes==3.4.0", "django==4.2.20", "chardet==5.2.0", "pyasn1==0.6.1", "newrelic==10.10.0", "lxml-html-clean==0.4.2", "proto-plus==1.26.1", "edx-django-utils==7.4.0", "pyparsing==3.2.3", "pyproject-api==1.9.0", "tox==4.25.0", "id==1.5.0", "simplejson==3.20.1", "google-api-core[grpc]==2.24.2", "markupsafe==3.0.2", "google-cloud-firestore==2.20.2", "platformdirs==4.3.7", "firebase-admin==6.8.0", "charset-normalizer==3.4.1", "python-dateutil==2.9.0.post0", "code-annotations==2.3.0", "docutils==0.21.2", "jinja2==3.1.6", "google-resumable-media==2.7.2", "grpcio-status==1.72.0", "dill==0.4.0", "google-auth-httplib2==0.2.0", "google-cloud-storage==3.1.0", "pylint==3.3.6", "polib==1.2.0", "mccabe==0.7.0", "requests==2.32.3", "path==16.16.0", "psutil==7.0.0", "pip-tools==7.4.1", "pycparser==2.22", "msgpack==1.1.0", "pyjwt[crypto]==2.10.1", "pyproject-hooks==1.2.0", "httplib2==0.22.0", "idna==3.10", "urllib3==2.2.3", "packaging==25.0", "jaraco-context==6.0.1", "mdurl==0.1.2", "more-itertools==10.7.0", "pylint-celery==0.3", "readme-renderer==44.0", "google-crc32c==1.7.1", "pluggy==1.5.0", "astroid==3.3.9", "django-crum==0.7.9", "attrs==25.3.0", "pyyaml==6.0.2", "django-waffle==4.2.0", "twine==6.1.0", "colorama==0.4.6", "click-log==0.4.0", "cryptography==44.0.2", "rsa==4.9.1", "filelock==3.18.0", "cffi==1.17.1", "isort==6.0.1", "pylint-django==2.6.1", "sailthru-client==2.2.3", "keyring==25.6.0", "snowballstemmer==2.2.0", "certifi==2025.1.31", "nh3==0.2.21", "grpcio==1.72.0", "protobuf==6.30.2", "google-cloud-core==2.4.3", "edx-i18n-tools==1.8.0", "requests-toolbelt==1.0.0", "virtualenv==20.30.0", "text-unidecode==1.3", "django-push-notifications==3.2.1", "cachetools==5.5.2", "python-slugify==8.0.4", "cachecontrol==0.14.2", "wheel==0.45.1", "rfc3986==2.0.0", "tomlkit==0.13.2", "jaraco-functools==4.1.0", "pycodestyle==2.13.0", "six==1.17.0", "build==1.2.2.post1", "uritemplate==4.1.1", "sqlparse==0.5.3"]',146,'["google-auth==2.39.0", "asgiref==3.8.1", "edx-lint==5.6.0", "google-api-python-client==2.168.0", "sphinxcontrib-jsmath==1.0.1", "pydata-sphinx-theme==0.15.4", "pygments==2.19.1", "diff-cover==9.2.4", "pydocstyle==6.3.0", "pytz==2025.2", "googleapis-common-protos==1.70.0", "lxml[html-clean,html_clean]==5.4.0", "hypothesis[pytz]==6.104.2", "markdown-it-py==3.0.0", "stevedore==5.4.1", "pyasn1-modules==0.4.2", "pylint-plugin-utils==0.8.2", "rich==14.0.0", "urwid-readline==0.15.1", "distlib==0.3.9", "pynacl==1.5.0", "click==8.1.8", "pbr==6.1.1", "jaraco-classes==3.4.0", "django==4.2.20", "chardet==5.2.0", "sphinx==8.2.3", "pyasn1==0.6.1", "newrelic==10.10.0", "lxml-html-clean==0.4.2", "proto-plus==1.26.1", "edx-django-utils==7.4.0", "pyparsing==3.2.3", "pyproject-api==1.9.0", "doc8==1.1.2", "tox==4.25.0", "id==1.5.0", "simplejson==3.20.1", "google-api-core[grpc]==2.24.2", "urwid==2.6.16", "markupsafe==3.0.2", "ddt==1.7.2", "google-cloud-firestore==2.20.2", "parso==0.8.4", "platformdirs==4.3.7", "pip==24.2", "firebase-admin==6.8.0", "charset-normalizer==3.4.1", "python-dateutil==2.9.0.post0", "pytest-django==4.11.1", "code-annotations==2.3.0", "docutils==0.21.2", "jinja2==3.1.6", "google-resumable-media==2.7.2", "grpcio-status==1.72.0", "dill==0.4.0", "google-auth-httplib2==0.2.0", "google-cloud-storage==3.1.0", "pylint==3.3.6", "polib==1.2.0", "wcwidth==0.2.13", "mccabe==0.7.0", "requests==2.32.3", "path==16.16.0", "babel==2.17.0", "sphinxcontrib-serializinghtml==2.0.0", "psutil==7.0.0", "pip-tools==7.4.1", "pycparser==2.22", "msgpack==1.1.0", "typing-extensions==4.13.2", "pyjwt[crypto]==2.10.1", "pytest==8.3.5", "soupsieve==2.7", "pyproject-hooks==1.2.0", "httplib2==0.22.0", "restructuredtext-lint==1.4.0", "beautifulsoup4==4.13.4", "sphinxcontrib-applehelp==2.0.0", "idna==3.10", "urllib3==2.2.3", "sortedcontainers==2.4.0", "packaging==25.0", "jaraco-context==6.0.1", "mdurl==0.1.2", "more-itertools==10.7.0", "pylint-celery==0.3", "readme-renderer==44.0", "google-crc32c==1.7.1", "iniconfig==2.1.0", "pudb==2024.1.3", "pluggy==1.5.0", "pytest-cov==6.1.1", "roman-numerals-py==3.1.0", "astroid==3.3.9", "django-crum==0.7.9", "sphinxcontrib-devhelp==2.0.0", "attrs==25.3.0", "setuptools==79.0.1", "pyyaml==6.0.2", "django-waffle==4.2.0", "twine==6.1.0", "colorama==0.4.6", "click-log==0.4.0", "cryptography==44.0.2", "sphinxcontrib-qthelp==2.0.0", "rsa==4.9.1", "filelock==3.18.0", "hypothesis-pytest==0.19.0", "cffi==1.17.1", "isort==6.0.1", "pylint-django==2.6.1", "sailthru-client==2.2.3", "jedi==0.19.2", "keyring==25.6.0", "accessible-pygments==0.0.5", "snowballstemmer==2.2.0", "certifi==2025.1.31", "nh3==0.2.21", "grpcio==1.72.0", "coverage[toml]==7.8.0", "imagesize==1.4.1", "protobuf==6.30.2", "google-cloud-core==2.4.3", "edx-i18n-tools==1.8.0", "requests-toolbelt==1.0.0", "sphinxcontrib-htmlhelp==2.1.0", "virtualenv==20.30.0", "text-unidecode==1.3", "django-push-notifications==3.2.1", "cachetools==5.5.2", "python-slugify==8.0.4", "cachecontrol==0.14.2", "mock==5.2.0", "wheel==0.45.1", "alabaster==1.0.0", "rfc3986==2.0.0", "tomlkit==0.13.2", "jaraco-functools==4.1.0", "pycodestyle==2.13.0", "six==1.17.0", "pytest-randomly==3.16.0", "build==1.2.2.post1", "sphinx-book-theme==1.1.4", "uritemplate==4.1.1", "sqlparse==0.5.3"]',6,'["edx-i18n-tools", "edx-django-utils", "pytest-django", "code-annotations", "pylint-django", "django-waffle"]',8,'["edx-i18n-tools", "django-crum", "edx-django-utils", "newrelic", "pytest-django", "code-annotations", "pylint-django", "django-waffle"]',4,'["edx-i18n-tools", "edx-django-utils", "django-waffle", "code-annotations"]',1,NULL,1,0,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,8,'{"total_duration": "6250 minutes 56 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 54 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 51 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 51 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 45 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}]}','Other','2017-08-08 18:12:33','master','edX''s Automated Communication Engine',593,26,1,0,0,0,0,0,0,'2026-05-30 15:07:05','GNU AGPLv3',5,1,0,194,665,0,4491,132551,0,1,1,0,0,1,0,0,'','openedx',0,'[''https://open-edx-backstage.herokuapp.com/catalog/default/component/edx-ace: 404'', ''https://travis-ci.com/edx/edx-ace: 415'', ''https://www.gnu.org/licenses/agpl-3.0: HTTPSConnectionPool(host=\''www.gnu.org\'', port=443): Max retries exceeded with url: /licenses/agpl-3.0 (Caused by NewConnectionError("HTTPSConnection(host=\''www.gnu.org\'', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable"))'']',1,'[''https://edx-ace.readthedocs.io/en/latest/'', ''https://github.com/openedx/edx-ace/blob/master/docs/getting_started.rst'', ''https://discuss.openedx.org'', ''https://github.com/openedx/edx-ace/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://github.com/openedx/edx-ace/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/edx-ace/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/pypi/v/edx-ace.svg'', ''https://pypi.python.org/pypi/edx-ace/'', ''https://travis-ci.com/edx/edx-ace.svg?branch=master'', ''http://codecov.io/github/edx/edx-ace/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-ace?branch=master'', ''https://readthedocs.org/projects/edx-ace/badge/?version=latest'', ''http://edx-ace.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/edx-ace.svg'', ''https://img.shields.io/github/license/edx/edx-ace.svg'', ''https://github.com/openedx/edx-ace/blob/master/LICENSE.txt'', ''https://img.shields.io/badge/License-AGPL_v3-blue.svg'', ''https://github.com/openedx/edx-ace/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/edx-ace/actions/workflows/ci.yml'', ''https://github.com/openedx/edx-ace/actions/workflows/pypi-publish.yml/badge.svg'', ''https://github.com/openedx/edx-ace/actions/workflows/pypi-release.yml'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-ace','[''3'', ''3.12'']','https://github.com/openedx/edx-ace',1,1,1,0,0,0,0,0,0,'[]','[]','[]','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/repo-tools',NULL,NULL,NULL,1,'2026-06-08',1,1,0,1,0,0,'[]',0,'',0,0,'','',0,'[]',0,'[]',0,'[]',0,'[]',0,'[]',0,NULL,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,57,'{"total_duration": "2453 minutes 34 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 48 seconds"}, {"name": "Dependabot", "duration": "0 minutes 44 seconds"}, {"name": "build (ubuntu-latest, 3.12)", "duration": "0 minutes 26 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}]}','Other','2013-10-16 22:30:05','master','Tools for repo maintenance, etc.',1859,46,1,0,0,0,0,0,0,'2026-06-06 06:02:25','Apache License 2.0',25,1,0,0,0,0,1205,418378,3941,0,0,0,0,1,0,0,'','openedx',2,'[]',0,'[''https://github.com/settings/tokens'', ''https://docs.astral.sh/uv/'', ''https://astral.sh/uv/install.sh'', ''https://github.com/openedx/repo-tools/blob/7aa8bda466d1925c56d4ad6e3b2bdd87b1f83148/README.md'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-admin-portal',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,73,0,'',0,'{}',53,20,'{"@edx/browserslist-config": "1.5.0", "@edx/typescript-config": "1.1.0", "@openedx/frontend-build": "14.5.0", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "14.6.1", "@types/color": "^4.2.0", "@types/react-instantsearch-dom": "^6.12.8", "axios-mock-adapter": "1.22.0", "css-loader": "5.2.7", "husky": "0.14.3", "identity-obj-proxy": "3.0.0", "jest-canvas-mock": "^2.4.0", "jest-localstorage-mock": "^2.4.22", "patch-package": "8.0.0", "postcss": "8.4.24", "react-test-renderer": "^18.3.1", "resize-observer-polyfill": "1.5.1", "ts-jest": "^29.0.0"}','{"@babel/plugin-transform-runtime": "7.25.9", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/frontend-enterprise-catalog-search": "11.0.1", "@edx/frontend-enterprise-hotjar": "7.2.0", "@edx/frontend-enterprise-logistration": "9.2.1", "@edx/frontend-enterprise-utils": "10.0.0", "@edx/frontend-platform": "8.5.5", "@edx/openedx-atlas": "^0.6.0", "@openedx/paragon": "22.20.3", "@tanstack/react-query": "4.36.1", "@tanstack/react-query-devtools": "4.36.1", "algoliasearch": "4.24.0", "canvas-confetti": "^1.9.3", "classnames": "2.5.1", "color": "3.2.1", "color-contrast-checker": "^2.1.0", "core-js": "3.40.0", "dash-embedded-component": "file:packages/dash-embedded-component-2.0.2.tgz", "dayjs": "^1.11.9", "file-saver": "1.3.8", "font-awesome": "4.7.0", "history": "4.10.1", "html-react-parser": "3.0.16", "jest-environment-jsdom": "29.7.0", "lodash-es": "^4.17.21", "plotly.js": "^2.33.0", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", "react-helmet": "6.1.0", "react-instantsearch-dom": "6.40.4", "react-markdown": "6.0.3", "react-plotly.js": "^2.6.0", "react-redux": "7.2.9", "react-router": "6.29.0", "react-router-dom": "6.29.0", "react-select": "^5.10.2", "redux": "4.2.1", "redux-devtools-extension": "2.13.9", "redux-form": "8.3.10", "redux-logger": "3.0.6", "redux-mock-store": "1.5.5", "redux-thunk": "2.4.2", "regenerator-runtime": "0.14.1", "sanitize-html": "2.14.0", "timeago.js": "4.0.2", "universal-cookie": "4.0.4", "use-context-selector": "^1.4.1", "uuid": "9.0.1", "validator": "13.15.22"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,196,'{"total_duration": "4 minutes 12 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 8 seconds"}, {"name": "Dependabot", "duration": "0 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2018-05-10 13:44:58','master','edx-portal is a frontend that provides branded learning experiences.',25154,45,1,0,0,0,0,0,0,'2026-06-08 01:14:20','GNU AGPLv3',55,1,0,636,890,4234258,1759,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx/frontend-app-admin-portal/actions/workflows/ci.yml/badge.svg'', ''https://codecov.io/gh/edx/frontend-app-admin-portal/branch/master/graph/badge.svg'', ''https://github.com/openedx/devstack'', ''https://github.com/openedx/edx-analytics-data-api'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-admin-portal/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-02-07','2024-05-22','6',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]','[]','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/tutor-contrib-aspects',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,75,0,'[]',0,'',0,0,'','',38,'["platformdirs==4.10.0", "jinja2==3.1.6", "markupsafe==3.0.3", "urllib3==2.7.0", "click==8.2.1", "durationpy==0.10", "openedx-atlas==0.7.0", "idna==3.17", "mypy-extensions==1.1.0", "pycryptodome==3.23.0", "importlib-resources==7.1.0", "oauthlib==3.3.1", "pathspec==1.1.1", "pyyaml==6.0.3", "importlib-metadata==9.0.0", "packaging==26.2", "mypy==2.1.0", "websocket-client==1.9.0", "librt==0.11.0", "black==26.5.1", "shandy-sqlfmt[jinjafmt]==0.26.0", "ast-serialize==0.5.0", "ruamel-yaml==0.19.1", "requests==2.34.2", "bcrypt==5.0.0", "tutor-mfe==21.0.0", "tutor==21.0.7", "python-dateutil==2.9.0.post0", "appdirs==1.4.4", "kubernetes==35.0.0", "typing-extensions==4.15.0", "pytokens==0.4.1", "zipp==4.1.0", "tqdm==4.67.3", "charset-normalizer==3.4.7", "six==1.17.0", "requests-oauthlib==2.0.0", "certifi==2026.5.20"]',75,'["platformdirs==4.10.0", "jinja2==3.1.6", "markupsafe==3.0.3", "urllib3==2.7.0", "pygments==2.20.0", "astroid==4.0.4", "click==8.2.1", "dill==0.4.1", "durationpy==0.10", "openedx-atlas==0.7.0", "pyinstaller-hooks-contrib==2026.5", "readme-renderer==44.0", "idna==3.17", "mypy-extensions==1.1.0", "pycryptodome==3.23.0", "requests-oauthlib==2.0.0", "rich==15.0.0", "requests-toolbelt==1.0.0", "importlib-resources==7.1.0", "oauthlib==3.3.1", "jaraco-functools==4.5.0", "pathspec==1.1.1", "pyyaml==6.0.3", "cffi==2.0.0", "markdown-it-py==4.2.0", "pyinstaller==6.20.0", "importlib-metadata==9.0.0", "packaging==26.2", "pylint==4.0.5", "isort==8.0.1", "mypy==2.1.0", "pycparser==3.0", "nh3==0.3.5", "tomlkit==0.15.0", "websocket-client==1.9.0", "librt==0.11.0", "black==26.5.1", "shandy-sqlfmt[jinjafmt]==0.26.0", "ast-serialize==0.5.0", "ruamel-yaml==0.19.1", "cryptography==48.0.0", "requests==2.34.2", "bcrypt==5.0.0", "tutor-mfe==21.0.0", "tutor==21.0.7", "docutils==0.23", "wheel==0.47.0", "setuptools==82.0.1", "id==1.6.1", "jeepney==0.9.0", "appdirs==1.4.4", "python-dateutil==2.9.0.post0", "pip==26.1.2", "pyproject-hooks==1.2.0", "kubernetes==35.0.0", "twine==6.2.0", "typing-extensions==4.15.0", "mccabe==0.7.0", "keyring==25.7.0", "mdurl==0.1.2", "secretstorage==3.5.0", "click==8.4.1", "pip-tools==7.5.3", "jaraco-classes==3.4.0", "pytokens==0.4.1", "zipp==4.1.0", "rfc3986==2.0.0", "charset-normalizer==3.4.7", "tqdm==4.67.3", "build==1.5.0", "more-itertools==11.1.0", "six==1.17.0", "jaraco-context==6.1.2", "altgraph==0.17.5", "certifi==2026.5.20"]',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,20,'{"total_duration": "6465 minutes 36 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 20 seconds"}, {"name": "release", "duration": "0 minutes 52 seconds"}, {"name": "tests", "duration": "0 minutes 39 seconds"}, {"name": "release", "duration": "0 minutes 10 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2023-02-07 05:22:39','main','The Open Analytics Reference System - Tutor plugin',3671,30,1,0,0,0,0,0,0,'2026-06-08 01:09:39','Apache License 2.0',9,0,0,2318,0,0,3702,235250,17668,0,0,0,0,1,0,0,'','openedx',2,'[''https://github.com/openedx/frontend-plugin-aspects: 504'']',0,'[''https://docs.tutor.overhang.io'', ''https://clickhouse.com'', ''https://superset.apache.org'', ''https://openfun.github.io/ralph/'', ''https://vector.dev'', ''https://event-routing-backends.readthedocs.io/en/latest/'', ''https://www.getdbt.com'', ''https://github.com/openedx/aspects-dbt'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/concepts/aspects_overview.html'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/02_upgrade.html'', ''https://docs.tutor.overhang.io/install.html'', ''https://docs.tutor.edly.io/gettingstarted/whatsnext.html'', ''https://github.com/eduNEXT/tutor-contrib-pod-autoscaling'', ''https://pypi.org'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/3861512203/Aspects+Beta'', ''https://superset.apache.org/docs'', ''https://www.getdbt.com/docs/'', ''https://vector.dev/docs/'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/aspects_production_configuration.html'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/reference/in_context_dashboards.html'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,'{ + "Code": "https://github.com/openedx/tutor-contrib-aspects", + "Issue tracker": "https://github.com/openedx/tutor-contrib-aspects/issues", + }',0,'tutor-contrib-aspects','[''3.11'', ''3.12'']','https://github.com/openedx/tutor-contrib-aspects',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/tutor-contrib-platform-notifications',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "", "checks": []}','Other','2025-09-25 17:27:16','main','A Tutor plugin to manage configuration and plugin slots for the Notifications tray feature.',49,7,1,0,0,0,0,0,0,'2026-05-31 19:03:12','GNU AGPLv3',0,0,0,0,0,0,1098,4344,0,0,0,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/tutor-contrib-notifications: 504'']',0,'[''https://docs.tutor.edly.io'', ''https://docs.openedx.org/en/latest/learners/sfd_notifications/index.html'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-components-tinymce-advanced-plugins',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,7,0,'',0,'{}',1,6,'{"@openedx/frontend-build": "14.6.3", "@babel/preset-env": "^7.22.0", "babel-jest": "^29.5.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0"}','{"tinymce": "^5.10.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "1 minutes 0 seconds", "checks": [{"name": "Release", "duration": "1 minutes 0 seconds"}]}','Other','2023-08-08 21:27:45','main','',433,7,1,0,0,0,0,0,0,'2026-05-19 11:22:23','GNU AGPLv3',0,1,0,0,0,9990,3027,0,266,0,0,0,0,1,0,0,'','openedx',0,'[''https://www.npmjs.com/package/frontend-components-tinymce-advanced-plugins: 403'', ''https://github.com/frontend-components-tinymce-advanced-plugins/blob/master/LICENSE: 404'']',0,'[''https://img.shields.io/npm/v/frontend-components-tinymce-advanced-plugins.svg'', ''https://img.shields.io/npm/dt/frontend-components-tinymce-advanced-plugins.svg'', ''https://img.shields.io/npm/l/frontend-components-tinymce-advanced-plugins.svg'']',1,1,0,0,'','',1,'2026-03-30',NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-calc',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,64,0,'[]',0,'',0,0,'','',6,'["mpmath==1.3.0", "lxml==6.0.2", "pyparsing==3.3.2", "numpy==2.4.2", "markupsafe==3.0.3", "sympy==1.14.0"]',64,'["tomlkit==0.14.0", "code-annotations==2.3.2", "charset-normalizer==3.4.5", "pip==26.0.1", "pip-tools==7.5.3", "mccabe==0.7.0", "astroid==4.0.4", "pylint-celery==0.3", "annotated-doc==0.0.4", "numpy==2.4.2", "coverage==7.13.4", "packaging==26.0", "certifi==2026.2.25", "pip==24.2", "rich==14.3.3", "dill==0.4.1", "sympy==1.14.0", "python-slugify==8.0.4", "coveralls==4.1.0", "text-unidecode==1.3", "platformdirs==4.9.4", "wheel==0.45.1", "distlib==0.4.0", "six==1.17.0", "filelock==3.25.0", "pyyaml==6.0.3", "virtualenv==21.1.0", "markupsafe==3.0.3", "jinja2==3.1.6", "setuptools==78.1.0", "shellingham==1.5.4", "cachetools==7.0.3", "pylint==4.0.5", "markdown-it-py==4.0.0", "setuptools==82.0.0", "tox==4.49.0", "python-discovery==1.1.1", "pyproject-hooks==1.2.0", "isort==8.0.1", "idna==3.11", "pylint-django==2.7.0", "pytest==9.0.2", "stevedore==5.7.0", "pylint-plugin-utils==0.9.0", "wheel==0.46.3", "iniconfig==2.3.0", "build==1.4.0", "edx-lint==5.6.0", "tomli-w==1.2.0", "coverage[toml]==7.13.4", "click==8.3.1", "colorama==0.4.6", "mpmath==1.3.0", "lxml==6.0.2", "pycodestyle==2.14.0", "pyproject-api==1.10.0", "mdurl==0.1.2", "pygments==2.19.2", "urllib3==2.6.3", "typer==0.24.1", "requests==2.32.5", "pyparsing==3.3.2", "pluggy==1.6.0", "click-log==0.4.0"]',2,'["pylint-django", "code-annotations"]',2,'["pylint-django", "code-annotations"]',1,'["code-annotations"]',1,NULL,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,14,'{"total_duration": "2175 minutes 30 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 16 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 8 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, py)", "duration": "0 minutes 46 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}]}','Other','2019-04-19 21:38:24','master','',235,5,1,0,0,0,0,0,0,'2026-06-08 03:45:09','GNU AGPLv3',2,1,0,372,0,0,1345,108019,0,0,0,0,0,1,0,0,'','openedx',2,'[''https://docs.openedx.org/projects/: 404'', ''https://docs.openedx.org/projects/openedx-calc: 404'', ''https://github.com/openedx/openedx-calc/blob/main/LICENSE.txt: 404'']',1,'[''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://discuss.openedx.org'', ''https://github.com/openedx/openedx-calc/issues'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://github.com/openedx/edx-platform'', ''https://github.com/openedx/openedx-calc/blob/master/LICENSE'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/openedx-calc'', ''https://img.shields.io/pypi/v/openedx-calc.svg'', ''https://pypi.python.org/pypi/openedx-calc/'', ''https://github.com/openedx/openedx-calc/workflows/Python%20CI/badge.svg?branch=main'', ''https://github.com/openedx/openedx-calc/actions'', ''https://codecov.io/github/openedx/openedx-calc/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/openedx-calc?branch=main'', ''https://readthedocs.org/projects/openedx-calc/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/openedx-calc.svg'', ''https://img.shields.io/github/license/openedx/openedx-calc.svg'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'openedx-calc','[''3'', ''3.12'']','https://github.com/openedx/openedx-calc',1,1,1,0,0,0,0,0,0,'[]','[]','[''gfortran'', ''python3-dev'', ''liblapack-dev'', ''libblas-dev'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-demo-course',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,27,'{"total_duration": "24686 minutes 53 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 23 seconds"}, {"name": "Dependabot", "duration": "0 minutes 19 seconds"}, {"name": "source_and_tars_match", "duration": "0 minutes 6 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 53 seconds"}]}','Other','2013-09-30 15:54:46','master','A demonstration course that can be imported into an Open edX instance',185403,74,1,0,0,0,0,0,0,'2026-05-15 15:55:38','GNU AGPLv3',0,1,226293,0,3278834,246757,1717,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://apps.training.openedx.io/catalog/courses/course-v1'', ''https://training.openedx.io'', ''http://creativecommons.org/licenses/by-nc-sa/3.0/us/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-ora-grading',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,60,0,'',0,'{}',47,13,'{"@edx/browserslist-config": "^1.3.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "axios-mock-adapter": "^1.20.0", "fetch-mock": "^9.11.0", "identity-obj-proxy": "^3.0.0", "jest": "29.7.0", "jest-environment-jsdom": "^29.7.0", "jest-expect-message": "^1.0.2", "react-dev-utils": "^12.0.1", "react-test-renderer": "^18.3.1", "redux-mock-store": "^1.5.5"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.6.0", "@fortawesome/fontawesome-svg-core": "^1.2.36", "@fortawesome/free-brands-svg-icons": "^5.15.4", "@fortawesome/free-solid-svg-icons": "^5.15.4", "@fortawesome/react-fontawesome": "^0.2.0", "@openedx/paragon": "^23.4.5", "@redux-beacon/segment": "^1.1.0", "@redux-devtools/extension": "3.0.0", "@reduxjs/toolkit": "^1.6.1", "@testing-library/user-event": "^14.0.0", "@zip.js/zip.js": "^2.4.6", "axios": "^0.28.0", "better-react-mathjax": "^2.0.3", "classnames": "^2.3.1", "core-js": "3.35.1", "dompurify": "^2.3.1", "email-prop-type": "^3.0.1", "file-saver": "^2.0.5", "filesize": "^8.0.6", "font-awesome": "4.7.0", "history": "5.3.0", "html-react-parser": "^1.3.0", "lodash": "^4.17.21", "moment": "^2.29.3", "prop-types": "15.8.1", "query-string": "7.1.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "^6.1.0", "react-intl": "6.4.7", "react-pdf": "^7.0.0", "react-redux": "^7.2.9", "react-router": "6.21.3", "react-router-dom": "6.21.3", "react-router-redux": "^5.0.0-alpha.9", "redux": "4.2.1", "redux-beacon": "^2.1.0", "redux-logger": "3.0.6", "redux-thunk": "2.4.2", "regenerator-runtime": "^0.14.0", "reselect": "^4.0.0", "util": "^0.12.4", "whatwg-fetch": "^3.6.2"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,29,'{"total_duration": "2 minutes 52 seconds", "checks": [{"name": "tests", "duration": "2 minutes 52 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2021-09-16 22:57:46','master','Open Response Assessment - Enhanced Staff Grader - Allows graders to easily review, evaluate and grade ORAs',6224,67,1,0,0,0,0,0,0,'2026-05-29 22:27:46','GNU AGPLv3',6,1,0,0,399,500997,2063,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-ora-grading','openedx',0,'[''https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/ora_staff_grader: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora-grading: 404'', ''https://github.com/openedx/frontend-app-ora-grading/blob/master/LICENSE: 504'']',0,'[''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://github.com/nvm-sh/nvm'', ''https://openedx.github.io/frontend-platform/'', ''https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-ora-grading/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-app-ora-grading.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-app-ora-grading/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/frontend-app-ora-grading?branch=master'']',1,1,0,0,'','',1,'2026-04-02','2025-04-09','5',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-webhooks-data-schema',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,74,0,'[]',0,'',0,0,'','',2,'["pyyaml==6.0.2", "schema==0.7.7"]',74,'["urllib3==2.2.3", "pylint-celery==0.3", "schema==0.7.7", "colorama==0.4.6", "pyproject-hooks==1.2.0", "sphinx==8.2.3", "sphinxcontrib-jsmath==1.0.1", "readme-renderer==44.0", "code-annotations==2.3.0", "platformdirs==4.3.7", "edx-lint==5.6.0", "pip==24.2", "dill==0.4.0", "click-log==0.4.0", "idna==3.10", "diff-cover==9.2.4", "text-unidecode==1.3", "chardet==5.2.0", "stevedore==5.4.1", "certifi==2025.4.26", "astroid==3.3.9", "docutils==0.21.2", "requests==2.32.3", "soupsieve==2.7", "six==1.17.0", "babel==2.17.0", "nh3==0.2.21", "pluggy==1.5.0", "pbr==6.1.1", "accessible-pygments==0.0.5", "virtualenv==20.30.0", "charset-normalizer==3.4.1", "snowballstemmer==2.2.0", "click==8.1.8", "pytest-cov==6.1.1", "pytest==8.3.5", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "filelock==3.18.0", "pylint-plugin-utils==0.8.2", "sphinxcontrib-htmlhelp==2.1.0", "tomlkit==0.13.2", "tox==4.25.0", "pylint==3.3.6", "pip-tools==7.4.1", "pygments==2.19.1", "mccabe==0.7.0", "pyyaml==6.0.2", "markupsafe==3.0.2", "setuptools==80.1.0", "beautifulsoup4==4.13.4", "doc8==1.1.2", "distlib==0.3.9", "imagesize==1.4.1", "jinja2==3.1.6", "build==1.2.2.post1", "wheel==0.45.1", "roman-numerals-py==3.1.0", "sphinxcontrib-qthelp==2.0.0", "alabaster==1.0.0", "coverage[toml]==7.8.0", "pyproject-api==1.9.0", "packaging==25.0", "cachetools==5.5.2", "sphinx-book-theme==1.1.4", "typing-extensions==4.13.2", "iniconfig==2.1.0", "isort==6.0.1", "restructuredtext-lint==1.4.0", "sphinxcontrib-applehelp==2.0.0", "pycodestyle==2.13.0", "pydata-sphinx-theme==0.15.4", "python-slugify==8.0.4", "pylint-django==2.6.1"]',2,'["code-annotations", "pylint-django"]',2,'["code-annotations", "pylint-django"]',1,'["code-annotations"]',0,NULL,0,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,5,'{"total_duration": "", "checks": []}','Other','2020-08-07 11:03:24','main','Schema validators for the data in the (private) openedx/openedx-webhooks-data repo',113,6,1,0,0,0,0,0,0,'2025-07-30 09:30:08','Apache License 2.0',1,0,0,0,0,0,2391,11098,0,1,1,0,0,1,0,0,'','openedx',5,'[]',1,'[''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'repo-tools-data-schema','[''3'', ''3.11'', ''3.12'']','https://github.com/openedx/repo-tools-data-schema',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/enterprise-integrated-channels',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,172,0,'[]',0,'',0,0,'','',70,'["billiard==4.2.4", "celery==5.6.3", "click-didyoumean==0.3.1", "certifi==2026.4.22", "jsonfield==3.2.0", "sqlparse==0.5.5", "unicodecsv==0.14.1", "django==5.2.14", "tomlkit==0.15.0", "django-simple-history==3.11.0", "click-plugins==1.1.1.2", "prompt-toolkit==3.0.52", "tzdata==2026.2", "snowflake-connector-python==4.4.0", "pyjwt[crypto]==2.12.1", "pynacl==1.6.2", "vine==5.1.0", "slumber==0.7.1", "cryptography==48.0.0", "djangorestframework==3.17.1", "pymongo==4.17.0", "django-crum==0.7.9", "asn1crypto==1.5.1", "botocore==1.43.6", "django-model-utils==5.0.0", "typing-extensions==4.15.0", "jmespath==1.1.0", "dnspython==2.8.0", "django-oauth-toolkit==3.2.0", "charset-normalizer==3.4.7", "kombu==5.6.2", "requests==2.33.1", "edx-drf-extensions==10.6.0", "cffi==2.0.0", "edx-rbac==3.0.0", "filelock==3.29.0", "platformdirs==4.9.6", "pyopenssl==26.2.0", "wcwidth==0.7.0", "asgiref==3.11.1", "openedx-atlas==0.7.0", "django-waffle==5.0.0", "jwcrypto==1.5.7", "amqp==5.3.1", "semantic-version==2.10.0", "edx-tincan-py35==2.0.0", "edx-rest-api-client==7.0.0", "s3transfer==0.17.0", "tzlocal==5.3.1", "django-fernet-fields-v2==0.9", "pycparser==3.0", "click==8.3.3", "python-dateutil==2.9.0.post0", "stevedore==5.7.0", "idna==3.14", "django-object-actions==5.0.1", "click-repl==0.3.0", "oauthlib==3.3.1", "psutil==7.2.2", "six==1.17.0", "sortedcontainers==2.4.0", "boto3==1.43.6", "urllib3==2.7.0", "django-config-models==3.0.0", "pytz==2026.2", "drf-jwt==1.19.2", "packaging==26.2", "edx-django-utils==8.0.1", "edx-opaque-keys[django]==4.0.0", "aniso8601==10.0.1"]',172,'["importlib-metadata==9.0.0", "pydata-sphinx-theme==0.16.1", "celery==5.6.3", "sqlparse==0.5.5", "pluggy==1.6.0", "tomlkit==0.15.0", "jeepney==0.9.0", "tzdata==2026.2", "snowflake-connector-python==4.4.0", "pip-tools==7.5.3", "pylint==4.0.5", "vine==5.1.0", "markdown-it-py==4.2.0", "django-crum==0.7.9", "babel==2.18.0", "pycodestyle==2.14.0", "requests-toolbelt==1.0.0", "django-model-utils==5.0.0", "wheel==0.47.0", "dnspython==2.8.0", "snowballstemmer==3.0.1", "beautifulsoup4==4.14.3", "restructuredtext-lint==2.0.2", "charset-normalizer==3.4.7", "python-slugify==8.0.4", "tox==4.53.1", "pylint-celery==0.3", "responses==0.26.0", "edx-drf-extensions==10.6.0", "cffi==2.0.0", "platformdirs==4.9.6", "roman-numerals==4.1.0", "polib==1.2.0", "social-auth-core==4.9.1", "fastavro==1.12.2", "jaraco-functools==4.4.0", "django-fernet-fields-v2==0.9", "id==1.6.1", "pip==26.1.1", "pyproject-api==1.10.0", "ddt==1.3.1", "colorama==0.4.6", "pytest-cov==7.1.0", "django-object-actions==5.0.1", "build==1.5.0", "pytz==2026.2", "text-unidecode==1.3", "python-dateutil==2.9.0.post0", "sphinxcontrib-htmlhelp==2.1.0", "isort==8.0.1", "jsonfield==3.2.0", "twine==6.2.0", "django==5.2.14", "factory-boy==3.3.3", "click-plugins==1.1.1.2", "docutils==0.21.2", "pygments==2.20.0", "code-annotations==2.3.2", "testfixtures==11.0.0", "djangorestframework==3.17.1", "asn1crypto==1.5.1", "typing-extensions==4.15.0", "jmespath==1.1.0", "django-oauth-toolkit==3.2.0", "rfc3986==2.0.0", "coverage[toml]==7.14.0", "kombu==5.6.2", "dill==0.4.1", "freezegun==1.5.5", "python3-openid==3.2.0", "sphinxcontrib-applehelp==2.0.0", "asgiref==3.11.1", "iniconfig==2.3.0", "openedx-atlas==0.7.0", "amqp==5.3.1", "tomli-w==1.2.0", "click-log==0.4.0", "pytest==9.0.3", "rich==15.0.0", "sphinxcontrib-devhelp==2.0.0", "click-repl==0.3.0", "boto3==1.43.6", "django-config-models==3.0.0", "sphinxcontrib-jsmath==1.0.1", "aniso8601==10.0.1", "sphinxcontrib-qthelp==2.0.0", "billiard==4.2.4", "backports-tarfile==1.2.0", "unicodecsv==0.14.1", "django-simple-history==3.11.0", "alabaster==1.0.0", "pyjwt[crypto]==2.12.1", "pynacl==1.6.2", "cachetools==7.1.1", "edx-i18n-tools==2.0.0", "slumber==0.7.1", "cryptography==48.0.0", "imagesize==2.0.0", "pylint-plugin-utils==0.9.0", "pymongo==4.17.0", "pydocstyle==6.3.0", "chardet==7.4.3", "botocore==1.43.6", "django-countries==8.2.0", "sphinxcontrib-serializinghtml==2.0.0", "requests==2.33.1", "pyopenssl==26.2.0", "edx-rbac==3.0.0", "jaraco-context==6.1.2", "python-discovery==1.3.0", "jwcrypto==1.5.7", "semantic-version==2.10.0", "edx-rest-api-client==7.0.0", "s3transfer==0.17.0", "attrs==26.1.0", "openedx-events==10.5.0", "edx-ccx-keys==2.0.2", "jinja2==3.1.6", "diff-cover==10.2.0", "sphinx==9.0.4", "secretstorage==3.5.0", "mccabe==0.7.0", "urllib3==2.7.0", "psutil==7.2.2", "six==1.17.0", "markupsafe==3.0.3", "sphinx-book-theme==1.2.0", "keyring==25.7.0", "zipp==3.23.1", "edx-django-utils==8.0.1", "readme-renderer==44.0", "edx-tincan-py35==2.0.0", "lxml[html-clean]==6.1.0", "edx-opaque-keys[django]==4.0.0", "tzlocal==5.3.1", "click-didyoumean==0.3.1", "certifi==2026.4.22", "prompt-toolkit==3.0.52", "defusedxml==0.7.1", "faker==40.15.0", "soupsieve==2.8.3", "distlib==0.4.0", "accessible-pygments==0.0.5", "nh3==0.3.5", "pytest-django==4.12.0", "pyyaml==6.0.3", "doc8==2.0.0", "wcwidth==0.7.0", "filelock==3.29.0", "path==16.16.0", "edx-lint==6.1.0", "django-waffle==5.0.0", "lxml-html-clean==0.4.4", "jaraco-classes==3.4.0", "social-auth-app-django==5.4.3", "pycparser==3.0", "setuptools==82.0.1", "pylint-django==2.7.0", "virtualenv==21.3.1", "click==8.3.3", "stevedore==5.7.0", "mdurl==0.1.2", "idna==3.14", "mock==5.2.0", "oauthlib==3.3.1", "sortedcontainers==2.4.0", "requests-oauthlib==2.0.0", "drf-jwt==1.19.2", "packaging==26.2", "pyproject-hooks==1.2.0", "astroid==4.0.4", "more-itertools==11.0.2"]',16,'["django-config-models", "django-countries", "django-oauth-toolkit", "django-object-actions", "factory-boy", "edx-rbac", "edx-i18n-tools", "social-auth-app-django", "edx-django-utils", "django-waffle", "pytest-django", "edx-drf-extensions", "code-annotations", "edx-rest-api-client", "pylint-django", "djangorestframework"]',21,'["django-countries", "pytest-django", "pylint-django", "django-oauth-toolkit", "django-model-utils", "edx-django-utils", "django-waffle", "code-annotations", "edx-rest-api-client", "django-object-actions", "django-crum", "drf-jwt", "edx-rbac", "edx-i18n-tools", "edx-drf-extensions", "djangorestframework", "django-simple-history", "django-config-models", "jsonfield", "factory-boy", "social-auth-app-django"]',11,'["django-config-models", "django-countries", "django-oauth-toolkit", "edx-rbac", "edx-i18n-tools", "social-auth-app-django", "edx-django-utils", "django-waffle", "edx-drf-extensions", "code-annotations", "edx-rest-api-client"]',1,NULL,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,7,'{"total_duration": "7906 minutes 40 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.11, django52)", "duration": "4 minutes 15 seconds"}, {"name": "tests (ubuntu-latest, 3.11, django42)", "duration": "3 minutes 47 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.11, quality)", "duration": "1 minutes 42 seconds"}, {"name": "tests (ubuntu-latest, 3.11, pii_check)", "duration": "0 minutes 37 seconds"}, {"name": "push", "duration": "0 minutes 18 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}]}','Other','2024-10-29 13:52:13','main','',1059,16,1,0,0,0,0,0,0,'2026-06-08 00:57:30','GNU AGPLv3',7,1,0,0,39984,0,5134,2262307,0,1,1,0,0,1,0,0,'','openedx',1,'[''https://github.com/openedx/enterprise-integrated-channels/issues: 504'', ''https://github.com/openedx/enterprise-integrated-channels/workflows/Python%20CI/badge.svg?branch=main: 504'', ''https://github.com/openedx/enterprise-integrated-channels/actions: 504'', ''https://docs.openedx.org/projects/enterprise-integrated-channels: 404'']',1,'[''https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html'', ''https://github.com/openedx/enterprise-integrated-channels/blob/main/channel_integrations/README.md'', ''https://discuss.openedx.org'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/enterprise-integrated-channels'', ''https://img.shields.io/pypi/v/enterprise-integrated-channels.svg'', ''https://pypi.python.org/pypi/enterprise-integrated-channels/'', ''https://codecov.io/github/openedx/enterprise-integrated-channels/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/enterprise-integrated-channels?branch=main'', ''https://readthedocs.org/projects/enterprise-integrated-channels/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/enterprise-integrated-channels.svg'', ''https://img.shields.io/github/license/openedx/enterprise-integrated-channels.svg'', ''https://github.com/openedx/enterprise-integrated-channels/blob/main/LICENSE.txt'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'enterprise-integrated-channels','[''3'', ''3.11'']','https://github.com/openedx/enterprise-integrated-channels',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-organizations',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,37,0,'[]',0,'',0,0,'','',31,'["cryptography==48.0.0", "idna==3.17", "typing-extensions==4.15.0", "dnspython==2.8.0", "asgiref==3.11.1", "django==5.2.14", "djangorestframework==3.17.1", "semantic-version==2.10.0", "pillow==12.2.0", "pycparser==3.0", "django-waffle==5.0.0", "django-crum==0.7.9", "click==8.4.1", "certifi==2026.5.20", "edx-opaque-keys==4.0.0", "charset-normalizer==3.4.7", "requests==2.34.2", "urllib3==2.7.0", "drf-jwt==1.19.2", "sqlparse==0.5.5", "django-simple-history==3.11.0", "pymongo==4.17.0", "stevedore==5.8.0", "edx-django-utils==8.0.1", "django-model-utils==5.0.0", "psutil==7.2.2", "pynacl==1.6.2", "setuptools==82.0.1", "edx-drf-extensions==10.6.0", "pyjwt[crypto]==2.13.0", "cffi==2.0.0"]',37,'["cryptography==48.0.0", "idna==3.17", "typing-extensions==4.15.0", "wheel==0.47.0", "dnspython==2.8.0", "asgiref==3.11.1", "django==5.2.14", "djangorestframework==3.17.1", "packaging==26.2", "semantic-version==2.10.0", "pillow==12.2.0", "pycparser==3.0", "django-waffle==5.0.0", "django-crum==0.7.9", "click==8.4.1", "certifi==2026.5.20", "edx-opaque-keys==4.0.0", "pip==26.1.2", "charset-normalizer==3.4.7", "requests==2.34.2", "urllib3==2.7.0", "drf-jwt==1.19.2", "sqlparse==0.5.5", "pip-tools==7.5.3", "django-simple-history==3.11.0", "pymongo==4.17.0", "build==1.5.0", "pyproject-hooks==1.2.0", "stevedore==5.8.0", "edx-django-utils==8.0.1", "django-model-utils==5.0.0", "psutil==7.2.2", "pynacl==1.6.2", "setuptools==82.0.1", "edx-drf-extensions==10.6.0", "pyjwt[crypto]==2.13.0", "cffi==2.0.0"]',5,'["edx-drf-extensions", "edx-opaque-keys", "djangorestframework", "edx-django-utils", "django-waffle"]',9,'["drf-jwt", "edx-drf-extensions", "django-simple-history", "edx-opaque-keys", "djangorestframework", "django-model-utils", "django-crum", "edx-django-utils", "django-waffle"]',4,'["edx-opaque-keys", "edx-django-utils", "edx-drf-extensions", "django-waffle"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,8,'{"total_duration": "9501 minutes 17 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 9 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 6 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 1 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 56 seconds"}, {"name": "Dependabot", "duration": "0 minutes 39 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}]}','Other','2015-07-14 19:39:03','master','',503,36,1,0,0,0,0,0,0,'2026-06-08 05:14:33','GNU AGPLv3',3,1,0,0,0,0,1206,133892,0,0,1,0,0,1,0,0,'','openedx',4,'[]',0,'[''https://github.com/openedx/edx-organizations/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-organizations/actions?query=workflow%3A%22Python+CI%22'', ''https://coveralls.io/repos/github/edx/edx-organizations/badge.svg?branch=master'', ''https://coveralls.io/github/edx/edx-organizations?branch=master'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://groups.google.com/forum/'']',1,0,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-organizations','[''3'', ''3.12'']','https://github.com/openedx/edx-organizations',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/tutor-contrib-aspects-sample',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "1 minutes 8 seconds", "checks": [{"name": "tests (3.12)", "duration": "1 minutes 7 seconds"}, {"name": "tests (3.9)", "duration": "0 minutes 40 seconds"}]}','Other','2026-01-28 18:40:12','main','',32,1,1,0,0,0,0,0,0,'2026-05-15 14:25:45','GNU AGPLv3',1,0,0,0,0,0,1084,7373,0,0,0,0,0,1,0,0,'','openedx',0,'[''https://github.com/saraburns1/tutor-contrib-aspects-sample: 504'']',0,'[''https://docs.tutor.edly.io'', ''https://superset.apache.org/docs'', ''https://www.getdbt.com/docs/'', ''https://clickhouse.com/docs'', ''https://docs.tutor.overhang.io'', ''https://event-routing-backends.readthedocs.io/en/latest/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/credentials-themes',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,33,0,'[]',0,'{}',0,16,'{"@edx/brand": "npm:@edx/elm-theme@^1.11.1", "@openedx/paragon": "^23.14.2", "bi-app-sass": "1.1.0", "css-loader": "7.1.4", "file-loader": "6.2.0", "font-awesome": "4.7.0", "imports-loader": "5.0.0", "jquery": "3.7.1", "mini-css-extract-plugin": "2.10.2", "popper.js": "1.16.1", "sass": "1.99.0", "sass-loader": "16.0.7", "style-loader": "4.0.0", "url-loader": "4.1.1", "webpack": "5.106.0", "webpack-cli": "6.0.1"}','{}',9,'["lxml-html-clean==0.4.3", "lxml[html-clean]==6.0.2", "path==16.16.0", "edx-i18n-tools==1.9.0", "sqlparse==0.5.3", "asgiref==3.10.0", "django==4.2.25", "polib==1.2.0", "pyyaml==6.0.3"]',17,'["build==1.3.0", "setuptools==80.9.0", "lxml-html-clean==0.4.3", "lxml[html-clean]==6.0.2", "pip==25.2", "pyproject-hooks==1.2.0", "path==16.16.0", "click==8.3.0", "edx-i18n-tools==1.9.0", "packaging==25.0", "pip-tools==7.5.1", "sqlparse==0.5.3", "wheel==0.45.1", "asgiref==3.10.0", "django==4.2.25", "polib==1.2.0", "pyyaml==6.0.3"]',1,'["edx-i18n-tools"]',1,'["edx-i18n-tools"]',1,'["edx-i18n-tools"]',0,NULL,0,0,1,0,0,0,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,8,'{"total_duration": "4366 minutes 53 seconds", "checks": [{"name": "tests (3.12, 4.2)", "duration": "0 minutes 49 seconds"}, {"name": "tests (3.12, 5.2)", "duration": "0 minutes 34 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 25 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}, {"name": "Autotag commit", "duration": "0 minutes 3 seconds"}]}','Other','2017-04-12 17:59:59','master','Themes for the edX Credentials Service',4601,9,1,0,0,0,0,0,0,'2026-06-02 19:29:52','GNU AGPLv3',7,1,3514374,0,13462,2477,2742,6319,0,0,0,0,0,1,0,0,'','openedx',0,'[]',0,'[''https://docs.Djangoproject.com/en/1.11/topics/i18n/translation/'']',1,1,0,0,'','',1,'2026-04-10','2025-11-21','4',0,0,0,0,NULL,0,'edx_credentials_themes','[''3.12'']','https://github.com/openedx/credentials-themes',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-learner-portal-enterprise',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,73,0,'',0,'{}',47,26,'{"@edx/browserslist-config": "^1.5.0", "@edx/typescript-config": "^1.1.0", "@faker-js/faker": "^8.4.1", "@openedx/frontend-build": "^14.6.0", "@tanstack/eslint-plugin-query": "^4.38.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/react": "^18.3.20", "acorn": "^8.14.0", "axios": "^1.12.0", "axios-mock-adapter": "^1.22.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", "jest-fetch-mock": "^3.0.3", "jest-when": "^3.7.0", "js-yaml": "^4.1.0", "match-media-mock": "^0.1.1", "mockdate": "^3.0.5", "openapi-typescript": "^6.7.6", "prettier": "^2.8.8", "react-test-renderer": "^18.3.1", "resize-observer-polyfill": "^1.5.1", "rosie": "^2.1.1", "ts-loader": "^9.5.2"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-enterprise-catalog-search": "^11.0.2", "@edx/frontend-enterprise-hotjar": "^7.2.0", "@edx/frontend-enterprise-logistration": "^9.2.1", "@edx/frontend-enterprise-utils": "^10.0.0", "@edx/frontend-platform": "^8.5.1", "@edx/openedx-atlas": "^0.7.0", "@loadable/component": "^5.16.4", "@lukemorales/query-key-factory": "^1.3.4", "@openedx/frontend-slot-footer": "^1.2.1", "@openedx/paragon": "^22.17.0", "@tanstack/react-query": "^5.74.9", "@tanstack/react-query-devtools": "^5.74.9", "accessible-nprogress": "^2.1.2", "algoliasearch": "^4.24.0", "classnames": "^2.5.1", "color": "^3.2.1", "dayjs": "^1.11.13", "dompurify": "^2.5.4", "formik": "^2.4.6", "history": "^4.10.1", "iso-639-1": "^2.1.15", "jest-localstorage-mock": "^2.4.26", "lodash-es": "^4.17.21", "plotly.js-dist": "^2.35.3", "prop-types": "^15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-error-boundary": "^4.1.2", "react-helmet": "^6.1.0", "react-instantsearch-dom": "^6.40.4", "react-parallax": "^3.5.2", "react-redux": "^7.2.9", "react-router": "^6.29.0", "react-router-dom": "^6.29.0", "react-router-hash-link": "^2.4.3", "react-scroll": "^1.9.3", "react-string-replace": "^1.1.1", "react-transition-group": "^4.4.5", "redux": "^4.2.1", "type-fest": "^3.13.1", "universal-cookie": "^4.0.4", "uuid": "^9.0.1", "video.js": "^8.22.0", "videojs-vjstranscribe": "^1.0.3", "videojs-youtube": "^3.0.1"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,140,'{"total_duration": "310 minutes 51 seconds", "checks": [{"name": "generate", "duration": "1 minutes 10 seconds"}, {"name": "Dependabot", "duration": "0 minutes 50 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 52 seconds"}]}','Other','2019-09-23 14:57:34','master','Enterprise Learner Portal',22296,29,1,0,0,0,0,0,0,'2026-06-08 05:46:34','GNU AGPLv3',44,1,0,0,1436,2510906,1848,0,0,0,0,0,0,1,0,0,'','openedx',0,'[''https://github.com/openedx/frontend-app-learner-portal-enterprise/actions/workflows/ci.yml/badge.svg: 504'', ''https://github.com/openedx/frontend-app-learner-portal-enterpise.git: 404'', ''http://localhostL8734/: HTTPConnectionPool(host=\''localhostl8734\'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=\''localhostl8734\'', port=80): Failed to resolve \''localhostl8734\'' ([Errno -3] Temporary failure in name resolution)"))'', ''https://github.com/openedx/edx-enterprise/blob/master/enterprise/management/commands/seed_enterprise_devstack_data.py: 504'', ''https://github.com/openedx/edx-platform/blob/0e2b612c1fb4f3e385f3004801aa5b5ed0221eda/lms/envs/devstack.py: 504'', ''https://github.com/openedx/devstack: 504'']',0,'[''https://openedx.atlassian.net/wiki/spaces/ENG/pages/12550298/Developer+Onboarding'', ''https://go.microsoft.com/fwlink/?linkid=830387'', ''https://openedx.atlassian.net/wiki/spaces/SOL/pages/997654609/Hitchhiker+s+Engineer+s+Guide+to+the+Enterprise+Ecosystem'', ''https://reactjs.org/'', ''https://openedx.org/r/how-to-contribute'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-learner-portal-enterprise/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-04-02','2025-02-24','1',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/django-pyfs',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,92,0,'[]',0,'',0,0,'','',32,'["wheel==0.46.3", "asgiref==3.11.1", "python-dateutil==2.9.0.post0", "packaging==26.0", "cachetools==7.0.5", "fs==2.4.16", "jmespath==1.1.0", "distlib==0.4.0", "click==8.3.1", "botocore==1.42.68", "urllib3==2.6.3", "build==1.4.0", "platformdirs==4.9.4", "fs-s3fs==1.1.1", "tox==4.49.1", "colorama==0.4.6", "pip==26.0.1", "s3transfer==0.16.0", "filelock==3.25.2", "pluggy==1.6.0", "sqlparse==0.5.5", "tomli-w==1.2.0", "python-discovery==1.1.3", "six==1.17.0", "pyproject-hooks==1.2.0", "appdirs==1.4.4", "setuptools==81.0.0", "pip-tools==7.5.3", "pyproject-api==1.10.0", "virtualenv==21.2.0", "django==5.2.12", "boto3==1.42.68"]',92,'["asgiref==3.11.1", "cryptography==46.0.5", "pylint-plugin-utils==0.9.0", "snowballstemmer==3.0.1", "rfc3986==2.0.0", "urllib3==2.6.3", "pycodestyle==2.14.0", "platformdirs==4.9.4", "mock==5.2.0", "colorama==0.4.6", "pydocstyle==6.3.0", "requests==2.32.5", "zipp==3.23.0", "jinja2==3.1.6", "python-slugify==8.0.4", "iniconfig==2.3.0", "moto==4.2.14", "python-discovery==1.1.3", "jaraco-functools==4.4.0", "jeepney==0.9.0", "appdirs==1.4.4", "setuptools==81.0.0", "pip-tools==7.5.3", "responses==0.26.0", "wheel==0.46.3", "more-itertools==10.8.0", "docutils==0.22.4", "python-dateutil==2.9.0.post0", "cachetools==7.0.5", "jmespath==1.1.0", "click==8.3.1", "nh3==0.3.3", "stevedore==5.7.0", "id==1.6.1", "pylint-django==2.7.0", "pylint==4.0.5", "pygments==2.19.2", "werkzeug==3.1.6", "charset-normalizer==3.4.6", "jaraco-classes==3.4.0", "jaraco-context==6.1.1", "pycparser==3.0", "click-log==0.4.0", "virtualenv==21.2.0", "django==5.2.12", "boto3==1.42.68", "coverage[toml]==7.13.4", "tomlkit==0.14.0", "importlib-metadata==8.7.1", "distlib==0.4.0", "markdown-it-py==4.0.0", "botocore==1.42.68", "certifi==2026.2.25", "mdurl==0.1.2", "tox==4.49.1", "pytest-cov==7.0.0", "edx-lint==6.0.0", "isort==8.0.1", "xmltodict==1.0.4", "filelock==3.25.2", "pypng==0.20220715.0", "keyring==25.7.0", "pyyaml==6.0.3", "sqlparse==0.5.5", "tomli-w==1.2.0", "astroid==4.0.4", "pylint-celery==0.3", "six==1.17.0", "mccabe==0.7.0", "dill==0.4.1", "twine==6.2.0", "pyproject-api==1.10.0", "backports-tarfile==1.2.0", "markupsafe==3.0.3", "text-unidecode==1.3", "pytest==9.0.2", "packaging==26.0", "cffi==2.0.0", "fs==2.4.16", "readme-renderer==44.0", "secretstorage==3.5.0", "requests-toolbelt==1.0.0", "build==1.4.0", "fs-s3fs==1.1.1", "pip==26.0.1", "s3transfer==0.16.0", "pluggy==1.6.0", "pyproject-hooks==1.2.0", "rich==14.3.3", "idna==3.11", "code-annotations==2.3.2", "pytest-django==4.12.0"]',3,'["pytest-django", "pylint-django", "code-annotations"]',3,'["pytest-django", "pylint-django", "code-annotations"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,15,'{"total_duration": "2383 minutes 34 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 0 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 39 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 38 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2015-09-21 15:53:54','master','A Django module which extends pyfilesystem with several methods to make it convenient for web use. ',279,13,1,0,0,0,0,0,0,'2026-06-08 02:22:42','Apache License 2.0',5,1,0,0,0,0,2697,38658,0,1,1,0,0,1,0,0,'','openedx',5,'[''https://github.com/openedx/django-pyfs/blob/master/LICENSE.txt: 404'']',0,'[''https://img.shields.io/pypi/v/openedx-django-pyfs.svg'', ''https://pypi.python.org/pypi/openedx-django-pyfs/'', ''https://github.com/openedx/django-pyfs/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/django-pyfs/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/openedx/django-pyfs/coverage.svg?branch=master'', ''http://codecov.io/github/openedx/django-pyfs?branch=master'', ''https://img.shields.io/pypi/pyversions/openedx-django-pyfs.svg'', ''https://pypi.python.org/pypi/openedx-django-pyfs'', ''https://img.shields.io/github/license/openedx/django-pyfs.svg'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-django-pyfs','[''3'', ''3.12'']','https://github.com/openedx/django-pyfs',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/pr_watcher_notifier',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,7,'{"total_duration": "0 minutes 27 seconds", "checks": [{"name": "Run Tests (3.12)", "duration": "0 minutes 27 seconds"}, {"name": "Run Tests (3.11)", "duration": "0 minutes 25 seconds"}]}','Other','2020-04-06 17:49:34','master','A flask web application to handle pull request webhook events and send notification when watched files are changed',78,3,1,0,0,0,1,0,0,'2026-05-30 15:32:44','GNU AGPLv3',0,1,0,0,0,0,618,27452,453,0,0,0,0,1,0,0,'','openedx',0,'[''https://pythonhosted.org/Flask-Mail/: 404'']',0,'[''https://developer.github.com/webhooks/creating/'', ''https://github.com/settings/tokens'', ''https://github.com/lgp171188/custom_templates'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/sample-aspects-dbt',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "", "checks": []}','Other','2026-01-28 16:24:46','main','Example of how to create a custom dbt package to work with Aspects',15,1,1,0,0,0,0,0,0,'2026-05-13 12:09:41',NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://docs.getdbt.com/reference/resource-properties/unit-tests'', ''https://discuss.openedx.org'', ''https://docs.getdbt.com/docs/introduction'', ''https://discourse.getdbt.com/'', ''https://community.getdbt.com/'', ''https://events.getdbt.com'', ''https://blog.getdbt.com/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-proposals',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,45,0,'[]',0,'',0,0,'','',30,'["snowballstemmer==3.1.0", "certifi==2026.5.20", "jinja2==3.1.6", "sphinxcontrib-devhelp==2.0.0", "urllib3==2.7.0", "docutils==0.22.4", "sphinx-copybutton==0.5.2", "imagesize==2.0.0", "accessible-pygments==0.0.5", "sphinxcontrib-serializinghtml==2.0.0", "beautifulsoup4==4.14.3", "roman-numerals==4.1.0", "sphinxcontrib-applehelp==2.0.0", "typing-extensions==4.15.0", "pydata-sphinx-theme==0.16.1", "markupsafe==3.0.3", "packaging==26.2", "pygments==2.20.0", "soupsieve==2.8.4", "sphinxext-rediraffe==0.3.0", "alabaster==1.0.0", "sphinx==9.1.0", "charset-normalizer==3.4.7", "babel==2.18.0", "requests==2.34.2", "idna==3.17", "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-htmlhelp==2.1.0", "sphinx-book-theme==1.2.0"]',45,'["snowballstemmer==3.1.0", "anyio==4.13.0", "certifi==2026.5.20", "jinja2==3.1.6", "sphinxcontrib-devhelp==2.0.0", "urllib3==2.7.0", "docutils==0.22.4", "sphinx-copybutton==0.5.2", "watchfiles==1.2.0", "imagesize==2.0.0", "accessible-pygments==0.0.5", "sphinxcontrib-serializinghtml==2.0.0", "sphinx-autobuild==2025.8.25", "beautifulsoup4==4.14.3", "roman-numerals==4.1.0", "sphinxcontrib-applehelp==2.0.0", "typing-extensions==4.15.0", "starlette==1.2.1", "uvicorn==0.48.0", "click==8.4.1", "pydata-sphinx-theme==0.16.1", "markupsafe==3.0.3", "packaging==26.2", "pygments==2.20.0", "soupsieve==2.8.4", "sphinxext-rediraffe==0.3.0", "build==1.5.0", "alabaster==1.0.0", "colorama==0.4.6", "websockets==16.0", "setuptools==82.0.1", "charset-normalizer==3.4.7", "sphinx==9.1.0", "pip-tools==7.5.3", "babel==2.18.0", "pip==26.1.2", "requests==2.34.2", "wheel==0.47.0", "idna==3.17", "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-htmlhelp==2.1.0", "pyproject-hooks==1.2.0", "sphinx-book-theme==1.2.0", "h11==0.16.0"]',0,'[]',0,'[]',0,'[]',1,NULL,0,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,1,1,30,'{"total_duration": "0 minutes 15 seconds", "checks": [{"name": "check_for_moved_files (ubuntu-latest, 3.12)", "duration": "0 minutes 15 seconds"}]}','Other','2016-03-31 15:36:33','master','Proposals for Open edX architecture, best practices and processes ',10413,44,1,0,0,0,0,0,0,'2026-06-03 16:32:01','Other',1,1,0,0,0,0,9128,12442,0,0,0,0,0,0,0,0,'','openedx',2,'[''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'', ''https://github.com/openedx/openedx-proposals/blob/main/LICENSE.txt: 404'']',0,'[''https://docs.openedx.org/projects/openedx-proposals/'', ''https://openedx.slack.com/archives/C1L370YTZ'', ''https://discuss.openedx.org/c/announcements/17'', ''https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html'', ''https://docs.openedx.org/en/latest/developers/quickstarts/first_openedx_pr.html'', ''http://graphviz.org/'', ''https://discuss.openedx.org/'', ''https://backstage.openedx.org/catalog/default/component/openedx-proposals'', ''https://img.shields.io/badge/License-CC_BY--SA_4.0-lightgrey.svg'', ''https://readthedocs.org/projects/openedx-proposals/badge/?version=latest'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/github/contributors/openedx/openedx-proposals.svg'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-platform',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,39,0,'',0,'{}',19,20,'{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/browserslist-config": "1.5.0", "@openedx/frontend-build": "^14.3.0", "@openedx/paragon": "^23.3.0", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "16.2.0", "@testing-library/user-event": "14.6.1", "@types/node": "^25.6.0", "axios-mock-adapter": "^1.22.0", "jest-environment-jsdom": "29.7.0", "jest-localstorage-mock": "^2.4.26", "jsdoc": "^4.0.0", "nodemon": "3.1.11", "prop-types": "15.8.1", "react": "18.3.1", "react-dom": "18.3.1", "react-redux": "^8.1.1", "react-router-dom": "^6.6.1", "redux": "4.2.1"}','{"@cospired/i18n-iso-languages": "4.2.0", "@formatjs/intl-pluralrules": "4.3.3", "@formatjs/intl-relativetimeformat": "10.0.1", "axios": "1.15.0", "axios-cache-interceptor": "1.11.4", "form-urlencoded": "4.1.4", "glob": "7.2.3", "history": "4.10.1", "i18n-iso-countries": "4.3.1", "jwt-decode": "3.1.2", "localforage": "1.10.0", "localforage-memoryStorageDriver": "0.9.2", "lodash.camelcase": "4.3.0", "lodash.memoize": "4.1.2", "lodash.merge": "4.6.2", "lodash.snakecase": "4.1.1", "pubsub-js": "1.9.5", "react-intl": "6.8.9", "universal-cookie": "4.0.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,1,1,52,'{"total_duration": "26616 minutes 40 seconds", "checks": [{"name": "tests", "duration": "1 minutes 53 seconds"}, {"name": "Release", "duration": "1 minutes 25 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 59 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 56 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 53 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}','Other','2019-11-06 21:04:09','master','A framework for Open edX micro-frontend applications.',37464,89,1,0,0,0,0,0,0,'2026-06-08 00:46:43','GNU AGPLv3',24,1,0,0,237,340243,1837,0,0,0,0,0,0,0,0,0,'@edx/frontend-platform','openedx',0,'[''https://www.npmjs.com/package/@edx/frontend-platform: 403'', ''http://local.openedx.io: HTTPConnectionPool(host=\''local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://en.wikipedia.org/wiki/Convention_over_configuration: 403'', ''https://edx.github.io/frontend-platform/module-Initialization.html: 404'', ''https://edx.github.io/frontend-platform/module-Config.html: 404'', ''https://custom.example.com/educators/index.html: HTTPSConnectionPool(host=\''custom.example.com\'', port=443): Max retries exceeded with url: /educators/index.html (Caused by NameResolutionError("HTTPSConnection(host=\''custom.example.com\'', port=443): Failed to resolve \''custom.example.com\'' ([Errno -5] No address associated with hostname)"))'']',0,'[''https://github.com/openedx/frontend-platform/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-platform/actions/workflows/ci.yml'', ''https://img.shields.io/codecov/c/github/edx/frontend-platform'', ''https://codecov.io/gh/edx/frontend-platform'', ''https://img.shields.io/npm/v/@edx/frontend-platform.svg'', ''https://img.shields.io/npm/dt/@edx/frontend-platform.svg'', ''https://img.shields.io/npm/l/@edx/frontend-platform.svg'', ''https://github.com/openedx/frontend-platform/blob/master/LICENSE'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'', ''https://github.com/semantic-release/semantic-release'', ''https://openedx.github.io/frontend-platform/'', ''https://docs.openedx.org/en/latest/educators/index.html'', ''https://creativecommons.org/licenses'', ''https://www.tldrlegal.com/license/creative-commons-attribution-cc'', ''https://github.com/openedx/frontend-build'']',1,1,0,0,'','',1,'2026-04-10','2023-05-29','13',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/stylelint-config-edx',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,12,0,'',0,'{}',4,8,'{"@edx/eslint-config": "^3.0.0", "eslint": "^8.14.0", "eslint-config-airbnb": "^19.0.4", "eslint-import-resolver-webpack": "^0.13.9", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.29.4", "eslint-plugin-react-hooks": "^4.5.0"}','{"stylelint": "^15.6.0", "stylelint-config-recommended-scss": "^11.0.0", "stylelint-config-standard": "^33.0.0", "stylelint-scss": "^4.1.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,5,'{"total_duration": "0 minutes 28 seconds", "checks": [{"name": "Release", "duration": "0 minutes 28 seconds"}, {"name": "tests", "duration": "0 minutes 14 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2017-09-07 20:28:44','master','Stylelint configs for edX Sass files',341,7,1,0,0,0,0,0,0,'2026-05-20 13:18:41','Apache License 2.0',3,1,0,0,0,359,0,0,0,0,0,0,0,0,0,0,'@edx/stylelint-config-edx','openedx',0,'[''https://stylelint.io/user-guide/configuration/: 404'', ''https://www.npmjs.com/package/stylelint-config-recommended-scss: 403'', ''https://stylelint.io/user-guide/rules/function-comma-newline-after/: 404'', ''https://stylelint.io/user-guide/rules/function-parentheses-newline-inside/: 404'', ''https://stylelint.io/user-guide/rules/max-empty-lines/: 404'']',0,'[''https://github.com/openedx/stylelint-config-edx/workflows/Node%20CI/badge.svg?branch=master'', ''https://github.com/openedx/stylelint-config-edx/actions?query=workflow%3A%22Node+CI%22'', ''https://github.com/openedx/stylelint-config-edx/blob/master/LICENSE'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/sample-plugin',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "1 minutes 51 seconds", "checks": [{"name": "release", "duration": "1 minutes 14 seconds"}, {"name": "run_backend_tests / tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 34 seconds"}, {"name": "run_backend_tests / tests (ubuntu-latest, 3.12, django60)", "duration": "0 minutes 32 seconds"}, {"name": "run_backend_tests / tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 27 seconds"}, {"name": "run_backend_tests / tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 25 seconds"}, {"name": "run_backend_tests / tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 14 seconds"}, {"name": "publish_to_pypi", "duration": "0 minutes 0 seconds"}, {"name": "publish_to_npm", "duration": "0 minutes 0 seconds"}, {"name": "publish_tutor_plugin_to_pypi", "duration": "0 minutes 0 seconds"}]}','Other','2025-03-21 17:45:40','main','',973,4,1,0,0,0,0,0,0,'2026-05-30 15:33:13',NULL,2,0,0,0,873,6338,11956,87306,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-tutor-plugins/tree/main/plugins/tutor-contrib-paragon: 504'']',0,'[''https://docs.openedx.org/projects/edx-django-utils/en/latest/plugins/how_tos/how_to_create_a_plugin_app.html'', ''https://docs.openedx.org/projects/openedx-events/en/latest/'', ''https://docs.openedx.org/projects/openedx-filters/en/latest/'', ''https://docs.openedx.org/en/latest/site_ops/how-tos/use-frontend-plugin-slots.html'', ''https://github.com/openedx/paragon'', ''https://docs.tutor.edly.io/'', ''https://docs.tutor.edly.io/install.html'', ''https://github.com/overhangio/tutor-mfe'', ''https://cdn.jsdelivr.net/gh/openedx/sample-plugin@main/brand-sample/dist/light.min.css'', ''https://openedx.org/slack'', ''https://discuss.openedx.org'', ''https://github.com/openedx/sample-plugin/issues'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-core',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,155,0,'[]',0,'',0,0,'','',52,'["idna==3.18", "drf-jwt==1.19.2", "typing-extensions==4.15.0", "kombu==5.6.2", "edx-opaque-keys[django]==4.0.0", "pyjwt[crypto]==2.13.0", "sqlparse==0.5.5", "wcwidth==0.8.0", "click-repl==0.3.0", "cryptography==48.0.0", "django-model-utils==5.0.0", "cffi==2.0.0", "edx-ccx-keys==2.0.2", "python-dateutil==2.9.0.post0", "pymongo==4.17.0", "django-simple-history==3.11.0", "pynacl==1.6.2", "tzdata==2026.2", "django==5.2.15", "django-crum==0.7.9", "edx-organizations==8.0.0", "pillow==12.2.0", "charset-normalizer==3.4.7", "certifi==2026.5.20", "semantic-version==2.10.0", "billiard==4.2.4", "vine==5.1.0", "click-plugins==1.1.1.2", "tomlkit==0.15.0", "tzlocal==5.3.1", "psutil==7.2.2", "rules==3.5", "dnspython==2.8.0", "djangorestframework==3.17.1", "pycparser==3.0", "urllib3==2.7.0", "asgiref==3.11.1", "django-waffle==5.0.0", "click-didyoumean==0.3.1", "openedx-events==11.2.0", "click==8.4.1", "celery==5.6.3", "six==1.17.0", "edx-drf-extensions==10.6.0", "prompt-toolkit==3.0.52", "edx-django-utils==8.0.1", "amqp==5.3.1", "packaging==26.2", "fastavro==1.12.2", "attrs==26.1.0", "stevedore==5.8.0", "requests==2.34.2"]',155,'["lxml-html-clean==0.4.5", "typing-extensions==4.15.0", "kombu==5.6.2", "sqlparse==0.5.5", "python-discovery==1.4.0", "cachetools==7.1.4", "pprintpp==0.4.0", "pydocstyle==6.3.0", "coverage[toml]==7.14.1", "tzdata==2026.2", "nh3==0.3.5", "pyproject-hooks==1.2.0", "alabaster==1.0.0", "tomli-w==1.2.0", "jaraco-functools==4.5.0", "vine==5.1.0", "doc8==2.0.0", "ast-serialize==0.5.0", "markupsafe==3.0.3", "pyproject-api==1.10.1", "jinja2==3.1.6", "id==1.6.1", "build==1.5.0", "librt==0.11.0", "restructuredtext-lint==2.0.2", "django-stubs==6.0.5", "mysqlclient==2.2.8", "mypy-extensions==1.1.0", "openedx-events==11.2.0", "click==8.4.1", "celery==5.6.3", "six==1.17.0", "prompt-toolkit==3.0.52", "edx-i18n-tools==2.0.0", "text-unidecode==1.3", "fastavro==1.12.2", "wheel==0.47.0", "snowballstemmer==3.1.1", "stevedore==5.8.0", "drf-jwt==1.19.2", "imagesize==2.0.0", "jaraco-context==6.1.2", "click-repl==0.3.0", "docutils==0.21.2", "cryptography==48.0.0", "sphinxcontrib-django==2.5", "lxml[html-clean]==6.1.1", "django-stubs-ext==6.0.5", "python-dateutil==2.9.0.post0", "pip-tools==7.5.3", "pyyaml==6.0.3", "readme-renderer==44.0", "setuptools==82.0.1", "django-crum==0.7.9", "sphinx==9.1.0", "sphinx-book-theme==1.2.0", "pip==26.1.2", "filelock==3.29.1", "code-annotations==3.0.0", "pillow==12.2.0", "mccabe==0.7.0", "chardet==7.4.3", "roman-numerals==4.1.0", "charset-normalizer==3.4.7", "certifi==2026.5.20", "docutils==0.23", "rules==3.5", "dnspython==2.8.0", "markdown-it-py==4.2.0", "pycparser==3.0", "pytest==9.0.3", "rich==15.0.0", "sphinxcontrib-serializinghtml==2.0.0", "isort==8.0.1", "pylint-django==2.7.0", "pygments==2.20.0", "import-linter==2.11", "path==16.16.0", "pytest-django==4.12.0", "accessible-pygments==0.0.5", "packaging==26.2", "pydata-sphinx-theme==0.16.1", "attrs==26.1.0", "polib==1.2.0", "sphinxcontrib-qthelp==2.0.0", "tox==4.55.1", "pyjwt[crypto]==2.13.0", "djangorestframework-stubs==3.17.0", "jaraco-classes==3.4.0", "django-model-utils==5.0.0", "cffi==2.0.0", "edx-ccx-keys==2.0.2", "django-simple-history==3.11.0", "python-slugify==8.0.4", "ddt==1.7.2", "mypy==2.1.0", "freezegun==1.5.5", "sphinxcontrib-applehelp==2.0.0", "more-itertools==11.1.0", "virtualenv==21.4.2", "tomlkit==0.15.0", "iniconfig==2.3.0", "sphinxcontrib-htmlhelp==2.1.0", "djangorestframework==3.17.1", "babel==2.18.0", "sphinxcontrib-devhelp==2.0.0", "distlib==0.4.1", "beautifulsoup4==4.15.0", "click-didyoumean==0.3.1", "dill==0.4.1", "pathspec==1.1.1", "twine==6.2.0", "edx-drf-extensions==10.6.0", "pylint-plugin-utils==0.9.0", "edx-django-utils==8.0.1", "amqp==5.3.1", "secretstorage==3.5.0", "soupsieve==2.8.4", "click-log==0.4.0", "requests==2.34.2", "edx-lint==6.1.0", "idna==3.18", "astroid==4.0.4", "platformdirs==4.10.0", "pylint-celery==0.3", "edx-opaque-keys[django]==4.0.0", "pycodestyle==2.14.0", "wcwidth==0.8.0", "rfc3986==2.0.0", "mock==5.2.0", "django-debug-toolbar==6.3.0", "mdurl==0.1.2", "colorama==0.4.6", "pymongo==4.17.0", "pynacl==1.6.2", "keyring==25.7.0", "sphinxcontrib-jsmath==1.0.1", "pytest-cov==7.1.0", "pylint==4.0.5", "django==5.2.15", "edx-organizations==8.0.0", "diff-cover==10.3.0", "semantic-version==2.10.0", "billiard==4.2.4", "click-plugins==1.1.1.2", "jeepney==0.9.0", "tzlocal==5.3.1", "psutil==7.2.2", "urllib3==2.7.0", "asgiref==3.11.1", "django-waffle==5.0.0", "grimp==3.14", "requests-toolbelt==1.0.0", "pluggy==1.6.0", "types-pyyaml==6.0.12.20260518"]',10,'["edx-drf-extensions", "djangorestframework", "pytest-django", "code-annotations", "django-debug-toolbar", "pylint-django", "edx-i18n-tools", "django-waffle", "edx-django-utils", "edx-organizations"]',15,'["edx-drf-extensions", "djangorestframework", "drf-jwt", "pytest-django", "rules", "django-model-utils", "code-annotations", "django-simple-history", "django-debug-toolbar", "pylint-django", "django-crum", "edx-i18n-tools", "django-waffle", "edx-django-utils", "edx-organizations"]',7,'["edx-drf-extensions", "code-annotations", "django-debug-toolbar", "edx-i18n-tools", "django-waffle", "edx-django-utils", "edx-organizations"]',1,NULL,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,13,'{"total_duration": "1 minutes 2 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, package, 8)", "duration": "1 minutes 2 seconds"}, {"name": "Lint Python Imports", "duration": "0 minutes 34 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 32 seconds"}]}','Other','2021-12-12 17:41:35','main','Foundational Django models and APIs for a teaching and learning platform.',2456,26,1,0,0,0,0,0,0,'2026-06-08 06:49:47','GNU AGPLv3',11,1,0,0,0,0,4335,1654739,0,0,1,0,0,1,0,0,'','openedx',0,'[''https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0049-django-app-patterns.html: 404'', ''https://github.com/openedx/openedx-core/blob/master/LICENSE.txt: 504'']',1,'[''https://2021.djangocon.us/talks/scaling-django-to-500-apps/'', ''https://www.youtube.com/watch?v=yG3ZdxBb1oo'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://img.shields.io/pypi/v/openedx-core.svg'', ''https://pypi.python.org/pypi/openedx-core/'', ''https://github.com/openedx/openedx-core/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/openedx-core/actions'', ''https://codecov.io/github/edx/openedx-core/coverage.svg?branch=master'', ''https://codecov.io/github/edx/openedx-core?branch=master'', ''https://readthedocs.org/projects/openedx-core/badge/?version=latest'', ''https://openedx-core.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/openedx-core.svg'', ''https://img.shields.io/github/license/edx/openedx-core.svg'']',1,1,0,1,'.readthedocs.yml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'openedx-core','[''3'', ''3.12'']','https://github.com/openedx/openedx-core',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/aspects-dbt',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,19,'{"total_duration": "29772 minutes 32 seconds", "checks": [{"name": "Deploy dbt docs to github pages", "duration": "4 minutes 33 seconds"}, {"name": "Check coverage & run tests", "duration": "2 minutes 36 seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}]}','Other','2023-05-24 17:11:54','main','The dbt project for Open edX Aspects!',9680,10,1,0,0,0,0,0,0,'2026-06-08 05:22:57','Apache License 2.0',2,0,0,3569,0,0,281,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-event-sink-clickhouse: 404'']',1,'[''https://openedx.github.io/aspects-dbt/'', ''https://clickhouse.com'', ''https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html'', ''https://docs.getdbt.com/reference/resource-properties/unit-tests'', ''https://discuss.openedx.org'', ''https://github.com/openedx/aspects-dbt/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]','[''ca-certificates'', ''python-dev'', ''ssh-client'', ''/tmp/*'', ''dist-'', ''/var/tmp/*'', ''gcc'', ''make'', ''libsasl2-dev'', ''unixodbc-dev'', ''software-properties-common'', ''build-essential'', ''clean'', ''libpq-dev'', ''git'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-plugin-notifications',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,24,0,'',0,'{}',10,14,'{"@edx/browserslist-config": "^1.1.1", "@openedx/frontend-build": "^14.6.3", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^14.3.1", "axios-mock-adapter": "^1.22.0", "glob": "^10.0.0", "husky": "^7.0.4", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "react": "^18.3.1", "react-dom": "^18.3.1", "resize-observer-polyfill": "^1.5.1", "rosie": "^2.1.1", "semantic-release": "^25.0.0"}','{"@fortawesome/fontawesome-svg-core": "^6.6.0", "@fortawesome/free-brands-svg-icons": "^6.6.0", "@fortawesome/free-regular-svg-icons": "^6.6.0", "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", "classnames": "^2.5.1", "dompurify": "^3.1.7", "lodash": "^4.18.1", "timeago.js": "^4.0.2", "uuid": "^13.0.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,20,'{"total_duration": "", "checks": []}','Other','2025-01-31 19:50:32','main','A collection of components meant to integrate Notifications into the platform UI. They are presently used in the HeaderNotificationsSlot.',1570,6,1,0,0,0,0,0,0,'2026-06-08 00:48:32','GNU AGPLv3',2,1,0,0,498,69209,1858,0,0,0,0,0,0,0,0,0,'@edx/frontend-plugin-notifications','openedx',0,'[''https://github.com/edx/frontend-plugin-notifications/blob/main/LICENSE: 504'', ''https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-notifications: 404'']',0,'[''https://img.shields.io/badge/license-AGPL-informational'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml/badge.svg'', ''https://codecov.io/github/edx/frontend-plugin-notifications/coverage.svg?branch=main'', ''https://codecov.io/github/edx/frontend-plugin-notifications?branch=main'', ''https://github.com/openedx/frontend-component-header/tree/master/src/plugin-slots/HeaderNotificationsSlot'', ''https://github.com/openedx/tutor-contrib-platform-notifications'', ''https://openedx.org/r/how-to-contribute'']',1,1,0,0,'','',1,'2026-04-10',NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-django-sites-extensions',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,92,0,'[]',0,'',0,0,'','',3,'["django==5.2.14", "sqlparse==0.5.5", "asgiref==3.11.1"]',92,'["pluggy==1.6.0", "virtualenv==21.4.2", "mock==5.2.0", "tox==4.55.0", "packaging==26.2", "django==5.2.0", "sphinx==9.1.0", "django-dynamic-fixture==4.0.1", "tomlkit==0.15.0", "wheel==0.47.0", "keyring==25.7.0", "docutils==0.23", "python-discovery==1.4.0", "certifi==2026.5.20", "imagesize==2.0.0", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-devhelp==2.0.0", "pytest==9.0.3", "sphinx-rtd-theme==3.1.0", "mccabe==0.7.0", "code-annotations==3.0.0", "click-log==0.4.0", "pygments==2.20.0", "pytest-cov==7.1.0", "pytest-django==4.12.0", "coverage[toml]==7.14.1", "readme-renderer==44.0", "requests==2.34.2", "jaraco-functools==4.5.0", "pycparser==3.0", "twine==6.2.0", "mdurl==0.1.2", "click==8.4.1", "pycodestyle==2.14.0", "rich==15.0.0", "rfc3986==2.0.0", "isort==8.0.1", "pyproject-hooks==1.2.0", "nh3==0.3.5", "edx-lint==6.1.0", "idna==3.17", "text-unidecode==1.3", "asgiref==3.11.1", "babel==2.18.0", "sqlparse==0.5.5", "jaraco-classes==3.4.0", "charset-normalizer==3.4.7", "iniconfig==2.3.0", "filelock==3.29.0", "django==5.2.14", "sphinxcontrib-jsmath==1.0.1", "setuptools==82.0.1", "dill==0.4.1", "docutils==0.22.4", "id==1.6.1", "tomli-w==1.2.0", "pylint==4.0.5", "pyproject-api==1.10.1", "build==1.5.0", "roman-numerals==4.1.0", "distlib==0.4.0", "urllib3==2.7.0", "requests-toolbelt==1.0.0", "pylint-django==2.7.0", "pylint-celery==0.3", "alabaster==1.0.0", "asgiref==3.8.1", "pyyaml==6.0.3", "snowballstemmer==3.1.0", "jinja2==3.1.6", "pip-tools==7.5.3", "cachetools==7.1.4", "sphinxcontrib-qthelp==2.0.0", "six==1.17.0", "cryptography==48.0.0", "markdown-it-py==4.2.0", "platformdirs==4.10.0", "astroid==4.0.4", "more-itertools==11.1.0", "pylint-plugin-utils==0.9.0", "jaraco-context==6.1.2", "sphinxcontrib-jquery==4.1", "colorama==0.4.6", "python-slugify==8.0.4", "jeepney==0.9.0", "cffi==2.0.0", "pip==26.1.2", "markupsafe==3.0.3", "sphinxcontrib-htmlhelp==2.1.0", "sphinxcontrib-serializinghtml==2.0.0", "secretstorage==3.5.0", "stevedore==5.8.0"]',3,'["pylint-django", "code-annotations", "pytest-django"]',4,'["pylint-django", "code-annotations", "django-dynamic-fixture", "pytest-django"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,1,0,1,1,1,7,'{"total_duration": "5083 minutes 45 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 59 seconds"}, {"name": "Dependabot", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 39 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2016-03-18 13:46:22','master','',202,14,1,0,0,0,0,0,0,'2026-06-08 00:22:57','GNU AGPLv3',2,1,0,0,0,0,1991,22308,0,0,1,0,0,1,0,0,'','openedx',1,'[''https://docs.djangoproject.com/en/1.9/ref/contrib/sites/: 404'']',0,'[''http://code.edx.org/'', ''https://github.com/openedx/edx-django-sites-extensions/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/edx-django-sites-extensions/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/edx-django-sites-extensions/coverage.svg?branch=master'', ''http://codecov.io/github/edx/edx-django-sites-extensions?branch=master'', ''https://edx-django-sites-extensions.readthedocs.org'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://groups.google.com/forum/'']',1,0,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-django-sites-extensions','[''3.12'']','https://github.com/openedx/edx-django-sites-extensions',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/eslint-config',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,9,0,'',0,'{}',0,9,'{"@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "eslint": "8.56.0", "eslint-config-airbnb": "19.0.4", "eslint-config-airbnb-typescript": "^17.0.0", "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.8.0", "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "4.6.0"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,16,'{"total_duration": "0 minutes 23 seconds", "checks": [{"name": "Release", "duration": "0 minutes 23 seconds"}, {"name": "tests", "duration": "0 minutes 11 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 7 seconds"}]}','Other','2020-01-30 18:27:54','master','',375,7,1,0,0,0,0,0,0,'2026-06-02 19:45:28','GNU AGPLv3',13,1,0,0,0,3159,0,0,0,0,0,0,0,0,0,0,'@edx/eslint-config','openedx',0,'[''https://github.com/openedx/eslint-config/actions/workflows/release.yml/: 504'', ''https://www.npmjs.com/package/@edx/eslint-config: 403'', ''https://github.com/openedx/eslint-config/blob/master/LICENSE: 504'', ''https://github.com/semantic-release/semantic-release: 504'', ''https://www.npmjs.com/package/eslint-config-airbnb-typescript: 403'']',0,'[''https://github.com/openedx/eslint-config/actions/workflows/release.yml/badge.svg'', ''https://img.shields.io/npm/v/@edx/eslint-config.svg'', ''https://img.shields.io/npm/dt/@edx/eslint-config.svg'', ''https://img.shields.io/npm/l/@edx/eslint-config.svg'', ''https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg'']',1,1,0,0,'','',1,'2025-12-08','2024-04-29','10',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-ai-extensions',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "4167 minutes 55 seconds", "checks": [{"name": "Frontend Tests (ubuntu-latest, 20)", "duration": "2 minutes 10 seconds"}, {"name": "Backend Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 54 seconds"}, {"name": "Backend Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 22 seconds"}, {"name": "Plugin / Docs Tests (ubuntu-latest, 3.12)", "duration": "0 minutes 55 seconds"}, {"name": "Backend Tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes 51 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2025-07-29 15:04:02','main','An edx-platform plugin that will house tools and helpers for working with AI.',2825,10,1,0,0,0,0,0,0,'2026-06-02 21:54:43','GNU AGPLv3',4,1,839,0,6200,389,5981,786584,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/openedx-ai-extensions.git: 504'', ''https://docs.openedx.org/en/latest/developers/references/plugin_reference.html: 404'', ''https://github.com/openedx/openedx-ai-extensions/issues: 504'']',0,'[''https://img.shields.io/badge/Status-Experimental-orange'', ''https://img.shields.io/badge/License-AGPL%20v3-blue'', ''https://img.shields.io/badge/Documentation-green'', ''https://docs.openedx.org/projects/openedx-ai-extensions/en/latest/index.html'', ''https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html'', ''https://discuss.openedx.org'', ''https://www.canva.com/design/DAGqjcS2mT4/nTHQIDIeZ89wqsBvh9GWKA/view'', ''https://docs.litellm.ai/'', ''https://drive.google.com/file/d/1sUj2xoldYFAvPoDuxqwG0XbIundGD0u2/view'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-instructor-dashboard',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,15,0,'',0,'{}',4,11,'{"@edx/browserslist-config": "^1.5.0", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/jest": "^30.0.0", "@types/react": "^18", "@types/react-dom": "^18", "jest": "^29", "nodemon": "^3.1.14", "tsc-alias": "^1.8.16", "turbo": "^2.9.2"}','{"@edx/openedx-atlas": "^0.7.0", "codemirror": "^6.0.2", "lodash": "^4.17.23", "react-helmet": "^6.1.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "1747 minutes 41 seconds", "checks": [{"name": "test", "duration": "3 minutes 0 seconds"}, {"name": "Release", "duration": "0 minutes 47 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2025-08-21 12:52:46','main','Instructor Dashboard pages in MFE-land',1243,14,1,0,0,0,0,0,0,'2026-05-20 13:15:09','GNU AGPLv3',0,1,0,0,256,1408,1920,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://github.com/openedx/frontend-app-instructor-dashboard/blob/master/docs/decisions/0002-feature-based-application-organization.rst: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-instructor-dashboard: 404'']',1,'[''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-app-instructor-dashboard.git'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-instructor-dashboard/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-app-instructor-dashboard.svg'', ''https://github.com/openedx/frontend-app-instructor-dashboard/blob/main/LICENSE'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://github.com/openedx/frontend-app-instructor-dashboard/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/frontend-app-instructor-dashboard/actions/workflows/ci.yml'', ''https://codecov.io/github/openedx/frontend-app-instructor-dashboard/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/frontend-app-instructor-dashboard?branch=main'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-notes-api',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,103,0,'[]',0,'',0,0,'','',57,'["pynacl==1.6.2", "pyyaml==6.0.3", "setuptools==82.0.1", "drf-jwt==1.19.2", "stevedore==5.8.0", "pyjwt[crypto]==2.13.0", "elasticsearch==7.13.4", "idna==3.17", "pydantic==2.13.4", "pymongo==4.17.0", "drf-spectacular==0.29.0", "django-nine==0.2.7", "typing-extensions==4.15.0", "requests==2.34.2", "edx-opaque-keys==4.0.0", "packaging==26.2", "certifi==2026.5.20", "pydantic-core==2.46.4", "python-dateutil==2.9.0.post0", "urllib3==1.26.20", "jsonschema==4.26.0", "semantic-version==2.10.0", "django-cors-headers==4.9.0", "django-elasticsearch-dsl-drf==0.22.5", "sqlparse==0.5.5", "edx-drf-extensions==10.6.0", "django-crum==0.7.9", "attrs==26.1.0", "asgiref==3.11.1", "edx-django-release-util==1.5.0", "mysqlclient==2.2.8", "pycparser==3.0", "django-waffle==5.0.0", "referencing==0.37.0", "typing-inspection==0.4.2", "django==5.2.14", "jsonschema-specifications==2025.9.1", "six==1.17.0", "gunicorn==26.0.0", "dnspython==2.8.0", "charset-normalizer==3.4.7", "path-py==12.5.0", "meilisearch==0.41.0", "uritemplate==4.2.0", "annotated-types==0.7.0", "cffi==2.0.0", "psutil==7.2.2", "path==17.1.1", "click==8.4.1", "cryptography==48.0.0", "django-elasticsearch-dsl==7.4", "djangorestframework==3.17.1", "inflection==0.5.1", "elasticsearch-dsl==7.4.1", "edx-django-utils==8.0.1", "camel-converter[pydantic]==5.1.0", "rpds-py==2026.5.1"]',103,'["factory-boy==3.3.3", "pyyaml==6.0.3", "ddt==1.7.2", "isort==8.0.1", "pymongo==4.17.0", "more-itertools==11.1.0", "django-nine==0.2.7", "pydantic-core==2.46.4", "python-dateutil==2.9.0.post0", "tomlkit==0.15.0", "python-discovery==1.4.0", "django-cors-headers==4.9.0", "sqlparse==0.5.5", "django-crum==0.7.9", "edx-django-release-util==1.5.0", "pytest-cov==7.1.0", "dill==0.4.1", "jinja2==3.1.6", "jsonschema-specifications==2025.9.1", "path-py==12.5.0", "meilisearch==0.41.0", "chardet==7.4.3", "annotated-types==0.7.0", "cffi==2.0.0", "psutil==7.2.2", "mccabe==0.7.0", "edx-django-utils==8.0.1", "edx-lint==6.1.0", "setuptools==82.0.1", "pyjwt[crypto]==2.13.0", "coverage[toml]==7.14.1", "typing-extensions==4.15.0", "cachetools==7.1.4", "requests==2.34.2", "pylint-plugin-utils==0.9.0", "django-elasticsearch-dsl-drf==0.22.5", "asgiref==3.11.1", "code-annotations==3.0.0", "pycparser==3.0", "pytest==9.0.3", "wheel==0.47.0", "build==1.5.0", "django-waffle==5.0.0", "pluggy==1.6.0", "pyproject-hooks==1.2.0", "six==1.17.0", "gunicorn==26.0.0", "dnspython==2.8.0", "click==8.4.1", "django-elasticsearch-dsl==7.4", "inflection==0.5.1", "virtualenv==21.4.2", "elasticsearch-dsl==7.4.1", "python-slugify==8.0.4", "drf-jwt==1.19.2", "pip==26.1.2", "pylint-celery==0.3", "filelock==3.29.0", "tomli-w==1.2.0", "drf-spectacular==0.29.0", "pygments==2.20.0", "jsonschema==4.26.0", "pip-tools==7.5.3", "astroid==4.0.4", "pyproject-api==1.10.1", "edx-drf-extensions==10.6.0", "mysqlclient==2.2.8", "pylint-django==2.7.0", "django==5.2.14", "pep8==1.7.1", "charset-normalizer==3.4.7", "tox==4.55.0", "iniconfig==2.3.0", "pynacl==1.6.2", "stevedore==5.8.0", "elasticsearch==7.13.4", "pytest-django==4.12.0", "idna==3.17", "pydantic==2.13.4", "markupsafe==3.0.3", "urllib3==1.26.20", "pycodestyle==2.14.0", "edx-opaque-keys==4.0.0", "diff-cover==10.3.0", "certifi==2026.5.20", "packaging==26.2", "platformdirs==4.10.0", "semantic-version==2.10.0", "attrs==26.1.0", "pylint==4.0.5", "referencing==0.37.0", "typing-inspection==0.4.2", "colorama==0.4.6", "click-log==0.4.0", "uritemplate==4.2.0", "path==17.1.1", "faker==40.19.1", "distlib==0.4.0", "rpds-py==2026.5.1", "cryptography==48.0.0", "text-unidecode==1.3", "djangorestframework==3.17.1", "camel-converter[pydantic]==5.1.0"]',11,'["edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "factory-boy", "code-annotations", "django-waffle", "edx-django-release-util", "pylint-django", "djangorestframework", "pytest-django", "django-cors-headers"]',16,'["edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "django-elasticsearch-dsl-drf", "factory-boy", "code-annotations", "django-crum", "django-nine", "django-elasticsearch-dsl", "django-waffle", "drf-jwt", "edx-django-release-util", "pylint-django", "djangorestframework", "pytest-django", "django-cors-headers"]',7,'["edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "code-annotations", "django-waffle", "edx-django-release-util", "django-cors-headers"]',0,NULL,1,0,1,1,0,0,1,1,1,1,0,0,1,1,0,0,1,0,1,1,1,91,'{"total_duration": "9627 minutes 23 seconds", "checks": [{"name": "run_tests (3.12, quality)", "duration": "2 minutes 1 seconds"}, {"name": "run_tests (3.12, django52)", "duration": "2 minutes 1 seconds"}, {"name": "run_tests (3.12, pii_check)", "duration": "1 minutes 51 seconds"}, {"name": "run_tests (3.12, check_keywords)", "duration": "1 minutes 46 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 24 seconds"}, {"name": "Analyze (python)", "duration": "1 minutes 0 seconds"}, {"name": "check_migrations (3.12)", "duration": "0 minutes 54 seconds"}, {"name": "Analyze (python)", "duration": "0 minutes 50 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 40 seconds"}, {"name": "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "Trivy-Scan", "duration": "0 minutes 25 seconds"}, {"name": "Trivy-Scan", "duration": "0 minutes 21 seconds"}]}','Other','2014-11-10 19:37:29','master','edx-notes-api',1073,63,1,0,0,0,0,0,0,'2026-06-08 00:46:33','GNU AGPLv3',4,1,0,0,0,0,3592,130608,0,0,1,0,0,1,0,0,'','openedx',2,'[''http://annotatorjs.org/: 403'']',0,'[''https://www.elastic.co/downloads/past-releases/elasticsearch-7-13-4'', ''https://django-elasticsearch-dsl.readthedocs.io/'', ''https://django-elasticsearch-dsl.readthedocs.io/en/latest/management.html'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code'', ''https://groups.google.com/g/edx-code'', ''https://github.com/openedx/edx-notes-api/actions/workflows/ci.yml/badge.svg'', ''https://github.com/openedx/edx-notes-api/actions/workflows/ci.yml'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,NULL,'[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/training-courses',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,2,'{"total_duration": "0 minutes 11 seconds", "checks": [{"name": "source_and_tars_match", "duration": "0 minutes 11 seconds"}]}','Other','2022-04-07 19:17:04','main','Repo for course content & Issues related to Open edX training courses',270180,6,1,0,0,0,0,0,0,'2026-05-19 13:23:02','Other',0,1,0,0,8067554,0,2772,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://creativecommons.org/licenses/by-sa/4.0/'', ''http://creativecommons.org/licenses/by-nc-sa/3.0/us/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-test',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,1,0,'',399,'{"@appium/base-driver": "9.4.3", "@appium/base-plugin": "2.2.24", "@appium/docutils": "0.4.13", "@appium/schema": "0.4.2", "@appium/support": "4.1.10", "@appium/tsconfig": "0.3.2", "@appium/typedoc-plugin-appium": "0.6.6", "@appium/types": "0.14.3", "@babel/code-frame": "7.23.5", "@babel/helper-validator-identifier": "7.22.20", "@babel/highlight": "7.23.4", "@colors/colors": "1.6.0", "@dabh/diagnostics": "2.0.3", "@isaacs/cliui": "8.0.2", "@pkgjs/parseargs": "0.11.0", "@sidvind/better-ajv-errors": "2.1.0", "@sliphua/lilconfig-ts-loader": "3.2.2", "@tsconfig/node14": "14.1.0", "@types/archiver": "6.0.2", "@types/argparse": "2.0.14", "@types/async-lock": "1.4.2", "@types/base64-stream": "1.0.5", "@types/bluebird": "3.5.42", "@types/body-parser": "1.19.5", "@types/connect": "3.4.38", "@types/express": "4.17.21", "@types/express-serve-static-core": "4.17.41", "@types/fancy-log": "2.0.2", "@types/find-root": "1.1.4", "@types/http-errors": "2.0.4", "@types/jsftp": "2.1.5", "@types/json-schema": "7.0.15", "@types/klaw": "3.0.6", "@types/lockfile": "1.0.4", "@types/lodash": "4.14.202", "@types/method-override": "0.0.35", "@types/mime": "1.3.5", "@types/mv": "2.1.4", "@types/ncp": "2.0.8", "@types/node": "20.10.5", "@types/normalize-package-data": "2.4.4", "@types/npmlog": "4.1.6", "@types/pluralize": "0.0.33", "@types/qs": "6.9.10", "@types/range-parser": "1.2.7", "@types/readdir-glob": "1.1.5", "@types/semver": "7.5.6", "@types/send": "0.17.4", "@types/serve-favicon": "2.5.7", "@types/serve-static": "1.15.5", "@types/shell-quote": "1.7.5", "@types/supports-color": "8.1.3", "@types/teen_process": "2.0.4", "@types/triple-beam": "1.3.5", "@types/uuid": "9.0.7", "@types/which": "3.0.1", "@types/wrap-ansi": "3.0.0", "@types/ws": "8.5.10", "@xmldom/xmldom": "0.8.10", "abort-controller": "3.0.0", "accepts": "1.3.8", "ajv": "8.12.0", "ajv-formats": "2.1.1", "ansi-regex": "6.0.1", "ansi-sequence-parser": "1.1.1", "ansi-styles": "6.2.1", "appium": "2.2.3", "aproba": "2.0.0", "archiver": "6.0.1", "archiver-utils": "4.0.1", "are-we-there-yet": "4.0.1", "arg": "4.1.3", "argparse": "2.0.1", "array-flatten": "1.1.1", "async": "3.2.5", "async-lock": "1.4.0", "asyncbox": "3.0.0", "asynckit": "0.4.0", "axios": "1.6.2", "b4a": "1.6.4", "balanced-match": "1.0.2", "base64-js": "1.5.1", "base64-stream": "1.0.0", "basic-auth": "2.0.1", "big-integer": "1.6.52", "bl": "4.1.0", "bluebird": "3.7.2", "body-parser": "1.20.2", "bplist-creator": "0.1.1", "bplist-parser": "0.3.2", "brace-expansion": "2.0.1", "buffer": "6.0.3", "buffer-crc32": "0.2.13", "buffer-from": "1.1.2", "bytes": "3.1.2", "call-bind": "1.0.5", "chalk": "4.1.2", "chownr": "1.1.4", "cli-cursor": "3.1.0", "cli-spinners": "2.9.2", "cliui": "8.0.1", "clone": "1.0.4", "color": "4.2.3", "color-convert": "2.0.1", "color-name": "1.1.4", "color-string": "1.9.1", "color-support": "1.1.3", "colorspace": "1.1.4", "combined-stream": "1.0.8", "commander": "6.2.1", "compress-commons": "5.0.1", "concat-map": "0.0.1", "consola": "2.15.3", "console-control-strings": "1.1.0", "content-disposition": "0.5.4", "content-type": "1.0.5", "cookie": "0.5.0", "cookie-signature": "1.0.6", "core-util-is": "1.0.3", "crc-32": "1.2.2", "crc32-stream": "5.0.0", "create-require": "1.1.1", "cross-env": "7.0.3", "cross-spawn": "7.0.3", "debug": "3.2.7", "decompress-response": "6.0.0", "deep-extend": "0.6.0", "defaults": "1.0.4", "define-data-property": "1.1.1", "delayed-stream": "1.0.0", "delegates": "1.0.0", "depd": "2.0.0", "destroy": "1.2.0", "detect-libc": "2.0.2", "detect-node": "2.1.0", "diff": "5.1.0", "duplexer": "0.1.2", "eastasianwidth": "0.2.0", "ee-first": "1.1.1", "emoji-regex": "9.2.2", "enabled": "2.0.0", "encodeurl": "1.0.2", "end-of-stream": "1.4.4", "error-ex": "1.3.2", "es6-error": "4.1.1", "escalade": "3.1.1", "escape-html": "1.0.3", "escape-string-regexp": "1.0.5", "etag": "1.8.1", "event-target-shim": "5.0.1", "events": "3.3.0", "expand-template": "2.0.3", "express": "4.18.2", "fast-deep-equal": "3.1.3", "fast-fifo": "1.3.2", "fd-slicer": "1.1.0", "fecha": "4.2.3", "figures": "3.2.0", "finalhandler": "1.2.0", "find-up": "5.0.0", "fn.name": "1.1.0", "follow-redirects": "1.15.3", "foreground-child": "3.1.1", "form-data": "4.0.0", "forwarded": "0.2.0", "freckle": "0.0.2", "fresh": "0.5.2", "fs-constants": "1.0.0", "fs.realpath": "1.0.0", "ftp-response-parser": "1.0.1", "function-bind": "1.1.2", "gauge": "5.0.1", "get-caller-file": "2.0.5", "get-intrinsic": "1.2.2", "get-stream": "6.0.1", "github-from-package": "0.0.0", "glob": "10.3.10", "gopd": "1.0.1", "graceful-fs": "4.2.11", "handle-thing": "2.0.1", "handlebars": "4.7.8", "has-flag": "4.0.0", "has-property-descriptors": "1.0.1", "has-proto": "1.0.1", "has-symbols": "1.0.3", "has-unicode": "2.0.1", "hasown": "2.0.0", "hosted-git-info": "2.8.9", "hpack.js": "2.1.6", "http-deceiver": "1.2.7", "http-errors": "2.0.0", "http-status-codes": "2.3.0", "iconv-lite": "0.4.24", "ieee754": "1.2.1", "inflight": "1.0.6", "inherits": "2.0.4", "ini": "1.3.8", "ipaddr.js": "1.9.1", "is-arrayish": "0.2.1", "is-core-module": "2.13.1", "is-fullwidth-code-point": "3.0.0", "is-interactive": "1.0.0", "is-stream": "2.0.1", "is-unicode-supported": "0.1.0", "isarray": "1.0.0", "isexe": "2.0.0", "jackspeak": "2.3.6", "js-tokens": "4.0.0", "jsftp": "2.1.3", "json-parse-even-better-errors": "2.3.1", "json-schema": "0.4.0", "json-schema-traverse": "1.0.0", "json5": "2.2.3", "jsonc-parser": "3.2.0", "klaw": "4.1.0", "kuler": "2.0.0", "lazystream": "1.0.1", "lilconfig": "2.1.0", "lines-and-columns": "1.2.4", "locate-path": "6.0.0", "lockfile": "1.0.4", "lodash": "4.17.21", "lodash.get": "4.4.2", "log-symbols": "4.1.0", "logform": "2.6.0", "lru-cache": "10.0.1", "lunr": "2.3.9", "make-error": "1.3.6", "marked": "4.3.0", "media-typer": "0.3.0", "merge-descriptors": "1.0.1", "method-override": "3.0.0", "methods": "1.1.2", "mime": "1.6.0", "mime-db": "1.52.0", "mime-types": "2.1.35", "mimic-fn": "2.1.0", "mimic-response": "3.1.0", "minimalistic-assert": "1.0.1", "minimatch": "5.1.6", "minimist": "1.2.8", "minipass": "7.0.4", "mkdirp": "0.5.6", "mkdirp-classic": "0.5.3", "moment": "2.29.4", "morgan": "1.10.0", "ms": "2.1.3", "mv": "2.1.1", "napi-build-utils": "1.0.2", "ncp": "2.0.0", "negotiator": "0.6.3", "neo-async": "2.6.2", "node-abi": "3.52.0", "node-addon-api": "6.1.0", "normalize-package-data": "2.5.0", "normalize-path": "3.0.0", "npmlog": "7.0.1", "object-inspect": "1.13.1", "obuf": "1.1.2", "on-finished": "2.4.1", "on-headers": "1.0.2", "once": "1.4.0", "one-time": "1.0.0", "onetime": "5.1.2", "opencv-bindings": "4.5.5", "optimist": "0.6.1", "ora": "5.4.1", "p-limit": "3.1.0", "p-locate": "5.0.0", "package-changed": "3.0.0", "parse-json": "5.2.0", "parse-listing": "1.1.3", "parseurl": "1.3.3", "path-exists": "4.0.0", "path-is-absolute": "1.0.1", "path-key": "3.1.1", "path-parse": "1.0.7", "path-scurry": "1.10.1", "path-to-regexp": "6.2.1", "pend": "1.2.0", "pip": "0.0.1", "pkg-dir": "5.0.0", "plist": "3.1.0", "pluralize": "8.0.0", "prebuild-install": "7.1.1", "process": "0.11.10", "process-nextick-args": "2.0.1", "proxy-addr": "2.0.7", "proxy-from-env": "1.1.0", "pump": "3.0.0", "punycode": "2.3.1", "qs": "6.11.0", "queue-tick": "1.0.1", "range-parser": "1.2.1", "raw-body": "2.5.2", "rc": "1.2.8", "read-pkg": "5.2.0", "readable-stream": "3.6.2", "readdir-glob": "1.1.3", "require-directory": "2.1.1", "require-from-string": "2.0.2", "resolve": "1.22.8", "resolve-from": "5.0.0", "restore-cursor": "3.1.0", "rimraf": "2.4.5", "safe-buffer": "5.1.2", "safe-stable-stringify": "2.4.3", "safer-buffer": "2.1.2", "sanitize-filename": "1.6.3", "select-hose": "2.0.0", "semver": "7.5.4", "send": "0.18.0", "serve-favicon": "2.5.0", "serve-static": "1.15.0", "set-blocking": "2.0.0", "set-function-length": "1.1.1", "setprototypeof": "1.2.0", "sharp": "0.32.6", "shebang-command": "2.0.0", "shebang-regex": "3.0.0", "shell-quote": "1.8.1", "shiki": "0.14.7", "side-channel": "1.0.4", "signal-exit": "4.1.0", "simple-concat": "1.0.1", "simple-get": "4.0.1", "simple-swizzle": "0.2.2", "source-map": "0.6.1", "source-map-support": "0.5.21", "spdx-correct": "3.2.0", "spdx-exceptions": "2.3.0", "spdx-expression-parse": "3.0.1", "spdx-license-ids": "3.0.16", "spdy": "4.0.2", "spdy-transport": "3.0.0", "stack-trace": "0.0.10", "statuses": "2.0.1", "stream-buffers": "2.2.0", "stream-combiner": "0.2.2", "streamx": "2.15.6", "string-width": "5.1.2", "string-width-cjs": "npm:string-width@4.2.3", "string_decoder": "1.1.1", "strip-ansi": "7.1.0", "strip-ansi-cjs": "npm:strip-ansi@6.0.1", "strip-json-comments": "2.0.1", "supports-color": "8.1.1", "supports-preserve-symlinks-flag": "1.0.0", "tar-fs": "3.0.4", "tar-stream": "3.1.6", "teen_process": "2.0.101", "text-hex": "1.0.0", "through": "2.3.8", "toidentifier": "1.0.1", "triple-beam": "1.4.1", "truncate-utf8-bytes": "1.0.2", "ts-node": "9.1.1", "tslib": "2.6.2", "tunnel-agent": "0.6.0", "type-fest": "3.13.1", "type-is": "1.6.18", "typedoc": "0.23.28", "typedoc-plugin-markdown": "3.14.0", "typedoc-plugin-resolve-crossmodule-references": "0.3.3", "typescript": "5.0.4", "uglify-js": "3.17.4", "undici-types": "5.26.5", "unorm": "1.6.0", "unpipe": "1.0.0", "uri-js": "4.4.1", "utf8-byte-length": "1.0.4", "util-deprecate": "1.0.2", "utils-merge": "1.0.1", "uuid": "9.0.1", "validate-npm-package-license": "3.0.4", "validate.js": "0.13.1", "vary": "1.1.2", "vscode-oniguruma": "1.7.0", "vscode-textmate": "8.0.0", "wbuf": "1.7.3", "wcwidth": "1.0.1", "which": "4.0.0", "wide-align": "1.1.5", "winston": "3.11.0", "winston-transport": "4.6.0", "wordwrap": "1.0.0", "wrap-ansi": "7.0.0", "wrap-ansi-cjs": "npm:wrap-ansi@7.0.0", "wrappy": "1.0.2", "xmlbuilder": "15.1.1", "y18n": "5.0.8", "yallist": "4.0.0", "yaml": "2.3.4", "yargs": "17.7.2", "yargs-parser": "21.1.1", "yauzl": "2.10.0", "yn": "3.1.1", "yocto-queue": "0.1.0", "zip-stream": "5.0.1"}',1,0,'{}','{"appium": "^2.0.0"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,1,2,'{"total_duration": "", "checks": []}','Other','2023-12-11 14:10:40','main','Test scripts for the Open edX mobile applications',818,5,1,0,0,0,0,0,0,'2025-08-29 14:34:13','Apache License 2.0',0,0,0,0,0,0,0,627277,1015,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://nodejs.org/en/'', ''https://appium.io/docs/en/latest/quickstart/'', ''https://www.oracle.com/europe/java/technologies/downloads/'', ''https://developer.android.com/tools'', ''https://github.com/openedx/openedx-app-test'', ''https://www.python.org/downloads/'', ''https://stackoverflow.com/questions/6587507/how-to-install-pip-with-python-3'', ''https://www.browserstack.com/list-of-browsers-and-platforms/automate'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-dev-utils',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,3,0,'',0,'{}',3,0,'{}','{"chokidar": "^5.0.0", "cors": "^2.8.6", "express": "^5.2.1"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,1,1,1,'{"total_duration": "0 minutes 21 seconds", "checks": [{"name": "Release", "duration": "0 minutes 21 seconds"}]}','Other','2026-01-26 14:12:43','main','',43,3,1,0,0,0,0,0,0,'2026-05-30 15:25:12','GNU AGPLv3',0,0,0,0,0,6203,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/frontend-base/: 504'']',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/code-annotations',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,96,0,'[]',0,'',0,0,'','',7,'["click==8.4.1", "python-slugify==8.0.4", "stevedore==5.8.0", "text-unidecode==1.3", "markupsafe==3.0.3", "pyyaml==6.0.3", "jinja2==3.1.6"]',96,'["setuptools==82.0.1", "babel==2.18.0", "pygments==2.20.0", "charset-normalizer==3.4.7", "pycparser==3.0", "pip-tools==7.5.3", "diff-cover==10.3.0", "secretstorage==3.5.0", "edx-lint==6.1.0", "sphinxcontrib-serializinghtml==2.0.0", "twine==6.2.0", "jaraco-functools==4.5.0", "packaging==26.2", "jaraco-context==6.1.2", "iniconfig==2.3.0", "cryptography==48.0.0", "id==1.6.1", "django==5.2.14", "colorama==0.4.6", "cachetools==7.1.4", "sphinxcontrib-applehelp==2.0.0", "tox==4.55.0", "rich==15.0.0", "asgiref==3.11.1", "restructuredtext-lint==2.0.2", "sphinxcontrib-jsmath==1.0.1", "pylint-celery==0.3", "docutils==0.21.2", "pydocstyle==6.3.0", "isort==8.0.1", "doc8==2.0.0", "pylint==4.0.5", "sphinxcontrib-qthelp==2.0.0", "pip==26.1.2", "requests-toolbelt==1.0.0", "jinja2==3.1.6", "alabaster==1.0.0", "coverage[toml]==7.14.1", "soupsieve==2.8.4", "pyproject-hooks==1.2.0", "keyring==25.7.0", "tomlkit==0.15.0", "wheel==0.47.0", "markupsafe==3.0.3", "sphinxcontrib-htmlhelp==2.1.0", "imagesize==2.0.0", "distlib==0.4.0", "pytest-cov==7.1.0", "pyproject-api==1.10.1", "more-itertools==11.1.0", "code-annotations==3.0.0", "sphinx-book-theme==1.2.0", "sphinxcontrib-devhelp==2.0.0", "astroid==4.0.4", "roman-numerals==4.1.0", "idna==3.17", "pylint-plugin-utils==0.9.0", "stevedore==5.8.0", "platformdirs==4.10.0", "pyyaml==6.0.3", "readme-renderer==44.0", "dill==0.4.1", "chardet==7.4.3", "pylint-django==2.7.0", "requests==2.34.2", "nh3==0.3.5", "pydata-sphinx-theme==0.16.1", "click==8.4.1", "jaraco-classes==3.4.0", "build==1.5.0", "mock==5.2.0", "pycodestyle==2.14.0", "text-unidecode==1.3", "mdurl==0.1.2", "jeepney==0.9.0", "tomli-w==1.2.0", "snowballstemmer==3.1.0", "filelock==3.29.0", "typing-extensions==4.15.0", "markdown-it-py==4.2.0", "accessible-pygments==0.0.5", "rfc3986==2.0.0", "python-slugify==8.0.4", "pluggy==1.6.0", "click-log==0.4.0", "sphinx==9.1.0", "pytest==9.0.3", "certifi==2026.5.20", "urllib3==2.7.0", "virtualenv==21.4.2", "beautifulsoup4==4.14.3", "sqlparse==0.5.5", "python-discovery==1.4.0", "cffi==2.0.0", "mccabe==0.7.0", "six==1.17.0"]',2,'["pylint-django", "code-annotations"]',2,'["pylint-django", "code-annotations"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,16,'{"total_duration": "9279 minutes 33 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 11 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 43 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 40 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 33 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 29 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 51 seconds"}]}','Other','2018-11-16 20:22:19','master','Extensible tools for parsing annotations in codebases, powers edx PII checker.',613,12,1,0,0,0,0,0,0,'2026-06-08 00:42:06','Apache License 2.0',2,1,0,0,0,2841,3281,163378,0,1,1,0,0,1,0,0,'','openedx',2,'[]',1,'[''https://code-annotations.readthedocs.org'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://github.com/openedx/code-annotations/blob/master/.github/PULL_REQUEST_TEMPLATE.md'', ''https://github.com/openedx/code-annotations/blob/master/.github/ISSUE_TEMPLATE.md'', ''https://open.edx.org/getting-help'']',1,1,0,1,'.readthedocs.yml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'code-annotations','[''3'', ''3.12'']','https://github.com/openedx/code-annotations',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-ora',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,48,0,'',0,'{}',38,10,'{"@edx/browserslist-config": "^1.1.1", "@openedx/frontend-build": "^14.6.6", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.5.1", "glob": "7.2.3", "husky": "7.0.4", "jest": "^30.0.0", "ts-jest": "^29.4.0"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-lib-special-exams": "^3.4.0", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@edx/tinymce-language-selector": "1.1.0", "@fortawesome/fontawesome-svg-core": "1.2.36", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "0.2.6", "@openedx/paragon": "^23.4.2", "@reduxjs/toolkit": "^1.9.7", "@tanstack/react-query": "^4.29.25", "@tanstack/react-query-devtools": "^4.35.3", "@tinymce/tinymce-react": "3.14.0", "@zip.js/zip.js": "^2.7.62", "axios": "^1.5.1", "classnames": "^2.3.2", "core-js": "3.49.0", "file-saver": "^2.0.5", "filesize": "^8.0.6", "jest-when": "^3.6.0", "moment": "^2.29.4", "pdfjs-dist": "^3.11.174", "prop-types": "15.8.1", "query-string": "^8.1.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-pdf": "^7.4.0", "react-redux": "7.2.9", "react-router": "6.30.3", "react-router-dom": "6.30.3", "redux": "4.2.1", "redux-devtools-extension": "^2.13.9", "redux-logger": "^3.0.6", "regenerator-runtime": "0.14.1", "tinymce": "5.10.9", "uuid": "^9.0.1"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,24,'{"total_duration": "33737 minutes 54 seconds", "checks": [{"name": "test", "duration": "3 minutes 40 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 26 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 23 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 22 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 17 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}','Other','2023-07-12 21:42:38','master','Open Response Assessment MFE',4067,23,1,0,0,0,0,0,0,'2026-06-02 17:14:36','GNU GPLv3',11,1,0,0,1027,596023,1591,983,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/frontend-app-ora.git: 504'', ''https://github.com/overhangio/tutor-mfe/blob/release/tutormfe/plugin.py: 504'', ''http://apps.local.openedx.io: HTTPConnectionPool(host=\''apps.local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''apps.local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://github.com/edx/frontend-app-ora/issues: 504'', ''https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora: 404'', ''https://github.com/edx/frontend-app-ora/blob/master/LICENSE: 504'', ''https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml/badge.svg: 504'', ''https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml: 504'']',1,'[''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe?tab=readme-ov-file'', ''https://github.com/nvm-sh/nvm'', ''https://docs.openedx.org/en/latest/site_ops/how-tos/add-waffle-flag-for-user.html'', ''https://discuss.openedx.org'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/getting-help'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://img.shields.io/github/license/openedx/frontend-app-ora.svg'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://codecov.io/github/openedx/frontend-app-ora/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/frontend-app-ora?branch=master'']',1,1,0,0,'','',1,'2026-04-06','2024-02-05','7',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-chem',NULL,NULL,NULL,1,'2026-06-08',0,0,0,0,39,0,'[]',0,'',0,0,'','',9,'["nltk==3.9.3", "scipy==1.17.1", "click==8.3.1", "tqdm==4.67.3", "numpy==2.4.2", "regex==2026.2.28", "joblib==1.5.3", "pyparsing==3.3.2", "markupsafe==3.0.3"]',39,'["pip==26.0.1", "pyproject-api==1.10.0", "pytest-cov==7.0.0", "click==8.3.1", "colorama==0.4.6", "pluggy==1.6.0", "tomlkit==0.14.0", "scipy==1.17.1", "tox==4.49.0", "iniconfig==2.3.0", "isort==8.0.1", "tomli-w==1.2.0", "setuptools==82.0.0", "astroid==4.0.4", "python-discovery==1.1.1", "pygments==2.19.2", "wheel==0.46.3", "regex==2026.2.28", "joblib==1.5.3", "markupsafe==3.0.3", "dill==0.4.1", "tqdm==4.67.3", "platformdirs==4.9.4", "pip-tools==7.5.3", "numpy==2.4.2", "coverage[toml]==7.13.4", "cachetools==7.0.3", "pyproject-hooks==1.2.0", "mccabe==0.7.0", "packaging==26.0", "nltk==3.9.3", "distlib==0.4.0", "pylint==4.0.5", "virtualenv==21.1.0", "pycodestyle==2.14.0", "pytest==9.0.2", "build==1.4.0", "pyparsing==3.3.2", "filelock==3.25.0"]',0,'[]',0,'[]',0,'[]',0,NULL,1,0,1,0,0,0,1,1,1,0,1,0,0,1,0,1,1,0,1,1,1,27,'{"total_duration": "1 minutes 2 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 2 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 53 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "Dependabot", "duration": "0 minutes 26 seconds"}]}','Other','2019-05-07 16:58:24','master','',120,5,1,0,0,0,0,0,0,'2026-05-30 15:29:42','GNU AGPLv3',2,1,0,384,0,0,1281,61200,0,0,0,0,0,0,0,0,'','openedx',2,'[]',0,'[''https://github.com/openedx/edx-platform'', ''https://github.com/openedx/openedx-chem/blob/master/LICENSE'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'chem','[''3'', ''3.12'']','https://github.com/openedx/openedx-chem',1,1,1,0,0,0,0,0,0,'[]','[]','[''libblas-dev'', ''liblapack-dev'', ''gfortran'', ''python3-dev'']','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-cookiecutters',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,101,0,'[]',0,'',0,0,'','',38,'["text-unidecode==1.3", "tomlkit==0.13.2", "arrow==1.3.0", "platformdirs==4.3.7", "click==8.1.8", "rich==14.0.0", "python-slugify==8.0.4", "pyyaml==6.0.2", "stevedore==5.4.1", "binaryornot==0.4.4", "edx-lint==5.6.0", "pylint==3.3.6", "jinja2==3.1.6", "setuptools==78.1.0", "certifi==2025.1.31", "urllib3==2.2.3", "requests==2.32.3", "markupsafe==3.0.2", "idna==3.10", "six==1.17.0", "chardet==5.2.0", "mccabe==0.7.0", "pylint-plugin-utils==0.8.2", "pbr==6.1.1", "python-dateutil==2.9.0.post0", "dill==0.3.9", "isort==6.0.1", "cookiecutter==2.6.0", "markdown-it-py==3.0.0", "charset-normalizer==3.4.1", "pygments==2.19.1", "click-log==0.4.0", "astroid==3.3.9", "types-python-dateutil==2.9.0.20241206", "mdurl==0.1.2", "pylint-django==2.6.1", "code-annotations==2.2.0", "pylint-celery==0.3"]',101,'["accessible-pygments==0.0.5", "text-unidecode==1.3", "doc8==0.11.2", "arrow==1.3.0", "twine==6.1.0", "nh3==0.2.21", "sphinx==8.2.3", "stevedore==5.4.1", "build==1.2.2.post1", "pyproject-hooks==1.2.0", "docutils==0.21.2", "jinja2==3.1.6", "setuptools==78.1.0", "alabaster==1.0.0", "certifi==2025.1.31", "pycodestyle==2.13.0", "filelock==3.18.0", "cryptography==44.0.2", "rfc3986==2.0.0", "jaraco-classes==3.4.0", "six==1.17.0", "imagesize==1.4.1", "mccabe==0.7.0", "cachetools==5.5.2", "soupsieve==2.6", "cookiecutter==2.6.0", "pygments==2.19.1", "babel==2.17.0", "asgiref==3.8.1", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-jquery==4.1", "pylint-celery==0.3", "jaraco-functools==4.1.0", "distlib==0.3.9", "click==8.1.8", "python-slugify==8.0.4", "pycparser==2.22", "tox==4.25.0", "binaryornot==0.4.4", "pylint==3.3.6", "django-model-utils==5.0.0", "pydocstyle==6.3.0", "markupsafe==3.0.2", "jaraco-context==6.0.1", "idna==3.10", "snowballstemmer==2.2.0", "cffi==1.17.1", "python-dateutil==2.9.0.post0", "sqlparse==0.5.3", "click-log==0.4.0", "colorama==0.4.6", "restructuredtext-lint==1.4.0", "astroid==3.3.9", "jeepney==0.9.0", "pylint-django==2.6.1", "packaging==24.2", "sphinxcontrib-serializinghtml==2.0.0", "pydata-sphinx-theme==0.15.4", "sphinx-book-theme==1.1.4", "sh==2.2.2", "sphinxcontrib-qthelp==2.0.0", "wheel==0.45.1", "keyring==25.6.0", "pyyaml==6.0.2", "pyproject-api==1.9.0", "readme-renderer==44.0", "django==4.2.20", "urllib3==2.2.3", "pip-tools==7.4.1", "more-itertools==10.6.0", "virtualenv==20.29.3", "pylint-plugin-utils==0.8.2", "pbr==6.1.1", "pluggy==1.5.0", "dill==0.3.9", "isort==6.0.1", "sphinxcontrib-devhelp==2.0.0", "beautifulsoup4==4.13.3", "id==1.5.0", "charset-normalizer==3.4.1", "markdown-it-py==3.0.0", "roman-numerals-py==3.1.0", "pytest-cookies==0.7.0", "types-python-dateutil==2.9.0.20241206", "sphinxcontrib-jsmath==1.0.1", "code-annotations==2.2.0", "sphinx-rtd-theme==3.0.2", "tomlkit==0.13.2", "platformdirs==4.3.7", "sphinxcontrib-htmlhelp==2.1.0", "rich==14.0.0", "iniconfig==2.1.0", "edx-lint==5.6.0", "pytest==8.3.5", "pip==24.2", "requests==2.32.3", "chardet==5.2.0", "typing-extensions==4.13.0", "secretstorage==3.3.3", "requests-toolbelt==1.0.0", "mdurl==0.1.2"]',2,'["code-annotations", "pylint-django"]',3,'["code-annotations", "pylint-django", "django-model-utils"]',1,'["code-annotations"]',0,NULL,0,1,1,0,0,1,1,1,1,1,1,0,1,1,0,0,1,0,1,1,1,19,'{"total_duration": "18714 minutes 23 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, py)", "duration": "5 minutes 26 seconds"}, {"name": "run_ida_tests (ubuntu-latest, 3.12)", "duration": "4 minutes 3 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 22 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 16 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 58 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 50 seconds"}]}','Other','2020-04-29 19:18:59','master','Open edx public templates for apps, libraries and services.',896,34,1,0,0,0,0,0,0,'2026-05-15 04:57:10','Apache License 2.0',12,1,179,5400,1070,1097,32634,99502,5540,0,1,0,0,1,0,0,'','openedx',5,'[]',1,'[''https://discuss.openedx.org'', ''https://openedx.org/getting-help'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://tox.readthedocs.io/en/latest/'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,NULL,'[]',NULL,1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-discussions',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,41,0,'',0,'{}',29,12,'{"@edx/browserslist-config": "1.5.0", "@openedx/frontend-build": "^14.6.6", "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "14.3.1", "@testing-library/user-event": "13.5.0", "axios": "^0.30.0", "axios-mock-adapter": "1.22.0", "babel-plugin-react-intl": "8.2.25", "eslint-plugin-simple-import-sort": "7.0.0", "glob": "7.2.3", "jest": "29.7.0", "rosie": "2.1.1"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@openedx/paragon": "^23.4.5", "@reduxjs/toolkit": "1.9.7", "@tinymce/tinymce-react": "5.1.1", "babel-polyfill": "6.26.0", "classnames": "2.5.1", "core-js": "3.47.0", "dompurify": "^2.4.3", "formik": "2.4.9", "lodash.snakecase": "4.1.1", "prop-types": "15.8.1", "raw-loader": "4.0.2", "react": "18.3.1", "react-dom": "18.3.1", "react-google-recaptcha": "^3.1.0", "react-google-recaptcha-v3": "^1.11.0", "react-helmet": "6.1.0", "react-redux": "7.2.9", "react-router": "6.18.0", "react-router-dom": "6.18.0", "redux": "4.2.1", "regenerator-runtime": "0.14.1", "timeago.js": "4.0.2", "tinymce": "5.10.9", "yup": "0.32.11"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,73,'{"total_duration": "15781 minutes 14 seconds", "checks": [{"name": "tests", "duration": "3 minutes 27 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2020-08-11 23:04:15','master','A React-based micro frontend for the Open edX discussion forums.',8934,106,1,0,0,0,0,0,0,'2026-06-03 10:49:51','GNU AGPLv3',17,1,0,0,6378,909185,2014,0,0,0,0,0,0,1,0,0,'@edx/frontend-app-discussions','openedx',0,'[''https://edx.github.io/frontend-platform/module-Internationalization.html: 404'', ''https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404'']',1,'[''https://codecov.io/gh/openedx/frontend-app-discussions/branch/master/graph/badge.svg?token=3z7XvuzTq3'', ''https://codecov.io/gh/openedx/frontend-app-discussions'', ''https://img.shields.io/badge/license-AGPL-informational'', ''https://github.com/openedx/frontend-app-discussions/blob/master/LICENSE'', ''https://github.com/openedx/devstack'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-app-discussions.git'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://discuss.openedx.org'', ''https://github.com/openedx/frontend-app-discussions/issues'', ''https://openedx.org/getting-help'', ''https://docs.openedx.org/en/latest/developers/references/developer_guide/process/index.html'', ''https://github.com/openedx/frontend-app-discussions/blob/master/.github/pull_request_template.md'', ''https://openedx.org/code-of-conduct/'', ''https://github.com/openedx/frontend-app-discussions/blob/master/docs/decisions/0002-feature-based-application-organization.rst'']',1,1,0,0,'','',1,'2026-03-30','2024-01-08','7',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/edx-submissions',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,106,0,'[]',0,'',0,0,'','',10,'["django==5.2.14", "django-model-utils==5.0.0", "jsonfield==3.2.0", "djangorestframework==3.17.1", "pytz==2026.2", "pyyaml==6.0.3", "edx-django-release-util==1.5.0", "asgiref==3.11.1", "six==1.17.0", "sqlparse==0.5.5"]',106,'["pytest-cov==7.1.0", "pytest==9.0.3", "snowballstemmer==3.1.0", "six==1.17.0", "coveralls==4.1.0", "jinja2==3.1.6", "pycodestyle==2.14.0", "isort==8.0.1", "python-dateutil==2.9.0.post0", "filelock==3.29.0", "coverage[toml]==7.14.0", "sphinxcontrib-htmlhelp==2.1.0", "typing-extensions==4.15.0", "factory-boy==3.3.3", "djangorestframework==3.17.1", "attrs==26.1.0", "sphinxcontrib-jsmath==1.0.1", "iniconfig==2.3.0", "sphinx-book-theme==1.2.0", "sqlparse==0.5.5", "markupsafe==3.0.3", "edx-ccx-keys==2.0.2", "jsonfield==3.2.0", "django-waffle==5.0.0", "code-annotations==3.0.0", "rich==15.0.0", "django-model-utils==5.0.0", "pymongo==4.17.0", "pockets==0.9.1", "wheel==0.47.0", "pluggy==1.6.0", "platformdirs==4.9.6", "urllib3==2.7.0", "stevedore==5.8.0", "pyproject-api==1.10.0", "setuptools==82.0.1", "sphinxcontrib-napoleon==0.7", "dnspython==2.8.0", "sphinxcontrib-applehelp==2.0.0", "typer==0.26.0", "markdown-it-py==4.2.0", "build==1.5.0", "dill==0.4.1", "pytz==2026.2", "tomlkit==0.15.0", "pydata-sphinx-theme==0.16.1", "pylint-plugin-utils==0.9.0", "accessible-pygments==0.0.5", "charset-normalizer==3.4.7", "babel==2.18.0", "faker==40.19.1", "distlib==0.4.0", "python-slugify==8.0.4", "edx-django-release-util==1.5.0", "cffi==2.0.0", "click-log==0.4.0", "pycparser==3.0", "mccabe==0.7.0", "asgiref==3.11.1", "sphinxcontrib-devhelp==2.0.0", "text-unidecode==1.3", "ddt==1.7.2", "pylint-celery==0.3", "edx-opaque-keys[django]==4.0.0", "pytest-django==4.12.0", "soupsieve==2.8", "pip-tools==7.5.3", "pylint-django==2.7.0", "edx-lint==6.1.0", "sphinxcontrib-qthelp==2.0.0", "edx-django-utils==8.0.1", "docutils==0.22.4", "click==8.4.1", "idna==3.16", "fastavro==1.12.2", "mdurl==0.1.2", "tomli-w==1.2.0", "django==5.2.14", "roman-numerals==4.1.0", "pyproject-hooks==1.2.0", "virtualenv==21.3.3", "packaging==26.2", "sphinx==9.1.0", "shellingham==1.5.4", "colorama==0.4.6", "annotated-doc==0.0.4", "openedx-events==10.2.0", "beautifulsoup4==4.14.3", "tox==4.54.0", "imagesize==2.0.0", "pynacl==1.6.2", "alabaster==1.0.0", "freezegun==1.5.5", "django-crum==0.7.9", "sphinxcontrib-serializinghtml==2.0.0", "psutil==7.2.2", "astroid==4.0.4", "cachetools==7.1.4", "mock==5.2.0", "python-discovery==1.3.1", "pylint==4.0.5", "requests==2.34.2", "certifi==2026.5.20", "pygments==2.20.0", "pip==26.1.1", "pyyaml==6.0.3"]',8,'["django-waffle", "edx-django-utils", "factory-boy", "code-annotations", "edx-django-release-util", "pylint-django", "pytest-django", "djangorestframework"]',11,'["django-waffle", "edx-django-utils", "factory-boy", "django-crum", "code-annotations", "edx-django-release-util", "pylint-django", "django-model-utils", "jsonfield", "pytest-django", "djangorestframework"]',4,'["edx-django-utils", "django-waffle", "edx-django-release-util", "code-annotations"]',1,NULL,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,15,'{"total_duration": "1 minutes 20 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": "1 minutes 20 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42-drf315)", "duration": "1 minutes 19 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-drf315)", "duration": "1 minutes 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42-drflatest)", "duration": "1 minutes 12 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 8 seconds"}, {"name": "check migrations (ubuntu-latest, 3.12)", "duration": "0 minutes 56 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 28 seconds"}]}','Other','2014-06-05 18:19:35','master','API for creating submissions and scores',699,38,1,0,0,0,0,0,0,'2026-06-05 04:58:39','GNU AGPLv3',1,1,0,0,705,0,4634,337220,0,0,0,0,0,1,0,0,'','openedx',4,'[''https://docs.openedx.org/projects/edx-submissions: 404'', ''https://openedx.org/getting-help: 403'', ''https://openedx.org/slack: 403'', ''https://openedx.org/r/how-to-contribute: 403'', ''https://openedx.org/code-of-conduct/: 403'']',1,'[''https://discuss.openedx.org'', ''https://github.com/openedx/edx-submissions/issues'', ''https://openedx.slack.com/'', ''https://backstage.openedx.org/catalog/default/component/edx-submissions'', ''https://img.shields.io/pypi/v/edx-submissions.svg'', ''https://pypi.python.org/pypi/edx-submissions/'', ''https://github.com/openedx/edx-submissions/actions/workflows/ci.yml/badge.svg?branch=master'', ''https://github.com/openedx/edx-submissions/actions/workflows/ci.yml?branch=master'', ''https://codecov.io/github/openedx/edx-submissions/coverage.svg?branch=master'', ''https://codecov.io/github/openedx/edx-submissions?branch=master'', ''https://readthedocs.org/projects/edx-submissions/badge/?version=latest'', ''https://img.shields.io/pypi/pyversions/edx-submissions.svg'', ''https://img.shields.io/github/license/openedx/edx-submissions.svg'', ''https://github.com/openedx/edx-submissions/blob/master/LICENSE.txt'', ''https://img.shields.io/badge/Status-Experimental-yellow'', ''https://img.shields.io/badge/Status-Maintained-brightgreen'', ''https://img.shields.io/badge/Status-Deprecated-orange'', ''https://img.shields.io/badge/Status-Unsupported-red'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-submissions','[''3'', ''3.12'']','http://github.com/openedx/edx-submissions.git',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/taxonomy-connector',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,146,0,'[]',0,'',0,0,'','',110,'["billiard==4.2.4", "djangorestframework==3.17.1", "snowballstemmer==3.0.1", "mccabe==0.7.0", "psutil==7.2.2", "django-ses==4.7.2", "click-plugins==1.1.1.2", "edx-ccx-keys==2.0.2", "prompt-toolkit==3.0.52", "build==1.5.0", "tomli-w==1.2.0", "stevedore==5.7.0", "polib==1.2.0", "sqlparse==0.5.5", "pycodestyle==2.14.0", "edx-django-utils==8.0.1", "openedx-events==11.2.0", "python-dateutil==2.9.0.post0", "tomlkit==0.15.0", "pytest-cov==7.1.0", "pylint-django==2.7.0", "pycparser==3.0", "edx-opaque-keys[django]==4.0.0", "algoliasearch==1.20.0", "colorama==0.4.6", "click-repl==0.3.0", "idna==3.14", "amqp==5.3.1", "pylint-celery==0.3", "responses==0.26.0", "pylint==4.0.5", "django-object-actions==5.0.1", "pyjwt==2.12.1", "python-discovery==1.3.0", "pynacl==1.6.2", "code-annotations==3.0.0", "click-log==0.4.0", "tzlocal==5.3.1", "pytz==2026.2", "pyyaml==6.0.3", "click-didyoumean==0.3.1", "fastavro==1.12.2", "cachetools==7.1.1", "asgiref==3.11.1", "pytest==9.0.3", "celery==5.6.3", "filelock==3.29.0", "edx-lint==6.1.0", "click==8.3.3", "testfixtures==11.0.0", "django==5.2.14", "dnspython==2.8.0", "pytest-django==4.12.0", "django-solo==2.5.1", "mock==5.2.0", "edx-rest-api-client==7.0.0", "wheel==0.47.0", "diff-cover==10.2.0", "factory-boy==3.3.3", "attrs==26.1.0", "six==1.17.0", "pyproject-api==1.10.0", "django-crum==0.7.9", "packaging==26.2", "pymongo==4.17.0", "chardet==7.4.3", "s3transfer==0.17.0", "pluggy==1.6.0", "urllib3==2.7.0", "jinja2==3.1.6", "vine==5.1.0", "pydocstyle==6.3.0", "pip-tools==7.5.3", "edx-i18n-tools==2.0.0", "lxml-html-clean==0.4.4", "kombu==5.6.2", "virtualenv==21.3.1", "path==16.16.0", "cffi==2.0.0", "django-model-utils==5.0.0", "coverage[toml]==7.14.0", "tox==4.53.1", "typing-extensions==4.15.0", "pylint-plugin-utils==0.9.0", "ddt==1.7.2", "platformdirs==4.9.6", "lxml[html-clean]==6.1.0", "astroid==4.0.4", "pygments==2.20.0", "python-slugify==8.0.4", "soupsieve==2.8.3", "markupsafe==3.0.3", "tzdata==2026.2", "distlib==0.4.0", "isort==8.0.1", "faker==40.15.0", "charset-normalizer==3.4.7", "pyproject-hooks==1.2.0", "iniconfig==2.3.0", "requests==2.33.1", "beautifulsoup4==4.14.3", "wcwidth==0.7.0", "jmespath==1.1.0", "django-waffle==5.0.0", "django-filter==25.2", "certifi==2026.4.22", "text-unidecode==1.3", "boto3==1.43.6", "dill==0.4.1", "botocore==1.43.6"]',146,'["billiard==4.2.4", "djangorestframework==3.17.1", "roman-numerals==4.1.0", "snowballstemmer==3.0.1", "mccabe==0.7.0", "readme-renderer==44.0", "psutil==7.2.2", "django-ses==4.7.2", "alabaster==1.0.0", "sphinxcontrib-serializinghtml==2.0.0", "click-plugins==1.1.1.2", "edx-ccx-keys==2.0.2", "prompt-toolkit==3.0.52", "build==1.5.0", "tomli-w==1.2.0", "stevedore==5.7.0", "polib==1.2.0", "sqlparse==0.5.5", "pycodestyle==2.14.0", "edx-django-utils==8.0.1", "sphinxcontrib-qthelp==2.0.0", "restructuredtext-lint==2.0.2", "accessible-pygments==0.0.5", "openedx-events==11.2.0", "python-dateutil==2.9.0.post0", "tomlkit==0.15.0", "keyring==25.7.0", "pytest-cov==7.1.0", "pylint-django==2.7.0", "pycparser==3.0", "edx-opaque-keys[django]==4.0.0", "doc8==2.0.0", "algoliasearch==1.20.0", "colorama==0.4.6", "click-repl==0.3.0", "idna==3.14", "amqp==5.3.1", "pylint-celery==0.3", "responses==0.26.0", "setuptools==82.0.1", "twine==6.2.0", "pylint==4.0.5", "django-object-actions==5.0.1", "pyjwt==2.12.1", "python-discovery==1.3.0", "pynacl==1.6.2", "code-annotations==3.0.0", "click-log==0.4.0", "markdown-it-py==4.2.0", "tzlocal==5.3.1", "pytz==2026.2", "pyyaml==6.0.3", "click-didyoumean==0.3.1", "fastavro==1.12.2", "cryptography==48.0.0", "id==1.6.1", "more-itertools==11.0.2", "cachetools==7.1.1", "asgiref==3.11.1", "pytest==9.0.3", "jaraco-context==6.1.2", "celery==5.6.3", "nh3==0.3.5", "filelock==3.29.0", "pydata-sphinx-theme==0.16.1", "edx-lint==6.1.0", "click==8.3.3", "testfixtures==11.0.0", "django==5.2.14", "dnspython==2.8.0", "pytest-django==4.12.0", "django-solo==2.5.1", "mock==5.2.0", "edx-rest-api-client==7.0.0", "secretstorage==3.5.0", "wheel==0.47.0", "diff-cover==10.2.0", "factory-boy==3.3.3", "sphinx==9.1.0", "attrs==26.1.0", "six==1.17.0", "pyproject-api==1.10.0", "requests-toolbelt==1.0.0", "django-crum==0.7.9", "docutils==0.21.2", "packaging==26.2", "pymongo==4.17.0", "chardet==7.4.3", "s3transfer==0.17.0", "pluggy==1.6.0", "urllib3==2.7.0", "jinja2==3.1.6", "vine==5.1.0", "pydocstyle==6.3.0", "pip-tools==7.5.3", "edx-i18n-tools==2.0.0", "lxml-html-clean==0.4.4", "kombu==5.6.2", "virtualenv==21.3.1", "sphinxcontrib-applehelp==2.0.0", "imagesize==2.0.0", "path==16.16.0", "jeepney==0.9.0", "mdurl==0.1.2", "cffi==2.0.0", "django-model-utils==5.0.0", "coverage[toml]==7.14.0", "tox==4.53.1", "typing-extensions==4.15.0", "pylint-plugin-utils==0.9.0", "ddt==1.7.2", "rich==15.0.0", "platformdirs==4.9.6", "pip==26.1.1", "jaraco-classes==3.4.0", "lxml[html-clean]==6.1.0", "jaraco-functools==4.4.0", "sphinxcontrib-devhelp==2.0.0", "astroid==4.0.4", "sphinxcontrib-htmlhelp==2.1.0", "pygments==2.20.0", "python-slugify==8.0.4", "soupsieve==2.8.3", "babel==2.18.0", "markupsafe==3.0.3", "tzdata==2026.2", "distlib==0.4.0", "isort==8.0.1", "faker==40.15.0", "charset-normalizer==3.4.7", "pyproject-hooks==1.2.0", "iniconfig==2.3.0", "requests==2.33.1", "beautifulsoup4==4.14.3", "wcwidth==0.7.0", "rfc3986==2.0.0", "jmespath==1.1.0", "django-waffle==5.0.0", "django-filter==25.2", "certifi==2026.4.22", "sphinx-book-theme==1.2.0", "text-unidecode==1.3", "sphinxcontrib-jsmath==1.0.1", "boto3==1.43.6", "dill==0.4.1", "botocore==1.43.6"]',12,'["django-waffle", "edx-django-utils", "djangorestframework", "edx-rest-api-client", "django-solo", "edx-i18n-tools", "pylint-django", "factory-boy", "pytest-django", "django-object-actions", "django-filter", "code-annotations"]',15,'["django-model-utils", "django-waffle", "edx-django-utils", "djangorestframework", "edx-rest-api-client", "django-solo", "edx-i18n-tools", "pylint-django", "factory-boy", "pytest-django", "django-object-actions", "django-ses", "django-crum", "django-filter", "code-annotations"]',7,'["django-waffle", "edx-django-utils", "edx-rest-api-client", "django-solo", "edx-i18n-tools", "django-filter", "code-annotations"]',0,NULL,1,0,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,36,'{"total_duration": "7898 minutes 5 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 25 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 24 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 10 seconds"}, {"name": "check migrations (ubuntu-latest, 3.12)", "duration": "0 minutes 50 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii-annotations)", "duration": "0 minutes 37 seconds"}, {"name": "push", "duration": "0 minutes 19 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 53 seconds"}]}','Other','2020-08-28 15:55:21','master','A python package that communicates with 3rd party taxonomy vendors',1054,18,1,0,0,0,0,0,0,'2026-06-08 00:43:08','GNU AGPLv3',15,1,983,0,3100,1016,3852,701934,0,1,1,0,0,1,0,0,'','openedx',2,'[]',1,'[''https://img.shields.io/pypi/v/taxonomy-connector.svg'', ''https://pypi.org/project/taxonomy-connector/'', ''http://codecov.io/github/openedx/taxonomy-connector/coverage.svg?branch=master'', ''http://codecov.io/github/openedx/taxonomy-connector?branch=master'', ''https://github.com/openedx/taxonomy-connector/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/taxonomy-connector/actions?query=workflow%3A%22Python+CI%22'', ''https://open.edx.org/getting-help'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'taxonomy-connector','[''3'', ''3.12'']','https://github.com/openedx/taxonomy-connector',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/codejail-includes',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,93,0,'[]',0,'',0,0,'','',0,'[]',93,'["pyproject-api==1.10.0", "pluggy==1.6.0", "jaraco-functools==4.4.0", "accessible-pygments==0.0.5", "jinja2==3.1.6", "pylint-plugin-utils==0.9.0", "six==1.17.0", "sphinxcontrib-devhelp==2.0.0", "nh3==0.3.3", "tomlkit==0.14.0", "soupsieve==2.8.3", "doc8==2.0.0", "beautifulsoup4==4.14.3", "sphinx-book-theme==1.1.4", "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-applehelp==2.0.0", "jeepney==0.9.0", "markupsafe==3.0.3", "sphinx==9.1.0", "pylint==4.0.5", "filelock==3.25.0", "stevedore==5.7.0", "astroid==4.0.4", "charset-normalizer==3.4.5", "pylint-django==2.7.0", "sphinxcontrib-htmlhelp==2.1.0", "edx-lint==5.6.0", "code-annotations==2.3.2", "docutils==0.21.2", "pytest==9.0.2", "chardet==7.0.1", "id==1.6.1", "urllib3==2.6.3", "setuptools==82.0.0", "colorama==0.4.6", "pyproject-hooks==1.2.0", "roman-numerals==4.1.0", "docutils==0.22.4", "distlib==0.4.0", "imagesize==2.0.0", "twine==6.2.0", "sphinxcontrib-serializinghtml==2.0.0", "requests-toolbelt==1.0.0", "more-itertools==10.8.0", "requests==2.32.5", "restructuredtext-lint==2.0.2", "typing-extensions==4.15.0", "babel==2.18.0", "diff-cover==10.2.0", "python-slugify==8.0.4", "pip==26.0.1", "coverage[toml]==7.13.4", "virtualenv==21.1.0", "markdown-it-py==4.0.0", "jaraco-context==6.1.0", "pylint-celery==0.3", "pygments==2.19.2", "alabaster==1.0.0", "pip-tools==7.5.3", "mdurl==0.1.2", "certifi==2026.2.25", "pydocstyle==6.3.0", "secretstorage==3.5.0", "text-unidecode==1.3", "mccabe==0.7.0", "wheel==0.46.3", "isort==8.0.1", "cffi==2.0.0", "tox==4.48.1", "pycodestyle==2.14.0", "pydata-sphinx-theme==0.15.4", "pytest-cov==7.0.0", "pyyaml==6.0.3", "python-discovery==1.1.0", "click-log==0.4.0", "build==1.4.0", "idna==3.11", "cryptography==46.0.5", "cachetools==7.0.3", "platformdirs==4.9.4", "rich==14.3.3", "click==8.3.1", "sphinxcontrib-jsmath==1.0.1", "keyring==25.7.0", "pycparser==3.0", "snowballstemmer==3.0.1", "dill==0.4.1", "iniconfig==2.3.0", "jaraco-classes==3.4.0", "tomli-w==1.2.0", "rfc3986==2.0.0", "readme-renderer==44.0", "packaging==26.0"]',2,'["pylint-django", "code-annotations"]',2,'["pylint-django", "code-annotations"]',1,'["code-annotations"]',0,NULL,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,7,'{"total_duration": "0 minutes 28 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 28 seconds"}, {"name": "tests (ubuntu-latest, 3.12, default)", "duration": "0 minutes 24 seconds"}]}','Other','2022-05-16 18:54:49','main','A package that is included during sandboxed codejail operations.',91,7,1,0,0,0,0,0,0,'2026-05-30 15:03:44','GNU AGPLv3',5,1,0,0,0,0,2602,55185,0,1,1,0,0,0,0,0,'','openedx',0,'[''https://openedx-slack-invite.herokuapp.com/: 404'', ''https://github.com/openedx/sandboxcodejail-includes/workflows/Python%20CI/badge.svg?branch=main: 404'', ''https://github.com/openedx/codejail-includes/actions: 504'', ''https://github.com/openedx/codejail-includes/blob/main/LICENSE: 504'']',1,'[''https://openedx.atlassian.net/browse/BOM-2579'', ''https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://discuss.openedx.org'', ''https://openedx.slack.com/'', ''https://openedx.org/getting-help'', ''https://img.shields.io/pypi/v/codejail-includes.svg'', ''https://pypi.python.org/pypi/codejail-includes/'', ''https://img.shields.io/github/license/openedx/sandbox-packages.svg'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,1,NULL,0,'codejail-includes','[''3'', ''3.12'']','https://github.com/openedx/codejail-includes',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/api-doc-tools',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,107,0,'[]',0,'',0,0,'','',11,'["uritemplate==4.2.0", "django==5.2.12", "inflection==0.5.1", "asgiref==3.11.1", "packaging==26.0", "djangorestframework==3.16.1", "pyyaml==6.0.3", "drf-yasg==1.21.15", "sqlparse==0.5.5", "pytz==2026.1.post1", "setuptools==82.0.0"]',107,'["sphinxcontrib-applehelp==2.0.0", "pylint-django==2.7.0", "tomli-w==1.2.0", "click-log==0.4.0", "jaraco-context==6.1.0", "pycodestyle==2.14.0", "doc8==2.0.0", "pytz==2026.1.post1", "pip==26.0.1", "inflection==0.5.1", "pycparser==3.0", "pyproject-api==1.10.0", "djangorestframework==3.16.1", "sphinxcontrib-htmlhelp==2.1.0", "markupsafe==3.0.3", "packaging==26.0", "filelock==3.25.0", "nh3==0.3.3", "pylint-plugin-utils==0.9.0", "edx-lint==5.6.0", "babel==2.18.0", "alabaster==1.0.0", "six==1.17.0", "charset-normalizer==3.4.5", "cryptography==46.0.5", "tox==4.48.1", "sphinxcontrib-devhelp==2.0.0", "keyring==25.7.0", "colorama==0.4.6", "cffi==2.0.0", "beautifulsoup4==4.14.3", "cachetools==7.0.3", "build==1.4.0", "jeepney==0.9.0", "sqlparse==0.5.5", "tomlkit==0.14.0", "wheel==0.46.3", "chardet==7.0.1", "requests-toolbelt==1.0.0", "sphinxcontrib-serializinghtml==2.0.0", "accessible-pygments==0.0.5", "lxml[html-clean]==6.0.2", "pyyaml==6.0.3", "rich==14.3.3", "twine==6.2.0", "dill==0.4.1", "typing-extensions==4.15.0", "asgiref==3.11.1", "jaraco-classes==3.4.0", "iniconfig==2.3.0", "pydata-sphinx-theme==0.15.4", "more-itertools==10.8.0", "lxml-html-clean==0.4.4", "python-discovery==1.1.0", "virtualenv==21.1.0", "pytest-cov==7.0.0", "stevedore==5.7.0", "jinja2==3.1.6", "pylint-celery==0.3", "polib==1.2.0", "isort==8.0.1", "pytest-django==4.12.0", "diff-cover==10.2.0", "idna==3.11", "restructuredtext-lint==2.0.2", "code-annotations==2.3.2", "imagesize==2.0.0", "sphinx-book-theme==1.1.4", "markdown-it-py==4.0.0", "pygments==2.19.2", "pytest==9.0.2", "drf-yasg==1.21.15", "coverage[toml]==7.13.4", "jaraco-functools==4.4.0", "urllib3==2.6.3", "id==1.6.1", "secretstorage==3.5.0", "setuptools==82.0.0", "click==8.3.1", "pylint==4.0.5", "docutils==0.21.2", "pip-tools==7.5.3", "roman-numerals==4.1.0", "mccabe==0.7.0", "mdurl==0.1.2", "pluggy==1.6.0", "astroid==4.0.4", "requests==2.32.5", "sphinxcontrib-qthelp==2.0.0", "pydocstyle==6.3.0", "soupsieve==2.8.3", "readme-renderer==44.0", "uritemplate==4.2.0", "pyproject-hooks==1.2.0", "rfc3986==2.0.0", "certifi==2026.2.25", "sphinxcontrib-jsmath==1.0.1", "python-slugify==8.0.4", "snowballstemmer==3.0.1", "sphinx==9.1.0", "django==5.2.12", "docutils==0.22.4", "text-unidecode==1.3", "path==16.16.0", "distlib==0.4.0", "edx-i18n-tools==1.9.0", "platformdirs==4.9.4"]',5,'["djangorestframework", "edx-i18n-tools", "pylint-django", "code-annotations", "pytest-django"]',6,'["djangorestframework", "edx-i18n-tools", "pylint-django", "drf-yasg", "code-annotations", "pytest-django"]',2,'["code-annotations", "edx-i18n-tools"]',1,NULL,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,24,'{"total_duration": "6727 minutes 37 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 17 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 40 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": "0 minutes 40 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}','Other','2019-10-29 19:55:09','master','Tools for writing and generating API documentation for edX REST APIs',431,16,1,0,0,0,0,0,0,'2026-06-04 05:54:45','Apache License 2.0',12,1,0,0,0,0,5751,46803,0,1,1,0,0,1,0,0,'','openedx',3,'[]',1,'[''https://www.django-rest-framework.org/'', ''https://github.com/axnsan12/drf-yasg'', ''https://swagger.io/docs/specification/about/'', ''https://open.edx.org/'', ''https://github.com/openedx/.github/blob/master/CONTRIBUTING.md'', ''https://open.edx.org/getting-help'', ''https://img.shields.io/pypi/v/edx-api-doc-tools.svg'', ''https://pypi.python.org/pypi/edx-api-doc-tools/'', ''https://github.com/openedx/api-doc-tools/workflows/Python%20CI/badge.svg?branch=master'', ''https://github.com/openedx/api-doc-tools/actions?query=workflow%3A%22Python+CI%22'', ''http://codecov.io/github/edx/api-doc-tools/coverage.svg?branch=master'', ''http://codecov.io/github/edx/api-doc-tools?branch=master'', ''https://readthedocs.org/projects/edx-api-doc-tools/badge/?version=latest'', ''http://edx-api-doc-tools.readthedocs.io/en/latest/'', ''https://img.shields.io/pypi/pyversions/edx-api-doc-tools.svg'', ''https://img.shields.io/github/license/edx/api-doc-tools.svg'', ''https://github.com/openedx/api-doc-tools/blob/master/LICENSE.txt'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,1,0,1,NULL,0,'edx-api-doc-tools','[''3'', ''3.12'']','https://github.com/openedx/api-doc-tools',1,1,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/django-require',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,1,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,0,1,1,1,2,'{"total_duration": "1 minutes 4 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.11, django42)", "duration": "1 minutes 3 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 0 seconds"}]}','Other','2022-09-07 14:36:46','master','Legacy fork of a Django staticfiles post-processor for optimizing with RequireJS.',37199,4,1,0,0,0,1,0,0,'2026-05-30 14:54:07','Apache License 2.0',0,1,0,0,0,1307550,0,31119,0,0,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/django-require/actions: 504'', ''https://github.com/openedx/edx-platform: 504'', ''https://github.com/edx/django-require: 504'', ''http://django-storages.readthedocs.org/en/latest/: 429'', ''https://github.com/etianen/django-require-s3: 504'', ''https://github.com/collab-project/django-require-license: 504'', ''http://github.com/etianen/django-require: 504'', ''http://www.etianen.com/: 504'', ''http://twitter.com/etianen: 520'', ''http://www.google.com/profiles/david.etianen: 404'']',0,'[''https://img.shields.io/pypi/v/openedx-django-require.svg'', ''https://pypi.python.org/project/openedx-django-require/'', ''https://github.com/openedx/django-require/workflows/Python%20CI/badge.svg?branch=main'', ''https://codecov.io/github/openedx/django-require/coverage.svg?branch=main'', ''https://codecov.io/github/openedx/django-require?branch=main'', ''http://requirejs.org/'', ''https://github.com/vtemian/django-require'', ''https://github.com/etianen/django-require'', ''https://github.com/openedx/django-require/releases/tag/final-bsd-3c-contribution'', ''https://openedx.org/r/how-to-contribute'', ''https://openedx.org/code-of-conduct/'', ''https://backstage.openedx.org/catalog/default/component/django-require'', ''https://github.com/requirejs/almond'', ''http://groups.google.com/group/django-require'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,'openedx-django-require','[''3.11'', ''3.12'']','https://github.com/etianen/django-require',1,0,1,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-app-foundation-ios',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,3,'{"total_duration": "", "checks": []}','Other','2024-10-07 11:30:41','main','',74,5,1,0,0,0,0,0,0,'2026-05-30 15:29:28','Apache License 2.0',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://github.com/openedx/openedx-app-foundation-ios.git'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/frontend-app-learning',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,49,0,'',0,'{}',38,11,'{"@openedx/frontend-build": "^14.6.6", "@pact-foundation/pact": "^13.0.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "14.6.1", "axios-mock-adapter": "2.1.0", "bundlewatch": "^0.4.0", "eslint-import-resolver-webpack": "^0.13.9", "jest-when": "^3.6.0", "rosie": "2.1.1", "ts-jest": "29.1.4"}','{"@edx/brand": "npm:@openedx/brand-openedx@^1.2.3", "@edx/browserslist-config": "1.5.1", "@edx/frontend-component-footer": "^14.6.0", "@edx/frontend-component-header": "^8.2.1", "@edx/frontend-lib-special-exams": "^4.0.0", "@edx/frontend-platform": "^8.7.0", "@edx/openedx-atlas": "^0.7.0", "@fortawesome/free-brands-svg-icons": "5.15.4", "@fortawesome/free-regular-svg-icons": "5.15.4", "@fortawesome/free-solid-svg-icons": "5.15.4", "@fortawesome/react-fontawesome": "^0.1.4", "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.4.5", "@popperjs/core": "2.11.8", "@reduxjs/toolkit": "1.9.7", "buffer": "^6.0.3", "classnames": "2.5.1", "copy-webpack-plugin": "^12.0.0", "joi": "^17.11.0", "js-cookie": "3.0.5", "lodash": "^4.17.21", "lodash.camelcase": "4.3.0", "postcss-loader": "^8.1.1", "prop-types": "15.8.1", "query-string": "^7.1.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-helmet": "6.1.0", "react-redux": "7.2.9", "react-router": "6.15.0", "react-router-dom": "6.15.0", "react-share": "4.4.1", "redux": "4.2.1", "reselect": "4.1.8", "sass": "^1.79.3", "sass-loader": "^16.0.2", "source-map-loader": "^5.0.0", "truncate-html": "1.0.4"}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,92,'{"total_duration": "4882 minutes 18 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 51 seconds"}]}','Other','2019-04-30 20:28:43','master','Front-end for the Open edX course experience, implemented using React and Paragon.',20773,323,1,0,0,0,0,0,0,'2026-06-08 01:20:39','GNU AGPLv3',50,0,128,0,752,1288456,2076,0,0,0,0,0,0,0,0,0,'@edx/frontend-app-learning','openedx',0,'[''http://local.openedx.io: HTTPConnectionPool(host=\''local.openedx.io\'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=\''local.openedx.io\'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))'', ''https://support.edx.org/hc/en-us/articles/206503858-How-do-I-verify-my-identity: 404'', ''https://twitter.com/openedx: 403'']',0,'[''https://codecov.io/gh/edx/frontend-app-learning/branch/master/graph/badge.svg?token=3z7XvuzTq3'', ''https://codecov.io/gh/edx/frontend-app-learning'', ''https://img.shields.io/badge/license-AGPL-informational'', ''https://github.com/openedx/frontend-app-account/blob/master/LICENSE'', ''https://github.com/overhangio/tutor'', ''https://github.com/overhangio/tutor-mfe'', ''https://github.com/openedx/frontend-app-learning.git'', ''https://github.com/nvm-sh/nvm'', ''https://github.com/openedx/frontend-build'', ''https://openedx.github.io/frontend-platform/'', ''https://github.com/openedx/frontend-plugin-framework'', ''https://openedx.atlassian.net/browse/TNL-8678'', ''https://support.edx.org/hc/en-us/articles/360000038428-Entering-math-expressions-in-assignments-or-the-calculator'', ''https://support.edx.org/hc/en-us/articles/206502008-What-is-a-verified-certificate'', ''https://github.com/openedx/frontend-app-learning/issues'', ''https://openedx.org/slack'', ''https://openedx.slack.com/'', ''https://openedx.slack.com/archives/C04BM6YC7A6'', ''https://openedx.org/community/connect'', ''https://discuss.openedx.org'', ''https://openedx.org/r/how-to-contribute'', ''https://github.com/openedx/.github/blob/master/AI_POLICY.md'', ''https://openedx.org/code-of-conduct/'']',1,1,0,0,'','',1,'2026-04-06','2022-03-29','9',0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/docs.openedx.org',NULL,NULL,NULL,1,'2026-06-08',1,1,0,0,59,0,'[]',0,'',0,0,'','',53,'["markupsafe==3.0.3", "mdurl==0.1.2", "sphinxcontrib-images==1.0.1", "click==8.4.1", "six==1.17.0", "sphinxcontrib-qthelp==2.0.0", "typing-extensions==4.15.0", "sphinxext-rediraffe==0.3.0", "linuxdoc==20260504", "sphinxcontrib-applehelp==2.0.0", "certifi==2026.5.20", "requests==2.34.2", "alabaster==1.0.0", "charset-normalizer==3.4.7", "myst-parser==5.1.0", "pyyaml==6.0.3", "sphinx==9.1.0", "fspath==20230629", "idna==3.17", "packaging==26.2", "sphinxcontrib-youtube==1.5.0", "watchfiles==1.2.0", "beautifulsoup4==4.14.3", "uvicorn==0.48.0", "sphinx-design==0.7.0", "colorama==0.4.6", "docutils==0.22.4", "sphinx-book-theme==1.2.0", "sphinx-notfound-page==1.1.0", "markdown-it-py==4.2.0", "sphinx-copybutton==0.5.2", "pydata-sphinx-theme==0.16.1", "snowballstemmer==3.1.0", "mdit-py-plugins==0.6.1", "sphinx-tags==0.4", "soupsieve==2.8.4", "imagesize==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "accessible-pygments==0.0.5", "babel==2.18.0", "h11==0.16.0", "roman-numerals==4.1.0", "sphinxcontrib-devhelp==2.0.0", "jinja2==3.1.6", "anyio==4.13.0", "sphinx-autobuild==2025.8.25", "websockets==16.0", "sphinxemoji==0.3.2", "sphinxcontrib-jsmath==1.0.1", "urllib3==2.7.0", "sphinxcontrib-htmlhelp==2.1.0", "pygments==2.20.0", "starlette==1.2.1"]',59,'["markupsafe==3.0.3", "mdurl==0.1.2", "sphinxcontrib-images==1.0.1", "click==8.4.1", "six==1.17.0", "sphinxcontrib-qthelp==2.0.0", "typing-extensions==4.15.0", "sphinxext-rediraffe==0.3.0", "linuxdoc==20260504", "sphinxcontrib-applehelp==2.0.0", "certifi==2026.5.20", "pip-tools==7.5.3", "requests==2.34.2", "alabaster==1.0.0", "charset-normalizer==3.4.7", "myst-parser==5.1.0", "pyyaml==6.0.3", "sphinx==9.1.0", "packaging==26.2", "fspath==20230629", "idna==3.17", "sphinxcontrib-youtube==1.5.0", "watchfiles==1.2.0", "beautifulsoup4==4.14.3", "uvicorn==0.48.0", "sphinx-design==0.7.0", "colorama==0.4.6", "docutils==0.22.4", "pyproject-hooks==1.2.0", "sphinx-book-theme==1.2.0", "sphinx-notfound-page==1.1.0", "markdown-it-py==4.2.0", "setuptools==82.0.1", "sphinx-copybutton==0.5.2", "pydata-sphinx-theme==0.16.1", "snowballstemmer==3.1.0", "mdit-py-plugins==0.6.1", "wheel==0.47.0", "sphinx-tags==0.4", "soupsieve==2.8.4", "imagesize==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "accessible-pygments==0.0.5", "h11==0.16.0", "babel==2.18.0", "roman-numerals==4.1.0", "sphinxcontrib-devhelp==2.0.0", "build==1.5.0", "jinja2==3.1.6", "anyio==4.13.0", "sphinx-autobuild==2025.8.25", "websockets==16.0", "sphinxemoji==0.3.2", "sphinxcontrib-jsmath==1.0.1", "urllib3==2.7.0", "sphinxcontrib-htmlhelp==2.1.0", "pygments==2.20.0", "pip==26.1.1", "starlette==1.2.1"]',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,1,1,14,'{"total_duration": "9385 minutes 27 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 22 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 47 seconds"}, {"name": "Dependabot", "duration": "0 minutes 35 seconds"}, {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 53 seconds"}]}','Other','2022-03-14 18:35:37','main','Open edX Official Documentation',188469,86,1,0,0,0,0,0,0,'2026-06-07 01:14:32','Other',6,0,2585,0,1648,27894,1875,19600,0,1,0,0,0,0,0,0,'','openedx',0,'[''https://github.com/openedx/docs.openedx.org: 504'', ''https://en.wikipedia.org/wiki/ReStructuredText: 403'']',0,'[''https://docs.openedx.org/en/latest/documentors/how-tos/report_problem_with_docs.html'', ''https://docs.openedx.org/en/latest/documentors/quickstarts/first_documentation_pr.html'', ''https://docs.openedx.org/en/latest/documentors/quickstarts/update_doc_via_github.html'', ''https://docs.openedx.org/en/latest/documentors/quickstarts/quick_start_add_doc.html'', ''https://docs.openedx.org/en/latest/documentors/index.html'', ''https://github.com/openedx/.github/blob/master/AI_POLICY.md'', ''https://docs.openedx.org/'', ''https://www.sphinx-doc.org/'', ''https://docs.github.com/en/get-started/using-github/github-flow'', ''https://docs.openedx.org/en/latest/documentors/how-tos/develop_docs_locally.html'']',1,1,0,1,'.readthedocs.yaml','2',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/cypress-e2e-tests',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,19,0,'',0,'{}',0,19,'{"@babel/core": "^7.29.0", "@babel/eslint-parser": "^7.28.6", "@cypress/grep": "^6.0.0", "@edx/eslint-config": "^4.4.0", "cypress": "^15.12.0", "cypress-failed-log": "^2.5.0", "cypress-file-upload": "^5.0.8", "cypress-mochawesome-reporter": "^4.0.0", "cypress-wait-until": "^3.0.1", "eslint": "^8.57.1", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-cypress": "^2.15.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^4.6.2", "mochawesome": "^7.1.3", "mochawesome-merge": "^5.1.1", "mochawesome-report-generator": "^6.2.0"}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,1,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,1,30,'{"total_duration": "12567 minutes 33 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 51 seconds"}, {"name": "Dependabot", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "tests", "duration": "0 minutes 24 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 53 seconds"}]}','Other','2018-12-11 15:37:22','master','Cypress E2E Tests for Open edX applications',905,31,1,0,0,0,0,0,0,'2026-06-03 09:58:58','GNU AGPLv3',7,1,0,283,0,144481,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[''https://www.cypress.io/'', ''https://docs.cypress.io/guides/overview/why-cypress.html'', ''https://docs.cypress.io/examples/examples/tutorials.html'']',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]','[]','[]'); +INSERT INTO "dashboard_main" VALUES('openedx/wg-data',NULL,NULL,NULL,0,'2026-06-08',0,0,0,0,0,0,'',0,'',0,0,'','',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,4,'{"total_duration": "0 minutes 0 seconds", "checks": [{"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes 52 seconds"}]}','Other','2021-10-28 14:02:24','main','Tracking work and progress of the Open edX Data Working Group',20,3,1,0,0,0,0,0,0,'2025-10-30 15:18:44',NULL,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'','openedx',0,'[]',0,'[]',1,1,0,0,'','',0,NULL,NULL,NULL,0,0,0,0,NULL,0,NULL,'[]',NULL,0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); +INSERT INTO "dashboard_main" VALUES('openedx/openedx-atlas',NULL,NULL,NULL,0,'2026-06-08',1,1,0,0,0,0,'',0,'{}',0,0,'{}','{}',0,'',0,'',0,'[]',0,'[]',0,'[]',0,NULL,1,1,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,2,'{"total_duration": "2 minutes 57 seconds", "checks": [{"name": "ubuntu-latest-git-2.25.1", "duration": "2 minutes 57 seconds"}, {"name": "ubuntu-22.04-git-2.30.2", "duration": "2 minutes 52 seconds"}, {"name": "ubuntu-22.04-git-2.40.1", "duration": "2 minutes 49 seconds"}, {"name": "shellspec-linux", "duration": "0 minutes 38 seconds"}, {"name": "ubuntu-22.04-git-default", "duration": "0 minutes 38 seconds"}, {"name": "shellspec-mac", "duration": "0 minutes 37 seconds"}, {"name": "ubuntu-latest-git-default", "duration": "0 minutes 34 seconds"}, {"name": "Release", "duration": "0 minutes 21 seconds"}]}','Other','2022-10-19 15:23:27','main','An Open edX CLI tool for moving translation files from openedx-translations',117,12,1,0,0,0,0,0,0,'2026-05-29 19:30:13','GNU AGPLv3',1,0,0,0,0,0,1612,1779,56592,0,0,0,0,1,0,0,'@edx/openedx-atlas','openedx',0,'[''https://www.npmjs.com/package/@edx/openedx-atlas: 403'', ''https://github.com/openedx/openedx-atlas/releases/latest/: 504'', ''https://github.com/openedx/openedx-atlas/blob/main/atlas: 504'', ''https://github.com/openedx/openedx-atlas/releases/latest/download/atlas: 504'', ''https://github.com/shellspec/shellspec: 504'', ''https://github.com/koalaman/shellcheck: 504'', ''https://github.com/ko1nksm/getoptions: 504'']',1,'[''https://pypi.org/project/openedx-atlas/'', ''https://semver.org/'', ''https://github.com/semantic-release/semantic-release/'', ''https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html'', ''https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+start+contributing+to+the+Open+edX+code+base'', ''https://open.edx.org/getting-help'']',1,1,0,0,'','',1,NULL,NULL,'0',0,0,0,0,NULL,0,'openedx-atlas','[]','https://github.com/openedx/openedx-atlas',0,0,0,0,0,0,0,0,0,'[]','[]',NULL,'[]'); CREATE TABLE dashboard_python_3 (repo_name text, openedx_yaml_oep_2 text, ownership_theme text, ownership_squad text, travis_yml_python_versions text); INSERT INTO "dashboard_python_3" VALUES('openedx/edx-when',NULL,NULL,NULL,'[]'); INSERT INTO "dashboard_python_3" VALUES('openedx/training-courses',NULL,NULL,NULL,'[]'); @@ -2581,4 +2769,186 @@ INSERT INTO "dashboard_python_3" VALUES('openedx/docs.openedx.org',NULL,NULL,NUL INSERT INTO "dashboard_python_3" VALUES('openedx/cypress-e2e-tests',NULL,NULL,NULL,'[]'); INSERT INTO "dashboard_python_3" VALUES('openedx/wg-data',NULL,NULL,NULL,'[]'); INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-atlas',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/public-engineering',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-lib-special-exams',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-build',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-ora2',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-plugin-framework',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/event-bus-redis',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-when',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/event-routing-backends',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/completion',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-mobile',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-aspects',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-ledger',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/webhook-test-repo',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/i18n-tools',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/django-config-models',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/event-bus-kafka',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-template-site',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/enterprise-catalog',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-proctoring',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-filters',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/django-wiki',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/modular-learning',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-devops',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-backstage',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/event-tracking',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-webhooks',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/crowdsourcehinter',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-enterprise-public-catalog',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-maintenance',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-skill-tagging',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-rbac',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-android',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-base-compat',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-component-cookie-policy-banner',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-bulk-grades',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-enterprise-data',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-firebase-analytics-android',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/codejail',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblocks-extra',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-frontend',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-drag-and-drop-v2',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-translations',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-catalog',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-governance',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/axim-engineering',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/super-csv',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-enterprise',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-profile',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-tutor-plugins',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-enterprise-subsidy-client',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xapi-db-load',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-k8s-harmony',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xqueue',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-enterprise',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/cc2olx',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-bootstrap',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/platform-plugin-aspects',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/mockprock',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-gradebook',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-sdk',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/help-tokens',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-free-text-response',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-communications',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/browserslist-config',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/auth-backends',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/enterprise-subsidy',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-learner-dashboard',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/forum',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/paragon',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-ios',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-authn',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-marketing',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/didkit-python',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-component-footer',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/codejail-service',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-drf-extensions',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-translations',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-events',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-account',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/enterprise-access',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/RecommenderXBlock',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-toggles',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/opaque-keys',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/web-fragments',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/olxcleaner',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-user-groups',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-google-drive',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-component-header',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-django-utils',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-authz',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-authoring',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-in-video-quiz',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/enmerkar-underscore',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-security',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/FeedbackXBlock',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-milestones',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/platform-roadmap',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-base',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-search',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-foundation-android',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/brand-openedx',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/XBlock',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xqueue-watcher',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-celeryutils',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/staff-graded-xblock',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/course-discovery',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/license-manager',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/ccx-keys',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xss-utils',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-aspects',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/acid-block',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/DoneXBlock',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-val',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-lint',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-platform',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-wordpress-ecommerce',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-admin-console',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-template-application',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/typescript-config',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-plugin-aspects',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblocks-core',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/credentials',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-build-test-release',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-lti-consumer',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-firebase-analytics-ios',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/pr_watcher_configuration',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/django-user-tasks',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/pytest-repo-health',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-rest-api-client',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/xblock-image-explorer',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/tinymce-language-selector',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-learner-record',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-ui-toolkit',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-ace',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/repo-tools',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-admin-portal',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/tutor-contrib-aspects',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/tutor-contrib-platform-notifications',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-components-tinymce-advanced-plugins',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-calc',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-demo-course',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-ora-grading',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-webhooks-data-schema',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/enterprise-integrated-channels',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-organizations',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/tutor-contrib-aspects-sample',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/credentials-themes',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-learner-portal-enterprise',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/django-pyfs',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/pr_watcher_notifier',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/sample-aspects-dbt',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-proposals',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-platform',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/stylelint-config-edx',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/sample-plugin',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-core',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/aspects-dbt',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-plugin-notifications',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-django-sites-extensions',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/eslint-config',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-ai-extensions',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-instructor-dashboard',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-notes-api',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/training-courses',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-test',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-dev-utils',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/code-annotations',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-ora',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-chem',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-cookiecutters',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-discussions',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/edx-submissions',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/taxonomy-connector',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/codejail-includes',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/api-doc-tools',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/django-require',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-app-foundation-ios',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/frontend-app-learning',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/docs.openedx.org',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/cypress-e2e-tests',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/wg-data',NULL,NULL,NULL,'[]'); +INSERT INTO "dashboard_python_3" VALUES('openedx/openedx-atlas',NULL,NULL,NULL,'[]'); COMMIT; diff --git a/individual_repo_data/dashboard.sqlite3 b/individual_repo_data/dashboard.sqlite3 index 1652d4d400c39d4d7e870fc1e6aea59eec032c2e..84668898fea0ca3b5229ca636ed54609059fe58f 100644 GIT binary patch delta 137472 zcmce;cU)9g*9GkK-uqBy=pBaMVL+);2I(S*u~*P&EU{pU$`}*=2z4lsb-=?M)SWRs^SS@ZG zWuHFWi%ZSv4CR*kH74fEV0dDfFw7WU z7~U8@7`_;O82%Um7=ai;7{M4J7@-(p7~vQZ7#563j3|s~j2Mhqj5v&Vj0B8Cj3kU? zj1-Ji+IK50i+`B25|4n@*dgvoTf*sBAWEOXV6*zXG`Yj@FzpIoBx+(DWs99p>8EY4 zq_;EY$m(QOvH`LJS+>k7OOnON!exOnZ<)JHE0fEFGPd+j=_BbK=`Yet(r)QF=~vPd z(nHey(%sVS(st=a={o5e>8sLZ(pRMOq)pNp(#g^Z(oxc9q=TdtQkyhi+E1D$O^`-O zL#6&wv(zY6OQll2lqvaL@<7rfxh5(6S@MJAtmF&HG08zmr(~z(BgrPoyOK90uS*<~ z7KvT*l4Q1Inq-n>oMeQgUNTTpCMlBSN-`xWk~oP)5-jnRcuMpVr9>>@O8Tr2ryI$e zoj#(2&rYAgV=|&T6g^A}V-EMng~7Pz^9utof4|TN^SOoIn9nXWV?Mpmg!$`*9+IO;78)?0Sg6B%e4!Tev4v{PM;EFvA6cltd}yH@^XChtm=7+LVE$|&9x!+R zLLuf)7IHDq*}IT~KlUtSVcxxviFxNj2Ii0LvoLqqXJY=y{ygTb_UV}0?b9%SV4sZn zefvbr8|{sl-?2}?yv{xz^IP_@nBTOI!Tg4OH0G7|QJ7z~kHEabJ{sWteB#2VkCQFTwo0-G+I(y%_UUdlBX- z_Cn0h+6ypGwC7`Pu;*ePZ_mLz#-4?Fq`fcZ;r0y7L+x|Y@y9dvG|WTnDVXc+$(ZZx zNtkQw379MG@t7;@F__Ek(U@)aD9pw7aLk4FFw6z^P|UgZ5X{;3Ak10zK+KtT=dxzl z{V-eYzL?YO&c#i&I~O;_ZkmHXlI)(C6Yb7*O|Tm=$JzCmW9-h=jkY^iH_EQTY_U66 zH{9-wMPYX58i(4QYaC*iVGguAS31D%Tw{N`bB+D%0?b}^K4wq5bG_Z|&gC}Roy%>o zGyBB$;cD&9_0}}c#;j^~uDYVxx$3fJ=c-GZXJ8gKJ6B!MJQXvqdCL4@vUCh9Mg~SE zMqiA67+DzE7&#cZ7Fp4p37$q13FiJ7XFv>A1Fe)*sFsd;IV$@&^ z!l=cl!x-E#Ojh4k&l=U|0r48^5Azv=8Bq*Hp9f1bJX!kY=~O&1NYCV`StfS# zRBj2~W=b`b{)wB4<=y-o&7BeC&GKlTLg_52N5{H}^@F5h9Fjgv#!Gz!Uou{D9?)qF zc1!=}skHZUauWS{d4MnHrM~=^2b0&85586vOWE;Qg?FP zXlnUY97h(m$NlYBrGpvNw1e>j$+s!EwD#ixvmBNzE^*C*Fiw8+w7D!gu`My4W>~WP zI4?}$FUq2fmwAz7OXhF{QI;s&oAdU@Z%@o+bOc9bbqko0u{2~l*GTp6OSDvDZR&NL-6IyzIcGMP-Sn0hj@eik(jnLH{rH8L(dGLBBIG2xNkp=R%?!=Gt*1{WBfKyw>Z2C{y{5m3`GC7X_qP0^6BqFhN9 zJwE%}^(;?1IY_IZE=9eH&d({=QD;uLndZFA6yPc@_%L;JPL;2u^ZT-7bUvq8K#e8o z0t%QHX{6aYHy*VtFe#{bLy(HXG@(+O!|98MG{Q$ful6rikX)L^rr&eKDzbbiX4Cj% zJOMj8JSvJNUaWB=;l@fe)zs!msf9C;FBvvw$b^v%sj0EyQQ?tP@|Dtu9v#I~8|YK1 zB7Izen!>*gS5jA9u$-FS&EQhvnFuj4*jxiOlrUwqdPky&x>Z43vVI#UCG#s;JX-Rh zSV!+((MYJiFaG)PSDBW~Z`E*U>J6nAb>8vg(85I(A{rfJQBdRROfeNqlJU7w-nD(! z*HA`zmM2-fWfGGAo-Lq1R+P%<`geJ18g<>>NMpC*zA7KEvV-#dI`Aez&d4ZA!%VX5^ z%4T07S;oqF)RD_mk((zTyS&_ANC!0vHN7p4)6mQ9Y%L9cR;#C78wA)`16gXS+{jbY zJG=xL*_una^y}(mISGHt6*KX?hYa`kAxEXsQ#|Fl(L)<1O-N0(gvXGVk)x+G>-du1 zEnGFFpPpK-yJ11rgy5;J^D>hD8HIK+d5grYhArlKq;M2lbd*pEjeOLMjK`^#bpovNyEqm$cX9?N8gkxNu(~(k#(AH?-6O`KJcK2 z&NFdxPdcA0_ksl^{?Q<$hQe?iJ*-z~=}HdYoxZ*1kMO<4DxlG~%~IMQ7-*o*`{g_e zxTjDenfB?^Fll;fYBVib?&C%?9$}dp#YqBMx!!D~l^^D)=`~TDiJISiLng z_kqwr_a+sYu_0}0`aCmVLk~U-QPBC#hzs4;zC5a*U&^L@-ar`{KQA@V z|F3~%(Eu+!ZL4M}=-^Upq{k1_m2~=Qf4Q`AbYp5NetBd#;)j$JZ^av^J32v4?eirH z>W*QvDLIfKBm0OjAL>%aDX57l!fsLZRZ!18jh^P{;smrSs#rz~t2Aor-rrwNcSb9W zy`N%e=+o-ydRDB_M1qz^A)D$ufY+qnpVp8MWtg5t|e6!E2)}Dr#TGl+*0> zQW14V6${Dujub&FutG{r7gD7p%HyKePR&Ad) zDzO_hlomS(duN2+n|hY9-066AmWoVYL<(CsOxKfnRA6jtPl1q*>`Vb}cvtF8#a~70 zseNEp8i}(iO=LOdkxcbxls8B&)GnjWY09^#bEWoOM_kDO>RDtMM%~|}23z=pozi2?me?eVB`G#Gr>NYVkz*@(E;_9v;{)jdCa+ItAJN!8odn?X5qm{I^9-sT znw7|$KbZb()p~PY9wJ!mNBf3m<+z|v!*cEOOuBkHK*NcOi;Kj`{7rzTHX`c`b-y$y ziRxz>biIFT3@Gi808T`jBjb`{5|bih=!aF>3~F4=!&V)Wsm#}gw@&?m~<;$tY9DJ0P~qI#2VQBnIHR*H8Rkf zkxum&Vh1teI`&+M?O{1Vu*i9i>B2JtHwr(l7tz{7{WSE9qSB38#-}K#{tvd=bwbH# z%fJD-oyeo#h8@6SeFQ;!%3P5)YDm?X4q&UyYpPtVo3P<*_U=c0qTdSZopZ=9k*JpDAsFNw-Q?a}`>YU)}m;W|zWjMSMa51=#?wytH9z(n;+nOv$HAIqbj)$tt4jtteeR(DCs z-jL!(-@JgBpS&VhNk42ZH_)RFoJ{M`ayH#MUBIU%mOq>NCIBH>XVf4!JcyQ3+sV@2 zW9Jybl~LC^DZX^qz@=;Js&U}{{cT3Fd=9YNROu!A=X>9{r%7|32v5pvmS|Xs@d;G& z8dF1U6;(Qtej%9)PXkunm?&|V&7qV`!lE_EN`dXrqQGdWfwi?>bl z_9n}3h5Ftf*hd;)Y8xr=B^xipkGeh<>Bzi68cdz1ll5f1%l2;1TK(-hwn^G6Y0Ul1u$Ex49swtu?OF`qWrKqU!<17xP z2L>rge%AXb>a5wubuC&9xE{1+|!DS%y@20N3=!}h`FOOh=>NeQ#Qdw*0JYNR z`FqfufD|sZ9|qJ+`!GO5VWAdegfme_I(90nHxHBhwkk<$`zZi4kxD`3n|$SDEC+&q zMG~qe&#g!eo%?GA|J>3W7i`{i;$(s+MNIHglll2-A>}7>WsXzW9_gAO9eG|(aNU-c z25I^93hEZeFMt%kbN2jFUUX9e^Y9qYf5s_Et> zJw9c5IGbh{M)Ap39*-aMI?YEo0p6_|CC8-{FNf$t2qK0y%DGOBI{RLA#JGC z;G`S`4(k>H*jrbH^)3um9xMqW%a$~KFH{zssgp5cs6^%FLD$FGgw#C&r}oxI=^UyZ zU#6w=?NxYuVJTW_N{m)f&&vJ+a$A94<=kStr#X^L&-K^S=H0+Vt_`;2179Vz%S&HnRrPz;A0u5JQ0hjrGjq7~q<@VEy>>nhH+Ni* z`&z05@IQ=V!1`shmJ)PKDcu+=S5RS<*^|Tp{>Y5p{lsKjmB^)$uVex3y@PZ%O@tca z1zxy`dSZ<-TCxpjx^Z2!$(iR&fc-q=*QsS{vfbxvXz(zTobfcfcMdhFT;J|^Sf`|M z(QZQO`qGO>;;)!|`aL#9+WQGjl?)!eK7u8qK|kVz{pV*<>#J4T-rw2&3IFL&{PjEa zRR2+-jAYBRw5*tzNKzawQUjqUL{oh(hfgQ}@aDCS^>?Gx%2H8Bdu8cR7PZY7IFLH0 zSLmqcod7Gzg8=be*|qyX-hHx)c*`6$qH)x;U;vxO)|9&I5f`GI*(?^BH0Ga7D(G0d zOEZ$qR`y{kow0?_Wbb;Wd1mY2s1)X!RJvf}s9M{j@`TQ?(q~>xZBPx}o+VOITWxSU z$v*?IKE5JVPqo#+kJdj~Y^ooDEV5t#UrC#TausxpY`~PC_;Sg%HbO#;lln?1&8SdP z+igBd#jGF^wfp#sY0bNXxCqZ21qsT0R3sXjD#uO`&~%|eN|k~6D$3u47}C8_<3?w; zYPIy+0gZ;_hYCex_G579W{*%tk0W!;BwJO8VC4*cizfMLsdJM6+uXTN_UuZOQ_p0E znTm8m?1>0Imx}Hvc+@pi#G%LY3zYPYPp+Ee;YKzM-pnyl;@ia%>MRGy5{6=xSD%hh z&<{a5sQB37dUh?I2kod522t?~Qc-I|vVc~#C*yj8O(rr2d2#9dV-GEjoFUUw&32A~ z4wWSvsp5nh_u}rSq43iv1*4b|rAA@>w?pweh$dTJsYERToobpso=qT*n)@ar5a2K3SJl z=xNl7R3kkWnAD`Yic06o5vzgH8&HhS8R=%E@4l%~(WUkrB|W^4m6$rlT}7cid=w~d z5yBMrE(0n(~=^#{l34OD!hzq(n7!UNs0>EscCK9@EQdtsMF1#E1~=&eU2Sh2POA z>B)y;ISFQF7--DuQVBI3X7XAu;&vYQGpeX-n}kiB9~yP^{s)C7+H}4SVK&ywK(DQn z3&=W~!KEcXJA-vdDmLLeh*+MFJltvb_XGLV{b9M9R=Nr0WLd69+A7s3sB$!>$L|Gd zNEBKkqn^BhBC-r*ambM*m$!~{;7HZ!qWmNRi&lDvQn z-2JXuLCGUDfYl!ET1GUTV!6B1uGLZ%S*B$p7i`su==B2?3~10G5mI}Ziflcjjp@6Sf@lr9bRq+?~(a%%h* zDSJ$Wn>!6Q*YL=8LC7ZC>o}MneCI8v*T>sXOYI7f(0P57keW`!2xzx&k(Q3Pg!Acw zUXT4`4-rz*I{=YC?C5Kz#^X7N2PF(SosG#*)4r3TU{szdR?^8I^PK5*?qMb{GMAXPzAkCYf_jXEBicSWq676_A6 z^hYDuK3QFahzz^>sZjk#9#gyZ0*;O<1oj?ff7QQ;m`}C=woJPFS2<~V0E%ce3z)F` zS&)eBUuAR2t%?D3l%YmaXch5k&!;9GZHf%=1P3VBI#?QPuHnwIBMT4sOoorTw=n&G z|D^7|S_u_>4LDi%5I54Z0>Nr_U$vHc4yAkd76jc6#02Y4T%a50$G1fb`84p;0D14n zpARUM)8hSrcU@5yA?^Our2mhL;#2%jS!QP$C?xq%wL96SdCRD7rQ8Hefa;+!uTJ}S zHGqoEU`QpiA&5h5c8Lw3D$19v#vsq$;sB^$K%R%9f~jW@!eEoZBA`xR6Pub>2?lC5 z=>Ep}(dNjQq?m-H*yxT&Nq$mJ2e-a%Rv zpVpdMYYlyJI9x+p2Su2vcoRoT^}Z!s3i?TbNbnw>_$D)WcHbYOjIEbOm?`4RC`7~e z1ac~P6Xf5?xB@5f>$NdgPv>tJs%TUOAlg6sEA+cSHPMIZ;6Ygihq?A_p9{vemz7bddl zsIOc}(_<0#7L{@FwSig`cqNF_Me`!CS-%2Vn=};RDeGl`&%LSOCjW_MN4BG`Z~D2v z8}%@_h)?z`F@4>UrQt?`NN%lZ&6uE~gSmc23YgAA;WIMUK)?9~dy;LuoJ|c%L|OA2 zksP{yD#b{zrZOb--8~N+uIUyH)f@&S>S0By$-Y@GqrA=Xr{rnHN#ON{w*Cm1Z<}>= zwI{?(qr8QRf05k$rQv#-H51s|Rf<2SDg*nLod%w^6h(kF)*9IRh|W|4k5z2~<>aLF zXw@!o`sp5EGn>jlVh^tg^ys~Rzc9I$&iz^>qsmQS3Xd;N?7dA|HY?IV`_DwEXhp1- zncg0cb*w1?sJhO`Fs=yk*Ngte-O(GnByJ?Tm;aP}<9&*XZs%}?XYc;uYV=y7v(TP2 zJQS->_D6AOR%hP-zIVR=9&~J%96G|s<5Q6)KC0qTcX~nZ26EiZF;RF)ikwEi2kyXn zClR?lE61O%xMizo#%ApNkngiJt&bmomlzh}POs-Di^;M*%ZoO9Wb3H$fKlXRS|Cw^ zX~{S@P(=&kv#}TCaU421KU9k{S<9zR6?ipgHX>a*LPLEm)?o1M@TU)*7FeH>$h?Oj zXrxl)_67Mts4_N`%V>QI&}f>nQb`e$G1=a#d78AP1JeX#8^To4^c-w<{zozHBzwkW zq$9s32$3HccLrXZ=h1{`9B_(pxbaW|CqNH8E)uP@b zu=8Pg516yZ0ecgiOM+yMT{tv=RvFMMQVCi<%yqIQlX>??Nz8%`4$fvT+RW} z5rBXudJ)7*=3y@{GH+z_ss417fm*USGNgtflMQYZRSf)^XYR5+B%&e97vaD00QKOGjf$_2&#NPeSA8zWvf^=O2>XSDMh1BWq4pptP z3df2pepN=XgSpur-6XD6s&J;N#+PffTxKHhuTO>gAk%ltoQv(Un>XIUOWo0!gb=r z!vUmkZY&3MyBdJH^>4zbX)-pI&El!2V=qJ~$@6m*cC)lT*vuP6o^)=&Ks7N>K|y+? zz*_ z-Fu41+OT#e=!APHg6kB9m>{_bNx*{M;5wI<7%rQ3Z3RKFSY9fp zDUpaIt^{T-#@5|;HCIgYpP-_U?XTrf(OcnK`oXDEHqFPyxTv&_DD1cId&&WmxmD1U zR%eRngO~!OvU@Bpb(Z#jN_1`rDbayRUjb2SppG{8FV&LGy8wjBG)l37%`}GUT+?Z)G6aIV+s-SApDGzJUn6ejQiUYU|+B_phJ^ zXk=xe+Fu%Cq=(I%r*U%h;J#{F(w!%u@n?)s7*o|Ex>*6T%thAywk`-{#)>>1ExbHf z-D7r6keht{x=}b@?Q%PIv!{9>F~@9DIJ&V zc#K%`I;l1~=^!2j7H1eK$4{lDOS3F;+IJHeTzOyJl zA2J>-{)mIK7aSHyGyg;czU3Qird57MNiSPGcoI^wA(>$y?Fwi(pC41p>F_P2bJwQU zsbrGYKRRS|p`})bUjaa}B*=de*8Y-f_qhmERu1V@nw{mI}^j$J!ytV!Pys1TL z@FNZ8viuN(8~Dixocch=-3*PMOf>{4P3?4tuo$d90tfRRgGJzX?z20+>qO`4G*m~8*ivAL6_ecH9_4PNAT>{;pek7FehUg*= zJ$E-uH(eQpuha{Jweui^*5*qMYMB@C);3v#I|j+NNUg3 zi}Aft&Myt2q8Id0n&(A-M`KX$mZa$Dq^RhQ*&ie1vYY43j-U%+nP9AUluqi1PKsO4 zp>Ot;1~IvMkbl{TxIJnB$**F#)aK_b=bZA!!B+Su+Rb@v`mGX=LohT|2~LYoyaW)8 zW@m8hF2OPFUYBE}!s%eLTzd4aXKXkL(KzN-Z8dxh6)2GgXNgVp%b7Sejo*U!_P!2E zctgJ$6HPw@Rj0?RP)Bc@cSQF zGGz3z7tmLlJzh<-$_J<&$BNV~N<-t4y+%)-YDw>rcrtolx z<+Ukl=!H&tY}avER05s>c{Oerj0i6I$Z!C(O5;z#;0r;DQD-=4a?h$j9u*H^s#pAC zmeaMOaP_}#C0i3KrLYW02#xp5Y>GGsNovA8e>LrW7pLg?Pf=>RQr*mZWhy#%+N!1O zc_J+}?*c_@(|Vd5+=Qp`0Ws4^xr0F8(*bw@uGitAJbb58Lci%kfxS3jfBs%a>S+$) z<3Ou9l-3R;+vSfC+GI%yrhT4fxR(z2!j>?W4WrFz9Q=XB?&K$#mg z_C%xVReK9t_od3|hm(4NBNWIh#TKumKX-TnAT~#P(&3Z}Bh46MLRG70Lj8NyY@%;| z1@0~m1`TOZ8jN(kascSNA7!ZiUJH@X<=>F?4NR0`ah*)0)f7n4okuG1c!xm*cAd+n z@?vjVbB-^gU&=gzKUvuvYWxVat@{W-{k3j*P>EX+i5D1vVn2R_^^x!DC!o9%jfMV* z^U~0beV#z|_oDffdniaw(|qdO$bFL+%qcf`M*4iBH*(}p0f1g_F|^cP;m;v!O*s~b z9sU%S7M8_pNOsqZXU4Bp)AYqCCc85R$SIV;0uFSFmc?hWx!UfPDxJ(;Fhz{BK|gx| zazbYU7sS%9Y*0+E!9+sy^g2qe(JQIm9Rx;;nyIJ9r95obY7U2jA3{kSTZDy>+r71| zUniI;=WYQM04HT8?+caX^;4(-H%Ci+5v>8;I;|)gMs6u|>pf(25A4y1d#DN@o1uK2 zy$b!YKB$gIo`1&R+&D4;pK?&=+85~5^yd~Q4fb`6o(W&TC$S0-l3v2THeX`N=}+%s zh2t7xA1nZP+Wzj43G0n|YFrN40Yr(4YTp0^>6s^0IX3tJa%aJ~Vtve0Giz1!$utn& zEmzs7dd?{PXmcQB+mo@VgwFFIcs2IZYS^yg<@N|T6|6b=s9d!u!#n$Wg7o|m7^nUu z@Qj(OuddEl*!2j1R z$XUowwu4|qHossKQ)fJ)o;3@5FKQ!S)A7!!QVYj?nfLFI8l4mw1tI?*fXnLW)br#F z$$=T8XT2jjd9{lTjKqvAvPSw35@@#25 z6Um`O*;>B@CvyDLPw8lJ=Y=z<=SJ3f>h|OfqQ+Z6(DoW|Yl}=gFPeSQ+lSW4z(L-) z1=6?iB$%Ex#mLIrWSKfP^s9i5iEFG&7zBTN%=Yfm9|TN0le({#u66nu-8){pR{9>F zV`t4}M$)O7VD0Pfmd@uU#MRXDQCpmi)vRcXg!phI$Ai+ZLXc`)9)%MAAe73cQoVp0 z0(m@#r<_Yu%Zw6MZCnja3``EDw76IWUHw$7B-4vheCtIauQk0xK~hc(N}4N~9IDHN zSz~-Vj`EoC@To0XUL^vt3}GwiI0$SP>u1=F$TFkQ`THz3BgM_|SCHpRDyRT00wn!8 zsCgHv_z=!V#j5G`w-9}9-9}aL`dkK|;@{PQuQ-h)6<&rtY0KjAD6Jfl!TgWFFQgji|uqN##%xpl=2WI23Uiq-@uR;6U5m!3%75VEHT^eiGa&@Zd2J zJ>Qfw^su~W+4MmM9?OOjK(FTcwa_G=N6f2UgYzZd0WGv`n3PAC&0x&O-iFzs?yUm3 zrdmSLmOTjh{{rSFBI0Y?*lnxb|N#6 zr5qV~1Q=wFI>-?4Snz4%2S_fne}ov>?W5Q^X|*~JTEC@AMMVJu z#OCLa30(%h%{AFPlHGxmsV4&@J%67?NsR(TvhZMNF7?0lQ&KWRV#0k-VZ4GtBpKut`e#PzJe)$ z%N0bS`PFhQwK=&}n*eFp`TcbFBP*yC~=M8%?7Q>a6LxvW{V zrV12y;~?*J>bzK+>@-fqQl}sMzcvHk*I7&Zbu{wI<}s;V2XBz|RilRf%*(FVRA~Pl zMPiboW0E4HJD$zYUdrJ!`+U}iKcLTNPH4M>y_sR>xLgr5Bb)8dw2Nr9vdo(^FHEpF zfR?_iiK60kHph{}=DKVWvukSIX(RW>_d<>8~20R zF>Q-}T0`6BGo{Sh+0F}AlQt2>PeU=TX6zXNrqk5}0MWkh??HZ1Z19`U*ihd{@j+SP z0YUVKwv10>VkF>Ne>6f7Y!Mmh@VRmr&f?Nts0HczYOv%#uT@P6JD`nhcPmh~<}U}| zx&_+GMt47e`K!TV`rv(VZJYMP5@F$_@M!dkaQD_xk7Sh66sDw(1E7z-JD&$%z~fLk zpbKE5xh6sCi17%bU40=+LKA@soIrtA5T$Ho!;E9jWwh z4Lbx+z<%Jt^wE*HlSG8iKPFdbXwS2WI+9f4KUz8^VCK3YR>%>6$~d$@9RMHg9hCd+m8_>Vh4_;|NpC59Nb2^qzW+5U6otXMejp7W2-U4i zQo%wOh07^?9Gp6)XizJza`^SPp+2=u!OpGMBIL_s2P#?{Kj%3n0%~2l;;ErZ5qR#` z?@2u%X=$PLe1$vSyE#`zKMeOVz$69jtiHVh(6}G=d{bNw@Q@P?-n?RkU2>-%kJ`UR zjve)6u)LS`IMWEHF*(*JgQ*=HVax|;J0lU_bgJC z%AdA&o0K&C2?xqExL-#Yq`IIJD8ZU$r%N0TaCm`bumRC>K)9V8; zBJEE5&*J&O*Y$Cpupiw6>78Le}A88q(fft={LRretUZ)REt3eu)_8A zC?8xwy15J#xNRLeEUKDd2DHTDL)ZVx($VUV)4_O^qY}y8gR-vrbG;|M|E)Jz?F&XB zojnScx7ZIvSiAkB*P9sTek*O8;KK(N~Bu_gM;f^x?`jG zR4^UC2!wMSwNFEtI4zc~VaG+qM76#Vtac>AHQ3l8N~cDr!3W9nS+adBFgd=L0@;7c zhXtnwc&hz-Y40w7)b@3Xu;YAlwhxzysBt@$fw=Vt&;pg9%I=lC-$4c8;yCUb zjGk0sgn)fQ=q{x{*8}m57^Krsag+kqo=g;^uDq5wq*z7^UIy;_sSXiwmKvxs!hpct zZ7mbfw412L0zNE2;{`vBOSQX@zyIKaKiJ$Rgu!S7%79eBpCTBpI~<^}{Rp8w?-1(h4L|h*y|Fr5 zNLMUusUy@)O-CLBCrcS%?7B-3_Hu($A$PwNhZ1TDI)EM?#mVE;Cdg@rJ1mtQWziCr zB|N@$;um_l8USRbGou{b$wS#(ABOC;;zcZdWhJ~ci7}bj$`)rvi%W;Lbqr-3C)!}3 zS)YLq93O*_H?ReGVNqNp818S4d`gh=1E@y`Lqp}!1SM(CLtx*L3i`i$Kbna44uO^Z zVmUf49=(entI$>>C@1Ja**H&aOV1!6-f21`CB0oNrp9Iwk5Z7)0o6VTdan6B z5u4WZg?<2j$Ak8K;-#XoGy6TQ?Ndf*JgAF>7;z#y01n_geq5UH{vfFF8(@vUc@*6y zqry#cI`li7aszWfdkemif#LT+@fFWQ7r>)mJ&Z(hMET{f;=-Tf6l>}23`D;_FQDtE zK~Vxv|E~&!tb>3LC!Ro79cS|pKs^G;nlr)-M{5&ml~?OvbrmF_P$yN35k_8XbDX)g2YqHe;~0`ek!jDn%b{JDUXl1v_2$RJ4an9z1Nc!ZyFo3$!z^};I zT#?h+Bd3Jl^HJi@z!P1tfdv|`KUxQxE?RSFP7pYp&JQzD-<(1RR96uHDSo>+0KT#E z7=+JJ2a2T>D)-Q@D1su~ZGkLzXb3j^(b4E8=scAohTPp(N&9$^tfx<|gNEKOm`9)8 zf&S55i~6kT4b&bJ*29E4`d1GzjSbhqIP!KFfX5NoSX_xE|2j$*ZAiX5UA*F9qO4dw zIK!pj3)C@)?tWf4pIvXFWrsJUFH8<~dSUDNgFKoa1D12a*U*rMb(7jzgdNRxq!P2Bj z5>i!^le~<#q64fHTm1KT3Sm}n!vje6D1>S34v_I{X`r;s(^&#~a!LiSjWf|&)`UqN zBf%Y-N|89$-qwRceT$)U+=q>%>mf+EBhC)AZZ1fdRYrxPmvjjpl^Oy|E_lx#H~fI3 zgo8e?#h}0<_Je($QBo!(ewYqMZzr4kPoz6kkszfRTxbI=oiO|a!6!^t4>DD)>+_K| zHbQn783xeSejRr=Iz$5W5*^8>&tBAdk>OINhU;=(MbegVH}k)OBQFcA9%q%0k_LSe zq^6(iB9YZ+0sXeUh)?{+56-e%HAS%M;BVVHr2zYV+8;7Ak)qqx9=){J~E zO)Dys^Cygoc5dfr8j>M4ljRON!v2Y?gU_Z*sB#J*^yxY~gqV+Q;0UnK7(HfuXLFdX5!WJ(_W6!3S(iN;)PoVVi zO84GhdXtO#V2ire-1|%a%TLs@93sm9^6RN*5;(F>pJJ(F6!_|Y?7zQ^7Kv$348Uz? zjGO-d%QbbD!8zUX75v!+BN7bs{@1{Dm#(l;)+y-|jklg6J~crZu%Jo9HVRRy&DrVG zz7>As;lb1tfiPb9gs0|%O|!%V)Yj0_RFNBv{*(6w zHKiM0=CO|U;ptgNJ5XWoW3dmW+MT?2W-4<{waXn$Ye#v?==dAV3|Eg0V_Wtw4Eiz# zDOUQduLl)BV#ytc(N>xB0Az_H2twe5Y1qhfPNPa`JO`)kpU?W5=~ozMo&De5r>g8c z)LdKMG@}6J@%wXL5b;Y zy9M3hDJf?H!f9KIo=exgppLr|+Q|<<|Nlqc0*P@F`}V)mlV&sEH&4rrpxQ+uiQ_pa zL(5Z;}#G)yL;q+fwqzxj3SjZRC%`ZS_LqI_Tz&BAm zWDG8S)=-B0^LL(*e~D0>=7u|W<%m74pvsUQpen^%-FlP4RTf0x^aJSm{jab;XC7*q zzoWXs5^ll%bH2O6$7y?rjG{NDqRp+nIZKA}5?1F2Y(0ITsgqID2Y8_7J32Hq><)u} z;3^*7k?KO6YzxrU^O{g2U5p2L8sv>9v3VWH$i|FvwBB8S{WRhLXp{3V#_{O~SaoUe z*CB9;cLQ@DxV zheyh0|s z+(C=F4t!-UQ|p+I8%UG(wNT}0)RPt#G}{xQaPihJ0?XNb2rSjwM2KY9C%^;SeMg5d z72*a{btFFhAKQoZKDNdOchOlsy9B>1;zSiX*Y05hcX?-Un0*$tMotDO$^wjX{}%Ye z)rc+Am;eS}kO=7TSorC7r#h($MJR{#D*y#t3)MaV9L!;+%1q|7a3R%J`>HAFEm*d8 zdwPP&W3A+2CYJL1xqH6=V(S%m8 zJ%K@$a$0TRfXf<#wysqi)RyiCp9-=$JDBSaEoa3MJbxGH+F~Yt9gY8Nt{qr{zN0XAny1{zI9Jsxt9?Bk!V&be#?PTu@lC zsW2z|E-XX$bwz(|Yg-Po>eIsjo<#*W^DbK|)^<8v?R&0)qx7#eYaH8w{hzer28JKP z`ow30gFABAj0)~7N{*^Z=r=V=|$Mzm!#uSbZBe5>1sT#E8!Y$V#7!fy}u}d4bmDQ>7~Df=kdoy9$sT` zGyy8f2~>sF`2jE)cT|9iK8}Z%`v>Bz=sbixu_#VY!8KB`3!}CwCV+bo)EMw$j(#Au zg{aFC1W+4(-3WfovJh&(p-c}QrFTJGsXv{?reE|BRO26cApo|=a2*q1P6)V+Rc-SM zb*GbK(GK5rO$4QOL?FCr zI9e3spPCG`je#c^{*tGVb}WOJxc#ean7}JxNnE%-7zmmr*E#eadZ)Olho@=kkV(U7 zF0aVVX&V$eN@M=(njzumK^AIU0d)1xm7+mQN_VH0Y1wGYilr@&pn15gC$1Lg?kx3a znvaSO^B5@KL%#<$KdGqHQTW7YJ%vw3 zAp4qNTm==0N+GCHOE)H?kbmthc>2*K?Cb)oN7vMwpp;Lh!bq|&&<)j>vr#4QE4;(R zSC*upYZ|;0r2R|0`k?kFc={W|Q&8{T2QeTo1-o^%8U2}?%3yp5FxSf+_spm_yfdDf zB$m8|0{QBeWV|O}QKFeD*Wi|aKjK8!A>h*6DzQG+mSPxk-{_B^?BuVfO|4Lp+ZL+_ z-Q~izV6ImC(7tJCdVX?1l1=-bOVqI9q9AlF1d}}HD9CcO4iBV#8vub@J{Gyt_)FQr z@IE-1yg}X#)D)ip4(4KZ5Y^8@0BzYhFooLQ<5oJGg*~bMduc*1i)T%a`3hcx;zeZf zk4Z-xkSLKXuZiHB7z1O&(ZiA~zx&3&Hv{y|$RtZ*k|q8heO)A}WqR!=#W|fXH6BIb ztv@aa|C{#f{ZipciH7$S`oprF8RsaL@j9MABH6|ytBK{`tEkJ5OZXk19+!;7D|$|H zv#IkI7Y$euvb+v%XUsi5+b)>Pq&Ip1`a&ON`!JUcrIJV4-kcYP3R+=G+E`}gCQNfF z;}g%KNxJ@bbO8*O1NCfvH(WtaHo{%J*=QBhrHOcH!`eidf;kNmh#x4!?y@XC-4dV) zq2c+yU|TA(Kn*QNZSZ7>0Pj871QnsSCD%ytA7&~^_gtckLdV4gg7(6yUR@>!N0vw>edj)7mYMPQLphq*1ii(w`;EY?!c+MA~XlP6*Lb*-gOyvAHr!+37JUb9s z+I0|`^LLA%y5S5;5bg~hB725rB3-+>v5xKr4YYWd#7OTR0J<5=#w#PLSja4|AIcRv z%5fz({p*d?vKZTS^}R~aXF7LpN_i#&7S%KHKs^Jh&2)Z$nuzkR!K2(zng!!vF?7pD zmtiy-iJ|*9r2sZDB#>=dxR7?%z|h#8=?&~OFch#;oCJ*eUYR>JR^yUgvh=qx3K&SX zC8JYSR*Vnm#_@hMp;AVNK0`U)mJjcqQ`uN?y-ZDoFREnD7kT+Q?S>4dy${pwtQMP? z>{XNOLYnZAA({DN5Y5X@M{-I?$q~b|X$Sys|_M}BWqyF(6o)XQfO{<{`tQ;e~r^efK+LbU3 zEEwvJ=(YtZenp}+fb7;xEuFqli)S(re#YXD%Z#+hH^W8G$Vi`o;E-|`FJEduhuaKb z2fI;H99Ui3vnjChKFmgcf*H^)ryV%EEf8%8)!Y1FoUaGOwVpzYjpb#$W~g%;NS;;w zp{%!W!-iPUWAGryoNDENTsu(CDq#0B5jrGE3!ArMBl^Yi`r_(Fm4UP=-ciQqxV*O% z`3l~{Qtt-rm$2Ocz18)~pxk~k$5uEr0uPkpQOri`=Gdiz#6vE0 zI*R23g&u%ayr&~DgfclfRkUij2hJb|^5yv{Si*59!BaQJs(6&T3&Qkl4!Ec5!#zAG zcvo3u>z?^qm+H~=A}@p*R|dyW+g^Sg4Ho8X>G0iMW@ganSt))l?@#=mvTR1j%2_F; z3`b`fmpi_XU`C(uPAk9=?lOU0JnJ9NrkuhmxpfS@iz_M4gW5cW`i?Y3PCB2x$mtT8 zd)0d&dkTMU32o`i2&AN$LGr(xORgX2NH*q#aL8~Dl7wY2SHp>pbGnn@J+crD7RWkI znR0>!>^E!dQaW`iz{tp;x_W~bbKYQ@TW>%dbaQU{@4ik*arq9Osi_U2k}HGJC$b%w zL(TyxY|JT!2g_OAe4LHsII9sLuFV7M53>|JtrIJ`m6H=`fjj2{QcOI>| zlm7Jj^Txn*+I9eL{h&bzr4fV|7Ze@BW83VTprg701EEkqy;vH_I&NT_ zuRRlp_KgY+tY}9((4sv(R7lo|@Y2olMX$fhpX<64m#cS{AC6tqiUOcb=j(;K55XAU zb{X%BYP=`|gl$F9fTowH?`GJ2kc$W+1BQk!E1bTr z?N}MX18~ZVL1&uNul`@V&U&K&bd0v!eGJ3CspT+K zikM&~&C_joOGO+?l_m|gtM#okG@gHqdS&)YXhB=@Gf3&K8B#B>D=?P0UfvcM4xfj4 za5d8Y$N)J79)u~x)vq@5`G9}z5o;M-B)^!@bMJcN*zZTnVGB!AKh=TPzJ~6Qg>s&P zs_!awq%Q`{m=+10Je&(_!me1o2U%7ib)H)c8Q-e{u!S-vB z^QcJ#{i3NKQrhg4oN!G-z`tQ%6go$pHNYn+Im75wfjF9zWR8hSq>|Z4t&O{}@9WRx zNIEQq;?Ed#Doh?mbB0*J+uyd$56ZoMxHc|N9EK@&cUb0sDf9la$-oN#s;g(l>Kcl#24 zv^91(W5ykX;>)e{hWNKmsH3ujA~{`I22;#shFDEse~Nz^?jyY+v>}0oRJv2Yfyif9 zb@fVGC_^E#W(!;xzZ^y43@a{nzT{}`yBQv>gYiECH}rqIde>sV$1e$PjPs(Y>R25O zDn%9V%3dw=;$*a^ra$Zv6}dvRBj62M8-@g^ddrcs!=XgJRFwnKwHb^2`FFUO=eY4O zJ@zY!qJs6P2DUw@@ge^)Ug(pQ$AFV})+9EKCm;2w=hFt+v`if9*-v~lV*#ty1(C;Ij47j$o4^wq|pIM>LHqc?+;5-3~EF= zwO66;xcfMf&!8U`U>)zB5QX>dl#cUb0={B&oH!;jF$<|zKJvJMPJ>>DBbPQ@Fwe{-gE#uZOPkcr3F3~yWVg~mk9xWVeUnxl@RaD*V z>nu_FV&l5w3@c6^;?l$>Qk)6E)p<&xcNvJfo0Gm`UO)#hz z!e!*72~$*myp*IIv7BZEFvuO4e(-(6+#IqaDrS|7`#MiwO(v}5wb9Y?ZY5CBhX)`b z82jMdSU8=r+qEYc*arDk-byLatC<%5u#om}fo=#-d`q00bQrHO*kf=fwZ-70M}E$s zraJ-a@ry&;t*6)a@{kX=7wT-W&?jzZOd6C!I1HNKrbE5BfLm3zh9|P^Fg8<_$ALdD@sQ=@@s`cFlzjiTGo-0e1l9vX`uaqfFWkIG8XE)kNSrI>aOKJ%Jrd z^PObQ7U-8}qs*!`bN4uj|OC(y*Fhr0>1pIknxfJzDk|oC@_D%;S0+ zW!@S$Dz8ZTyvenc5iRGnuB~q%Y!_#&c1Dy|R;74wWKS@q+jY1tt`!PM8dJhs+4ee9 zfaDJV9#trM#WWv$OXo54=zS5CG(`E^uqB{(3pSTfnqK5F{-#UAn`UD!*+{@MnkKWs)8-%dS{XJ(lC+kdm5`lPUeXf}u~{3Olnd&Joz_W#=Ic z^+Cl;?G^eq@J1GjEa?(fe6T@R9XVX9sqv7N)!8}v#if2}J_}RCF5Lx#&Fbu-YMGrp z?}13Ei?p=_*awx#yq*DJOm}}v>^qtVxGiJ#C?O}L{(q=(KxhRMOx6*76h*GJHXiC zd2NA-%Yc-XZR9Wr(X(B zvgs<2)#Wljqr7x~Hz=Riv?wl57<3ZZ;>Nq09*IZRfC6&idkm{e(_tgcnI7q88_004 zl`!drexyv%WnF(3zENd)u{Yef#h@()ry!Voj8;_K_w1u~m?6vsZhLqpgG#sHRBD>p zS+UZglqibz4e#+jej(FSxEQG(1iPb#`Pc?^2$1)d$3s57$}81%e2R~p$V74g65=KEp5;foCWDnAUBO21 zlXmX1Wfsbai%sp^#Mc+MpC88{9@#lB(pk24&gDsaM7T-Te5`b{^3#nH^^yZ*N##*o z>}>S1X?nTI&Q%e9GIlfN=PX4Fr#_TEYxI8N_fRh5+TA?Qmdyr7`D1AXZQdpPI+}L@ zhO0ehRab&wZZv+0bH2vS!)Ql`rs_Oa<+&)bAM(2iYbA9!WEot7iKHGbtEq-!V0|hD z&v{E%So7QCwDRW;TIt#m0|F%RlFzLV-uSsY43=l8;apd`Ga&v0Ds+r@YLIMS6YF8y zo2--4qdr(4uXKo)L!a>!9y^FqNEOsLN5QFYs%2jO^7Cj~)B~Yv2hJWY@wT4N!P#Ur zpLRt)`LRk1|9I8s&<@up#rcamH1p+eq-AY9tg&A@>%=z|75I~1FwGd=6|!07&SH}s zek$;sKmbwQC*$IxR@lBI3eHNx*6F~X4hboRPP2haGwxN38pj# zs!etI8aVu>;?6qT(r90CEg`@(ev1pT*@N@^m@9O{>hUmVhv(%nBDO~atUAJd9|PxF zp5d2xG!=0`?fuYmzIc$3wEu&lAQQEEFBzgp2XZg+B!eD@=2g4U3qb8WPFqETBJ_+j zG-2}a{78DWhsa>Rvn}<$j%D@!tRdFZb4k3%eq>B#E_0Ky_=eQf^8^j zj_Rz85IOGR=q@|=z?a<>?cpz9`~)tbI)M*;+c!{#Jfn40Z}Nv--M!Q&CB~!q&a&$r zM3AAIP>b)M39@i<6t%6YLq*M1HD(DM|joPfC-&x z9PoZ+8nF4QWBg#tVrZcezSyy=5~b=1+V?M2$97>&!}5&v3M$@Y-H+C`=q@ev%+B6 z9qrPk!Lq^7%T6li_u3#=U$GxzN_V-FwbM=J)Z8>wZhx~8@o1RpY_w_hnq6)5Gc~)E zLiH()c6rwtAF=zYOQtNENgdGtLPl_d%dBFpR$ITI2A+zav4dvK2$|MDY?xY1O;jvp zRm>8}orC<)-^*Dpd}i^IOCO~B$OeTYaM$IrIuj|y550Q<>>X81iqA3KZ%X!qYMBUb zzWaAGfZWfR8P^v8@&W7yG{16tOS>dt-wHmI~W+u+$) zUTLSd4R#`?dGpoqpP5`LNz*!Ps+-)L0a3;Mcg8$*6ZDR)-Jp64>b@=Vu$m5`UAdkR zpsARs{xa6u0fDmddGr{thxKyF3Gkshj!;(r6y;OH*Tz73_&OsI+#HgnlMjwlE4TA` zysO&u$Z6*p`RC+{)e_G>Lv{gpL<0&1hvKV@v8;zRL@N^EypaPe~&O&lA{1+74 ztFpmh?+{6(B@gAo&R)<2>xV;V=;MzaMd9PLIR5RqbZ4H1nyW^&oy(}rU-O7F$7HJTQ2zq94MVL?`{0qXT?nFrP@~KsXbJ9?1blSJL*W z53@1jJ!7ES+%<@80u{{clScBrMfdXM{H4iMgQFn{-F$zjvkWdt1Oq!vl(f9d@8NbBjtPesbVp$xV?*NMLihXPa8ZX*F+dlPsiZTbH!1b@JI>l= z2{pbl|C9Wu?J^t8*7Rb;2O|lMjmuq~lu?4!w1jMS(m%rX+JJCXFkvfm%u}oRhGC!Q z_qKbfIe&<~rUtBNQSqyG*$va|^l#}JzW6R59aR6X^03Pb?c;BI8;2^lKb+t%no#}K z?S`sl2p{aV?i9HOGg=aHC=FE6@UE)PNhirK^28p0%E@RoPok4jW`@XZf~5Tsrhiqz zsOf&V#0HJ#9(?QUgSt?;@oG$v+~XbWp}KN54(u2#%g2Lvm98RHBX*@y>_Z*>du_)! z#UCYD_T{;QlPhM3b)V9{Th^A7YtzZlC%^0OFW;WTd3XzKn#X%JT81axubTCqJzq72SU9b1d(!;n!?O5Ph~~v zfAsaVIbfh@UJPlZ=yhn}%hPnSU{M+h!FB;yYhLjIl~w!`&yEGIS<%&xtFAbe=B9S> zm-Pdp!Tb*TVv1td3$R}3r9NC+=q|Zmd(hvXcful|o!;46w2up^$Uk0xjgCYevOGB- zVZdRf+N~U3>@05g4MTVBNbUnci%MmGzFVt8IO;(RLh` zda@%A;dZ9-Q+4;MM*nU;y8RMJuOFpsU+G6e3){re`;V_<>IOdD+<+xzuXi)e5+=pr zcm5SV%=8Ko-$3zb>{RMZzX(UkAE=;mjss5RInm_Du!- z?*yo}b88<&KzYGrts@Y|)X{Xyy+GJUx=}@&lm@e9FSPvK9a3-)cqUmd-+z#gho;5_ zo!`9)41^BA*o^BD4A=DacDIaK)q=R_AujkM-o)2co#1peCNh@`Zo=$l-&#db_yR<+ zx#Q{U&U8!H+kzPJSAT(uV~Mi9Ex@<>;M zvm3G;WtCZmQd=iwO7(2Y!>n+4qg%~59xiq1>LY%u;9`9KAtSWsj695MW>QdoH#%O` zG-kF1X{6tzfq~MnESU%yTR`os9ULN14}E0(16=Drd(k)Fzn0m#I@UeiKTvVGig%Z+ ze&AmLFEMIaIo}>V>;+tEjU(IYteC<}B*1@j1s4|Ev7C~|wMw`}~0bl)-u-R;S8 zRtTBr@=|iR#9hX94Gfm}rDPRV5nK6CGBV4>5k3--01>z_q<5G#yDC7I^Z{%)D$63A z4UT|+4|?n6+|WXFKF_=O%Cn^~8$Xyz)&0(&=!*R`bT+Dg_tF=r+0VE139$}oqKwD_ zUqtRqN%b?8lW_w-E2}x40M%WilSdzfHu>@m$bIXx2K(qove+dn$t(-6ckr?OG@RaS z4*a`sp6`I>rKUaSOIh|*8_T`0SZOT&zyaE7d{HlXzmnXlx&UJI(1 zJaSm=#|0j?2}F~kHO`1yXAx1}h2P)Q1Nt!qzl*HNz+LxWUg&}MQW$tCe($Hgi&1EF ze}6SGjRajWk7lB~M3^tA1}cw?;{clX6{BI<63-fy8itXTPtj=n^QS3B3#dnFL%#)L zu3t++HT4Lmk(!-+>#eRsvsUG+q?f1T0Z;F|&7bxa`)V`OQ(5hFXMzYL5qRyD4zcq4 zLw0F$xwkG!>Mw<-k%5xhO8ocKvn@4w7HN8pQq8RQr)7P~(m}z~8rZ+q&Q2Qdclg8B z+hGh*R`*Cu@IPiqs&z}o->h34-3pzXE%qNu?h|G44I8I;jI-07Z=*?Xb6!ErPHG=4 ztYO^$sG);Qt?>+#qpAMI%yp{2#|>2>Ur7C%#iQ&kH34#Eh6k#!w~C`QYx+y_Opo!3 zQGIrs$I2`Emq*;*6~^A7q%`YC1<}%TABK^msV+bN6)Tdkdm+lyd!=e+dkw16fPE14 z5^MTF2;5srH<+N*LoZR36ra;VX20InUC?u2A9oY#+4y^UgMOt^g|-|nKz|T1EK2h2 zd$>v0i(qYWEge0@_dpy>teG5g(A_ny1q&-W zfdf+0PXHaCM-T9jYtu>256z~Yxf`iI`;ei^zl0{QSZWzH7VWQ&_IM%?07N8 z#acDq&>9qC3vi}YuLFG9Gyz#!GTUP=_^<&RR&}*>fu@Z z0xfKhq-?j_+pMa8#soQRO_@%fJOD{dH6SbdH5uOf4L)i0gpKon)@q!Yrngpp0#he} z;bcQDpv=DkJAJ%SgMa^~_uGySbk5rl*=FpBCqa6;};x~0MYV=ej0}ntp4$hDfDiMLuK~ zu%gOTd8IQT;l}~(y{wIF7TB7b2C2&j{o2u>U4V1`OV+US;N^8lNXS7qOr2l;ZIEs)uTZj-SCP3}hB`EC{ttVk&076dfqTob%#u ze+4UazCPKS%p6xG!`GgV>LNwujB%8$N4AS@7h72iYv$_{yk8w~2fZvzSv*}~>*Z3GW~b*z85)q=aD=^@N@iasvRROALycRjeb`X5EtgVXtJN?^Xt zLwmr#8Z33sWyi^16a29od==^7%^g^-7kvrPTC~{}kGCB`F;evtbJ8Z4q^E9`4KUOX zx02JVZn~fmTiVVuzCruX&oezeH#Pe%FI^Y4e$->*E*q9=ZWPL%ok7cpG~P&5HPc8KjhXk5b zm2yGY_m;Pmg|qj38O3?aBSO?2VzJSUU&tGs^&mCoz4!wh&DAj{Y)3EXR~mtf@UQKu zwg+K>NHj9YJb#=!?^5e(-^4yVab32%4;zI6H$Z-P zU;r{s#s3FqayBkBvyY-?Jeg&G9cX*=LmdNTTQ&8>*(>0u%fUy@g&rb7S>RrJdg<^!MJ=loI_XWhUz*zbvx+%<0LO` zE&RaIT~r(M@hl^TFv$i^D|3_k2Z3%$Et_*5o*fA&ccmDX>4(|w64n!%4qG)167vSF z0xWeL*atE!s&yLTyzaG>wldy|T-)WUo2Qh&)y?m33xYEjI(W#Q-|4HWUjz!P`khTW zE59^TTl_MV`9;YPwzB$^n-BT$a(e%yRym6K5`?DaaSmi%8<=3np&*gX*-^N- z+$heLdP7#aRAzfXT6~QWCzJO3rS=|szT-gQr|h$E2$zLL~T}g8O+tu&=`!`W@(4;9#qQE#uY3 z-b+dBj`rI16KYU5OmoSR;a;(k+GPtIYh}+zeN)AJuZxGOEdTK1F7IfiHb(2zu;IP} zXl(Ppg;3de#L)>F8`AZLkMc|7X=5JHQt#bb!^puu)oK(e|J+{9TE+nlF7sUc>}ARm zfuyu4nq;Xx3X}8Ca=U>AO85m284L%Z||+$)UlAHwVv)C)PlER<}bKmkrm+=@5XkyD(<$ML<`} z`^AX#(}|Z;)7st#vYDb7r_XCROi?FAq3Z{Y<3{F#tDRe*@z zHT*SS8R{pwy%;gPzcS4vgTF?6QT-JKQGHHtM>+K^E@$D3nJ#zM166bmz)G_=0J!L{ zH-`mF)NZ}EZD1$GynEp?OQ5WH2^@z#(1JbE)r9tKX z3S{Oy?%pwDrc4?`n~{b-sc(qW#Ho`<&Q#V^r?F;D8Q3jgC6VQ&bTEt)IEts2k@>0qW~r}5CKRDPU_vh-_YoL^Oq9JJ{WGqJ|- zj!yDG5ZAY^7qz)=P;wCCl@9K98Dh6Z(-zBlRBK5?pbdSjcuRrzLTFkFwsaQ_HXV-i z1}_Gl8<^oMlf4Eoy#6>y#fBsCz$TP72gJC@@?Ysh)g3)|zM=nh5YZx^QvcRh>sR8{ z`a;SsOgTImdf@ga?8944wprd9Db3dmB|L3+$rmOaMAY!3N6k za9)^LzA!;$a?B$3DI4g_I~b*OYM&bE{ju}kBM7(xW{xU1)m>xr&T8{oT!emQlHj6qN?#V1k(CBh%+AefRZlwyD#&*!k8l7W= zW?6qJ7~26W%4ElyQ7A)Gvs$5VHtLzcb{}U~)+^{Vq~%GR$W$rAwzucvi8wh54Nik85Y ztUU+t*>^7B>_5)3qnzoH>H%EMUc4?vEQK)s8im*_9Ucf;1~x>ybR{&qCE(=J4F?2O z8&UZN%}3U&4AIra_myLc(FfXRP!P2Xz#V@JOxY*8Fr7>sGQeHFt7S^a_7@f|E6XdZ zl7oEZk@w3HYbP980!# z-xH6p;YYo})|(?a>P3Q6|sS%u&nUr@_w5UZj?7Xm`>l7E-0U( z&xpy>SS<}at?R5dzV?0E*!NNLV^{KHa!r)F%Ma7}xq9Y6n)p)0o!N zP4*Az5sqLD=OA-6L-EV1G3A{%;@qB#H9Vg>A-RKHsBD`+_iya)<0$uRN%4?*X92k9 z)RpjO(*}}+hrw8@+6FCeK?s6!qbL2jDh6>|$W<)!;(I%VfFb-gA%iLZOITXfcPueU zZ8f_3vw<3t@n&G)-Q6N!;9R9tuNV~JEI;hcX2Zu694ge&Nyirlkq?rx;Ujy8B+9DU zNO^l-*TClrfw*XS+cQPhSAZh5_(xKJ9x4d5jb{;D^$4orIhTU`WYrF81Xay&x}F(p zyS==v+sjtFB$5Hjexl-~Uhe0}j%ix)fA{ga<$;`R&-4F-G z_owT!yqf3*`G|h~U?(c9qch)9PTYLe6;HgVJQs&W{T!D$EAl+EZNICl%c2lf=+)uutVf3gHqiTtrmTN{klp^yB+)mnh7luo%i>uLb!u07g z$Eg16%5#&-9d=rI)Y0`f<*{v*x)0m~rLH#;vL;7YW5dfQ3wmj-U3$TzQEWO+`}Dn~ zT=Skn#hdwsfzjg${07`dNBbIP-aC83Xa)4GEY5-rb+f=(-uw}x8t1ie;S2Y5ca;$@ z`oXtQ_LKR~a>t+6g;=RLAO%X14y|o6-LAS2wtdb`tNcO-o`HGQwTw zMd`OG6GzN~qC6MdIfxF2d_r9*h3))`LS^~L0oV{df<^XeXC{+p`T&0J7=@T*%t7K> zK`Bl}riZc|CG8|!a=H@QY967V*u^TdWDr^x6hTZ}lR)_z0sUGG`cYAq{MmFY#(bf!zMUZWmY zm$Ntjif$luT?R{6O^?hL1XRj&{P%%Kn^)7>5 z9cPc?BbqV3V@I+4?iVZX-W={GQRfP<#Zg4;0KU%B9v50|3WiCN@@?O{%br(<;9H|6 z^~d@|g-Crm-g-$lc+kfxI0SJCVJ^0rrKnZEL6QH2J$y!08e{nsjACCVW)eluCU65j z@95#veUh)pg+Gg{q`E0q>{s(Z~+Jx=`RFdTT5m{71Q* zBj&Pt@5m+C%Z^>)y%bFA=VJ3@sR*i4Mj+n@aau<9^AP_76(|w6B}B=Kr*lWhIFdBR`!+i}y zCu(+T#QCJFuk>+g=g|;2Me~N8t%Z(zd>fbX3MnH1z^_HqUAxt#CRX}CToRz!<{(oZ zj1Sd3I7c>pR)KxrnLrQCViwl^SH{5jckjF}?&DhrH z%DoNvy!^%SA{cMx zO-|g}$qeJYzaiGy8hJ-sQ^VVGmCsz@VibJSM*&txoEaP-A=CSNCEvN4%nJV%)k;lQ z{$#|2spDtNpuhr3Bv_0zag`KFZNOp*7~MmR=zUj|xV6TD*v|t)Z?pb``y3^eWeeU=5=pzUh8}^Fndi|?*MMKFum zQRby|g)ERyDS)3P6v_BR3VAE?)T^4n2x&>Dq>r0P1-x-aHzM?$}i*{GzbVPUHkGFCXN5{?~0;(X(i(irEDIS#bJwj`?${$b?T;gC;-%Bz!cLl1lVw^nT}1r_(p%l&!aNlwT(B<- zJEf<-N5gy00iTrUex!B3Q9Zro^9PaH)%WP-C$Tl{Bjwl){$lccd|T^pbYSUx&#E3<;BLyw4**K3r~Lz!1&&c(hjlw9_wuuIK-Pw(;?{ z;qWelEv$3Mr4oK}HrIM<7<*hSZxQt0*IH*5t!JrMUP)KeyJ7msnc3se4U3 z30rOMATw8&RO+(ZmsjNcPh4=PD&9>#|Ld6{U#5n~$g;-(IJcB>#4dbBT-&hQq^Mo` z;@G>JoNRg&gO#Np#05y%-sBKb9U)X(i}y!>Rrz#ckKJEJlxg~?$>Cjc1>e!F}@nc+Fy^g*ITDRAM`tb#=$9&@?s;_=@@a;$NfNz^U9J#Eo`;@%tQ^jc+m>wTLUl_=$_ zwJBF8*Ag;3S^7M zZKP}c>aR`AcCme#muG!VPj?HMH@Zg-p`SMZ8+?NI)5f z1oU((4dn!p?@@u9ce z;n6r}J5>7HL1X?OBnka^eqcKDiT*3Hf+Z``*ITwM(s=7(%@MzP$(KzUpMRS&wvB** zs={DbgHYi8yOi-_U6!vLtMm+%?paKj{@2MvSzcoO2pr?u@2sr8n?J;#=(Aam#6!O! z%Uc?>mYDxPNu)B9B;x!k7*fH@(a`irBGv;_LgY5$eQWXk|47hwl#@jj{xZQi(p?OJ zPzL_bB6psR=j8vj$A1yNH>ZJ@`@il&Vfr7!w}-WOf|o3}PeWDt-wNUDs=&JR1G*D} z{sL_I--_VUvlF{39|1Gz*@bE3|6wfuVNMZ#BMMS zUDn=9#>~cQ_A_5XL4%!(Q34Y>LR9*H7UdwV^$b8k1uk!s~vbloG z{GWw<#{*8P-=;xUT*R2;e?0E%Y?a0A!MT@K<$ojgm*x^qyPu8=lgaOtfOSNIR*jjC z>DY-5g+bPB!|+OZCCzVLotO4+iD39E;DkvdVM)KYFU(0L%&RG3yfSP@)Y_UCG!?$G zdQ)_$R82SF3OS7dR>;RC9&4^^H6uoe-5L$a?-?MWI(vAZP2=E6H1>d7>i!KCSi;*( zz*ogmtQ2-HL^HDmn4m?As-V6bxNu_J&nAZ6`oRpnMzVg$EuC~_{sh?Pfki-wMdw%wabYgSU6ajOXA38t-hYns zKdgrn)7)boIIYCeh1`8ZjgkFA#APeM%g`Q_qlvR2)7*Y*0rEt?(P$k$Qzt`x@dW9$n|)XY*!SU&*pk`wF{ZR*y(;`>dQCc{9=>UWy8h8PaYmHn5hh zS#hfEhD^?rX$aFvRssh<(a#eOtH_x3A{k`MR$`&gS6 z_{f>FC9cXAQA}2GcTtQl+kDcd%_l;adRYHtTus74O`Ld41hC!xb4i3|^;8M^*fGLk zVVa?4o^<)xFz zq9fXp*->`00eeO?Hh z_&EBx4{wB_zWOW{Ri_V^&pd>GaxIui(}I<`%sdBpJIO1G^TVrqmHDv($Y61)$Qq$d zRkOnP=I2b%rp^XYYi>YAzw;N2#G0Rn76KLxx;Ta(>u>;z&iAtL60VW6It+1XAc(SF~J6JBAOLn!b z=ocW*4nXD8(?Sy$*5bo;uMc;U8w%Ik_^ZWFemD-RL-mATZ!){Jn#aBLnPZ?_n8gq~ z{u&MOg);hqq;CDW0I!3a4H_$lxAmEq1bUvE&G}$xBgTEl2G`c2r z#~0dZK!tQY<=8X!UXMGcJWY{#r)2*F`E{5Y)a3THHn5wx&*yk2pLR@EM_*Sy2n<)g z(#zMU9CPH9lZR)+{ePAOyJ%_>W#WB)S@Mx%=~z^+bw9aeXr$_0*x64yf3Fm?Z9h~MTa16dXfAT9Rn z@7Ag_x^E4Y=;N>Rxu}GwtTE1E67v^p8I70m7Mc4c()xnDOm8`D#!se$cL?qqzazwZ z^oe9Q`L2o;2mSW&7bm+#Fwyo#pV{~p+8e`9PCkZv$BdpZT`{DxJAlE6N*KJj4?F7f z1Lbd1?cnb)Xeb``Ylr??c~e*m|ro=IqZ@0pKd<`->o32a))7TUrgoa)-{nF>zc z*C4 z_q5zK3jfR@(2d3ckTo7kjTY0^H25&z15>GgR-YYZ2IV7D-u}`}9ta3P##EM*inNIZ z-s&#A%6kGj$eF-^%)b$r)i3K~dT$WZ8y;0+3BZASZcsoM&$D-lJStBjBS)I%>wTQ< z3mx|w^SocOU$;!AUBceH{t`u&YO8KMUg2yt-tS@?>|$so9?HU<_7M%>&ph?kEdN(=PaZPu1obSSsJ*%Ql=Ul}f_#GHl|um$ci zV;_IUsMsQIx*p{#PkQm}FBc&HxW5u_3rn+^EYpj=?#|_G-E8*22)G;p{y=n=;rLjb zyx5CPn>iG|%Qh418&kchie7COByIz+%r?#m4U%z>Qoa6qH8Bte3lqHXuIUB|jlkr> zG9IOWXe4}_>gQoIRV`z_lJq@7E8~SA5SViih8rKuVEm)+gjIk-L3(vPso;7Hw_<5* zsZpLi0M*pAD+v(ey>#3bjEpcoYhczFF{7)Wd{#54tz5JghRXGykysqHMgRSFoc#mF zfa=8RH_9GY*c0%MOtI~?GW8dnO2?1H&!m-{*Pk`*^*?pyx_`qFQ%Q;byDcU;v&)A? zqoZNt*39wnxEmTq{O0Kot7$E}q<$k)e|-is>CcVVU<8vT5{$Kd|0s9qpi|J=n=#25*O0P`VmR-@E3v z)>XOTvLqHdI6ME0;`#89VCl5O(Np4I=b@=jW;P{6XM~~eB;54!=8i{(3`zbs!{l`2=uCFuNAW(xH!74G<{hF1andW;@ab8d-e*; zG>+`@iD6F`WQi#`sCME;K}@TR3qUXYGZ?vg_S}aQC^XZLMmfgHeFrEGCN6>IF}tC} zU$V9{>8l--254kPowe~#ca;VJYO0J#alpkszF-Kl^HC^j|N0t*fr?G#hvI^GQ+XpQ z1)y{#>~`6k=E44&uD)_=!2o{p4syxuVY-W)PQV0viv~8p2kB5$M`qv;R{eEejF{F9 zflah1;MNCR@GG;SZwFL{iSb?h`%jPPfzWtEp@W3X@WrsOPrAR%%jQhAzl4>IDr>Gg zJIpaEOPL(r8Ht1LfUNXYsy%I+_HCS84Z)g(Htm&~FJ4<0UXv=}Yr6&7wUwm5s9-DB zc8iq3pBHv)Rcoy6hImxZ#QIcK=@|Qpp)9Og&?Av*2?Cs@D4Njy9gLohseIh#0Y0ws z_*gWbhfYy)s3ei~At^4l&HX$Scc6jWN7tlCmxts1v?J^u>m?smd7Cs3`$_cp(ze>E zj@Fs-WqVDwI<*~CUJ(b5{-6c_^jlp%G--O-< zDXWJr)iTrW7V%J@fW2Ao_q>@ET`hLC%eH!a5-GL4HLmK?+l5+G(#KcE8(Zz4mhS~T zx&CxVci9xc;)*$I&~d7yx%C@qNL0%Isb?5SRtG^mavM$nT=`A`yK>hOz4AQ_zOHwL z7!ehNq}l;B&$kcbVL7`q5uzcLlsL;5Ow`>Woz;mK^4R21n8x6yKfFitWYTV{q49@k)xOkI zUR;6@e0!lDQ>j02SiU|QesHZ_J9cfuB-fZnh@Sxz_R5BcNBVxqg@}I1nN7v zN%=&WGUvNvV7<5l6XN?7llaaPp)#I+j12=hV^F87R{8BTXa%R{@B%^K5H3t(+fvI$ z(g=iXFEm)q2iQwv1yY~-IJN`&!}Kiv{;+DYhs3gxtOXOm>^v%_XA9^*p1tnDvwIaE z-MK9RZiZ2lCXAYh4qV!@iDPzu?!mhdMCZ}T^XrariCPrmLGild>XL9xaeTlfku@z z9+{~!ZM(t8_FNvD;NRt(VA$j&F5OE9wC?jzydc%4)SMO9Uh2D-T76?apK+%griQ?! z64S)YhQGGDeyCCWF}kdGh-oM)EFGnjg-_$0_4|Vz-85*KKDx>ZzXeB`iUhyxfj@~N z)tPXPr>h1>_u2S;-t1DyV6c|{xYN(Wd}P#A*5b~oMO?go1_J}XMX>AE9qz{7OXXrB zB{E2|j-5mGk3f7eD&i=bA>VARw&wbO7rd+JIxXJRJ5Ft~4Pw|tV4#2uKZZieY zu^~!alA6!%21ZsmxoDB z2^&i(i6`-4RR2P2*ZX2Yh;$CiVTaM7wnq6q3whj$HyMkR&2Q_XJP?m|;ZaidfEh~W zRkZ#+7n8~g=f{Aud^(J+kxw(xx$-fhhaVeA<1m|3pVYR?-y=a?_F$zH z>M|yT(+NvnsY+q?1u`C*{A*h5-@a@K(vUPB$1}=lb4MR-dX5q$KN?A*lU_|*&>jU)ul?=H*e}aVbqu@)5n-nlgygzff29SZyN72S9}*<}MgTW-8i4yj?QA$&fhW4V z%j#;jN+X|ekn`a{0_WdhoY1|RVe!~5p@=~aLfUxp1wW?E-(*p!e@zLo^AA+lcx8Dg z8eFLw6OZ}AdWu1m(9m!fa++h5-s*Y|(&cysbU=J9(X5!hXB%<^8J5skfRIpo4 z@uV=n4G8t*420H|nT0&p7~(`-8Ik__=|V-rwWrn?CVv&Rcaiz4L-lu6t*e>~+sb@% zm(bR&@!JLv(*JDgbBm2OWOuBJBCv&SEknbl1AJ&B6%Qk|DV$>^kRPjc^pzdHMZprA zfNNm?EQkp=x6_+;jzUvd>rJSs+v~uh0B2Ovs!e~)9P|~cqIdQ;oxG*1oiX_DJikrR zpo$GGIbdq`OwpUSB$5}OM|D$soB`Su2i9MojxoF2z8$I*RK{31aHn1X0bQ{kuMy{O z={?kXNKuLN_bKmtvt3=O-WHrjL9@&|26%D}QsD_Y95L0x`5uP~C);kwZoTWeWy{rO zh-6b8AxXQY6UmRZ7+42(j;ZXk$3RJ_<+Lip)b=T25S7NE-j|}cdl{vxpTYZI{=8~A zsLWI63r8qo5UgL{G8DJEw3@cL#j6IbRXGV5v|=qG&4pcW{a0gyr3WIOgi4>XyA(DE zP0IeNT@T+7q{ZKu&_mny4I<$6g)6`{~n z7hu5Nvzxna(uldp$)#vfM^KipP=LPdj+D`IrO;6VKF6igc#e{!&Wr5}NC@++>3= zKQGeYZMX7?PF~{GmaE1>8wW{TSP>%g_711z+62Mt6`Q{kL(Ab-T!qHXMm^i9h2LwL z3HpETm3*)vD+*`V)tu+#f@GW{TfV9YMt#g6=pfRk>CE=joP6)JJ$(q zTqm?rCL5qk_OR1!cCJZdMeX=c3Wqr?9Bg=~Sl;`jut2K_$tC>B(jKzc-4H3;7nQoo zsbRpdRKW_>-emaO7NOoZ@$SC+;iw+n_uuF4tlrrdpTSG?uP000ohOf&I8`AW^Te!I zc$Dh#SpE=dP)x#|znHiVB(xT$qWOUne)4;S}#Vk*QDpvtZzxXeRC`z!yK`#0Zgb*05^2W^t4 zqg^kyJ7dhYN=oy+I^M~LD*BR^oy+ox=Q?*&`TV9!I``Xr{y;I8yF}mqDnM#4InwH1 zL`P>1wRh7ejhiq-S;+HGjc2Pw>_1V0);?YuEPWpT&hp&=c+&77HWT8s*XDFcPGO@vY#k@#7%j= z_L>20Ts4M|G^#s%H;wlFsWn;n)dc!Vhi#f@-D+3t!54@}Uav5%tK%bfa>W#CY1M^2 zU#>KW3!9OQJH`aYifuJ6XH{M(K-Mjy*vQ|jMajIE2-jTM3!-Fh&p=@TFxyTmz%iE9 z(tZ9G4l=O5izmg8gxXaY}HIAM*xz35$EZx~+; ziZv_wUECwd^1Gg986zI?fIJ$SrF(Yq9nL|4uJZYO=O8HID6`I+35~{R(re`awg;7t z0FmAJ4TrVyYiKd!zZm2v`#)m2%-Kb`$QRb&V%3z&>V%F#yxl|Z@qc4(LNG}j+Zi*1 z9yIf{UjEKf9vTD!S&ZIv_dD?cvb38eMaFGJA@PBkK zMAW?d>EsCOhIBHaVl;PcXd<$k&6F?sUI_?&9lHMQU2abd^t8qvP}c&pQLdx1=W8K_ zZF4~?)1KqNV|Ue6^P>QgW=$N#r2p_x+9wA-r}{S`=`_CJtCI)TAnp8XN;<_vJp@2? zbM%KFaUd#xj`Ej|J^I7L&5r=ZkLGt>8J~gNZXoDM^9y)PIt8>1lOS!Gw~RF<_=_%v zMt7V;gtshr0)*!*xY<|qE|-tK23D_os>DIwD96jHp+jz%BrWI)1?ZsBQ~iZ4drFxc zt@mOGdOQOZ;}}_}Wu`J^dCtK{d0u6U=hkG1o0nrb>$MhDNXlN1F0FymhCRnHkbYp*1GSomEKkQqznsSoTA{YlK7HGfO-eR{i4FHjk_T4YkHQ+4=+T{wAJJH zHmxsa1iiiCw)OO4(@f(?8r}cuv8$_fpGXa%pbtUhY^ruOiXkH%4yoCLgH%JSh=aJn zx_lwd%Jz*C+JakKg4OkKA7D;32OS!KxT{#pENgAJ9f>J#m$I z3r=oGt4r=*(p&hWtCN}6StPRz7f{S8?;XExcaN!%Bx-}rIpLlx?oOo zRr#OPE(uy;D|asC*~R+Ghp&{DDZ2#lSVp#-t?Ux$JxTYHy+$`gJR(cOWmt|OK>oa; zZS^M3cn@7w%m8ROhDba14(*HKnr9PL)b;EW;=qBTq8SlBp5DWS)#eWJZ8-7v{kIj* zP&b2v9D9fowdkDQ!Ir{`kPY_?@|W0oR9*24>A`33qhD#-0AqPdIumBUPvBqo&IkX@ zj?;(WeTaIYzF;7E@=L^LJ9V%miu$uv&hiU|l*&UM{xnt|Q?A*&f@?p|RS!)u$#Y+K zW0qS={6A_3L9*!(5Lwl7M8yA+fo5Lu@RzY~@cCaf(|JrD0TKGMuYvmxF7gXka#1j) zIW#$^6X~IH=?|a)bvJ!%zb=82G1fEuKg&=4Yy?OktuLa=uN%bt;YX(gl&1g8RDqX= zo5b9mUfmQH9bs+35OAsoMCY?N_|%VOd$&Siy)ah&GwY3xJivLKmXkF~t< zBrEOqUqS@ad1hw^IW-RlfmSpAj2>h}N0^O|1wwnk4cSqqev04hUyEt9$}GH|n)uFN zLvN)|rIqs=OJ^E7dl=-(dx{L}I_Bf#q)3=LjV7!oj&&x!b;Pjg=ob(+XN_}40p!X9 zj+@3WT6Kk%q-ioJ-F*YYJQbr8eqw)W>V1ioCNS+XW@i7#FpA>nyVg3F#sstEQbFoDQjC-iZ_hz94fQ3GhF4q9Dg-Edy35o zTFvh^@KH5M*M6h*k+Az|x;wSaWjHw<{pam;jdH7pgHgVC4h*UJ2T#4UJI?y;Z8q$& z_NAbAQB!z+8iW{=a=M>Qox z+sL)1LG8WP{SK|T`B(M|JUYzcEov0-iEs>%USa*1hSxJ2+0`FNqf}^K#soo3k(rJ|D+gYc)nZ`W2m3-69~~z|79A(LzqfXS0RL0-E~kGGL3QF+lz5 z%x9mo0YmApK`dH+(CZCVb4KAn)rMZXZ6)^Qo47gEetcJv!mus1bYd;dQjnF(OmM&K z4-$N&^H-E}OSj~^%OnSs+57fVTGr+wud6cRlk<;Yg!Ae`CS%)1boTgfN2GBF`Wa=tM4W*wq*)plcc$jPyA9xN z>Ll|3q@PcA?a4K2VkTFVNs>*T+aFrgci}8Y(Ww=NNA z%EH%i__-*GX@86oOghfo@UP-U% z!gN|?BRadms*>s7yN4p8U+1ia@K%fk{NLYJZFfGs%s5}X1&(3JI{yGa`1ZF`v>&Bz zuJohCs8NjGS z##SB|hR{7nAh|mGxMqr6yV#vASgxL467r-bUaj?1#)|Ss4fCJSY_w~b+qdTmJMGvu zc4L)Rb*PW4viUCvVRzpImzi8k*VS`(btg{l*{9W%6DVAqqq9L{!Mq; zJjGXCMJv>&*Z}@zNAIY-f!c|D3`Koe0+URn?Bw3Qk>t=$ z%){();;F&ebm$b{X}5dJa$5&JaW>0N)aWW?+F*a+zW#I+$u*d5{dKqlQ;kjC6?u5; zS{CcE_HIm@-~`J7f4s44Is7(nhDxzNF=H}!XN{Wa(^!yuWk9Z)UKc4c{y#RS_{cA@ zW*@03PeF;2*)^z-n=1H(i^0z_ zzm6!VG9Pt&{e56L>n;Jy4*P`Cpx{V)fOJarqw*+m;Qtok-L)|lTwiW5NAH~olBT+u zR4)VTIvf1|@%A2IQQqCUw*xanhoKC;3?N0M4815tEGVL2rHNqd9TRJ8n3$*-6+@h* zX_8_~lQfCOLaG`~B*m6kFx?a-#h&Q-Jr6|9yWjI&=ey2zop(C8lGQ6QVU#5_oDC^)-8A7lsEJwi8`h`)T>&`Qk@su^5QCpqG@YG z4M+f*2C>f+)!r#_1{Xu!n?89ny$_- z!M9y>9^eLT&YTYOp=hbU&SBgrH8n8F3@)Tu#b@61EPlb2!^kLTE{q6PW=$x_7Q+hi zZ)4uRZWwm({>G7f%Ej1EdTY`EwNL1~$c}dz&imOT7-<_47;x9BYhI5h+x1HYhWer+ zoopZ3pGNi7I0rc#&ch`+6ZE7ja?&d%)cMO4a^IAPz#O918a-r@)=ABqWBtT;1Q zTna$J2hZF2iT*NH3f*4Eq@wSaxDI>Gg-%tusm$+AQFKegj;ZM$NWx_!-G0yktVSHi zLUeKZjziG?PgX(8{2pMai)awvv;WEkkgmgIoCghsi^_Hqh_?T;n!4ku8b#f3OB z-5IFGJ!(CTxf*F=a}I&g)t5nK57maaN#St%w3^;Sxe(rUvX$K*m&3C7nvrMUC`XhYra?`Zlnvuxq77E6%5m~i2Fl#@V4kvaeymdjVRJTH z^I^j>J?#`wG(HxYzr3@K4yjdPHXr#Qfr`r75GmDf!JQ$(&L|(dVa?Ke9m>9#^{B^k z++m8%(mJyDl=R-ZdT!qT`PZo8JCg6T`uoO?x_9&h>9G#xiuxr+eFJ}6{eEYUL2Os} z)0WN7I^BQ%xrR$oUe>TE<=hS=E{h{ey_(vt6pylE+h`m+GJi}fqYg{+cV2H;QU(nc z^R1krVtxYp-iY-fc}6?W+jm>4DIN+mbLdogYkf#4cNy2~{Cs!y8jJI>iIl<(Ay|(8 zq~9s8oUd?iDx9Bhr?s@{wYFB)mpeJVVtrY;YJalUz8+nhAqVbrO1D}%Rx}UfSHMAN zeLcm?PC<7n-_NZj-St{(cdPZ}>8#EV(LLy52X$?b&YakeV?I|7OIZp(Wa%}WKq2;v zHG1*!D;=;-naAq>(G={ZtgDWw@siEJdFKsXIFl~9+SSiveE-h^bCu%J`JG`c^Kf2{ z_5xFUleZG_DZ|}0?{V^+ey^*O@|i{`tFLM9LZ=HF#TsdyG?%5;5|rR{znjD8+YhLn z>}QrEv7tt%G;QZ!JN=rwX^rjU_Uk10Nj>wx*E_p6{ZOADOjk()L;eLKEYmtKP8-<+DBC^Js<>MAaK`oAUS z0?kRqJ9UY)oN$}pl;f1^p?UNrNWT-iOp+F>%p#1CduS~`^gz7dy`-BaNVJ(HVH#_R za?<&#Z?R!R1UtUgPJ74RY~c?*>g14N-lUU`>i zHQFcLYr9L(AbmP^D z>XU4m`o0^tMQb@pvpWBvBk0^bNd|3ONeS#)Pzk>tu<<5Y?vFDbwxv+4o~m&vP$lSpCw2Q+Yuwi9iQ7*i$pm1OWX@o+ zl-{jgDj#-=uVP78uhwFCUg~&HlX;oTR;{$1&G)d*j86im>=Q0+$EZVp z=?rB5)7KEDBfQ-i;`(&AmCx5u0-Sga2lqrcH~9^U zyOy_52VAu_ail6qMKwVv2A+H$&aisx+g){amy}&G{<2t0A)`{2yKgRl3%wJxc>8^r ztUl>qV3NWc7|*EOy6WfXJaTTL$~A9|(TPnww73Ni(Js~Lh_%@73Lc@(Ca2uj-A-0N z8{;RN-4K&E9VzA;wPMgc;5d^4r8li#wv!Oa#{mqwJWsotJrs21>UijYrZbHAdVfC< zy|4};sLfVt#};?wt;gHop`Y+m>WOhiofH`mb&L+s@|?kMLCF*q-9@ zHb30FCUDQz?=e99aTgvx4Q_-ipRG)EsIMBKm!mu5J>=vMP@ziJ^A>Y9^Xv}?a_+rQ zLDub-to=5)QED%(4Jk99HL8xttW)C7SW^t&i%xTRhu5g1N zqe7+Pu8TrfCeOu$$@*7uDZZ{n%Fs~ng@);iVqc;qf}+WDuSCm{Xm2ZDZe`Mu^LZbb zbcs;=+P>|A15zu`T%4q{~ef^|}~%o!4d-uqhwNRc-&3{fNHa$coVaS5h1Y02xQm&rF%{q64K zCK>m-TWyY1d3Mi~t(Wt|wB>en5%TH7B|Ttb*Opggzy@BAr<}U2BDan3QpDCEBF}+Q z6b(hFee5l8%ykPjZt}BtA3NFSQ{W^Q6lcSnL3p){9cgP=_cUYrDeqFM@d=r+@1|Sp z@*Py@h_wuSDy`trcme`GH9FZ>mS63Ti~MXR5t~miG!NR1aYU-O$?vW$*ZQb)$CBId zhmA@g(92g>Sq~+tAszcE=L$X;b`I|B?b*nh9+?LYs7j=5XORt|F2SPLx;cn4r;^fE zkOA{`dj?@|@yWJ5r)B4l&%2vcu*a`66O(KOuFK$dhaBo4XV!3>9QOlbtNVu9Z0rq2 z3*Qw{M5a31MkqVdRjyYkD`#uGjg0n2+MjU?tVfmJ7=EM%%ek75;Au2)5c}0v%I|~z zV0)hJdrZs57`xNZS>{aAddpb$3Gj6-RDndwfP&9~<%+_<+VPd;51ZT}86AX9RyUM~ zJOA-;J4vaf9Z)m!p1$tFrt0TwBgP!WefM{RB2xVwYWEFKy7R2`?8*_P&}9$Wx%PJ3+o5r(!?tTsps}M0Xo{!SX(JgH4livYErN%QRZJxx5 zGx0HdR~Zoo5wh*R3Xnv7cU*@8c@B^7zyQtsCYW=J9Tt-f+4LRj9{+)cJ>SSed3!B+iJ=sC^)>3B0JpmW4utcCEk zBQPe3^iga(pr!o@Db!TVdW4P+a$x3x0kC^ z0+C#l>2xk^kugfKHEZTXOwpig#?k5&_o8-fR@ol1;_;`9!|L4Ffe|ig+$dj*dzy11LDcPuHa&B|9zijx?=%UC$sR@-+ ze%TXQfQ|V>85{56B^6)h%sTs6w+__XK9WJRdWT%v0Yl;%D^t}}dMXD7$qyvi2 zSMxCLM7auD8uthRoUS2^txzY?cO@c>xWCDUGf_GJKhr@h zI=QXHRW@32+p3#hg^SM&3pdJ@A=of&JfF*yS4xluI1?mjz6T$boXtS_O%{4A?+=as z+#;Y55zo<8dmH=E-78Og-Fs-EKRT5XDvs|&I?2TOG{6)0BbPEK!wH<^fkTvO9QI>p zuCsn~dhnT*(SVFy80;eTlNi`!Pr{W%xiZ(y=|-r?CPQ<0##!M@#k!K8M|J@P~?vNhUrJ>O^w5O-VJ#nNEemeT9O48 zwmLW8BrgX#c95hdTT>+b$Ff@9*`E6JGG3TYOMPGsK9!2m*D=nsfn)g%mlG~}i-i;a zxP6ARd=?3ql5>AKyms6ET>O6;nQaV74zRAUFPHe8TpQ;1l^BKno;05S`V-RjEST%E z`YxeTGY$x%^#s$+^S1pxEdqillyog#>_e`{&T_WNif3Bp=g_qM@seRWTPsayC)*ND zsB*b^X|%6&sqHB};*+>RT>EP^X zL)DMYE5{gZ)Mtr+|Gr@iKAf|(@>d@1o+_dr_@==`YydMr)$DrTBgBr}EFXaQOp&Hk z4H;r@xz@)=^ap|iq`H-(a`7N$LJi3pl@!Prx1~46l5@;jf_UwMf@Ud><9BF~sWR%FUOuwAXQ|$C*0^zs zSw?&^|0_MLIN55FT=Cs6#SeAkyQx@&ZlXQJKg>_IzXncp>;p=t#v|M;Q)U=>vxfpA zV#<_sztmaqP^QN^XS3vma{da$SH-Z)892uHq$C|A}M? z=Dsb`<4A=@8oVTz(erUg1S$hG&4%E<9H$Ym_g?b^Gz`OBvuzL4TUB~!8(am8BGv}e zbH&xNBFz(@h1X*{OoAPzKsDWdqYw4sR4jc`byz`EhxJE5v9*VXh#tM(?r4IVKK$I1 zfRs&xF*4l658x6%gicrSkaP)#ZZX#l)mXu>h zLbr6P?L(vGk2JY&CAM(}`lHQ*LeIav3ovUJIbO@@F&#p+ILyaTRK1s0ib0WEV z>P}Kh{4kg5ne;ZO9$)h1pX`FLeO^d5)LJhFsclivXf7Ut6g2++a93He$ZXWmGo7^e zm#v?{WcbAo;ZW)$8QhInxvBfyLc$50bHd(`HSnf^l*`1UxOPTc!Fr@l5DcR zl+l%L=Je@P?w5T(P;08uh}q}EiACLJW1My6`;o;_?ICkId2_w*`_?zHiC@1~Oa zp%P-=7kb)018(HV)Aru~?#BP=R>=f7O9d0DFv*smL0+mR6GUJ_PM1Ekozv2`7m`Es zr@(}dowfJ3Y5x-yGUc>=n4CIo-$z#YbMEbVoFnhUGxkU1+ap-%ykpH%>|*5vgUK<2 zME0J}Tv56*JNe
Ua@VT#e1sv-aqd(FDDv`y^Fq4*8UR#k_^O(}Afg)=!n!mmbi z!_L5|-t{>sM30;+bd_5lp=n-l#@5TW!%H|;G-)7>HBFf3ebu8Up_yq+AFF0COl_^Q zvyrLWje+vXS7fl%^a4ds|Cr#6@0*=ew;xa0G!}*Pp_8Sw8GDH;j5>^fea?XXesWQ< z@oVgYQtYj>2|gBQ*jky-N4ZPLkaQz=UVm44;S^TIFZIw-{cOWy;O`Y+zv@xuoXUx1 zY6L7ahd@d-{MAP%ekTzj(5Z&X0zZAn8CP0L0de+`o*Z;Tn2J=tZ-853F?DFVydPH( z?Vk`IhTStTq(KN{8Do=_-M=JSblST2@|(X?w#8^rq@3VFWyEEALooT6kJXVcy(y6IL@b41@qnlI{YoA$=_AE%ej zDIll+;Yfb#cu7^r;7y%&-2J)YGa!DOlkbpojZI5Vl$dOqMg?kZG!~Oq50dBXqEUsi z1Oc54t?ezNs_b?d)uAot$LtHmeu}r+(NGRAuYifya-^D`s^N zD3`kyx=Yy07_eQ*Vx5lN8pKU)hLlnI6+MeONI$=p5w_aN7383$S@klo2)Vv?l9kKI zMJ4u3c_5{O(s*L5L!gX*g#<~b&lnAlMqb{Sn5CD)UcOKhv%Gy}_rc-_F^t865D&c$ zj%MClC>?kFWD_LEAIpM#?!i2vaD{`19LSF_%GK`PUF7@gsm689%&5BdrB=AUb(pJU z&T(e!`c7vjhyZ$-(+eC&AziM^(c09%@(brzZ~Vl~VSXsu3{Z?F$12b`@X+m94<2XTyV$#3>w5a~52s z%J=&?NaXWTp0e{DklKX?Wk7MWlGe!&-dpd3ech#aA~@mC1F1>vjs~a%OB*>h9>nFc z!e`oc8do2cfAQp()WQ{uVObU}VLDP*nFBd%5R~!O?L6YN!MzcT{AO=o-#~78zaT&F z`lCbqF*?Zv3tOTy5bNPA!xu80D=xOjimwkIauYT}1ljTmkFae4jr+^*;U@djw`eHU z5$Ew?Jc`oiAgFGCHdHTDw=k@$_=X;A&1%m;*)WHi@8U7cS6U|q1Io-rxMH|TPY5-L zi+=)zXwh<3OzK8v^Vxdb0&?O5Q5Px>t4I9{y`|U7Oi6YQBkFcae{G~pi^ZY6?=j5k z*G-1D*>j2}K(4&UBWtn3>eOytH+S-Ty21V#LDOq`kuk#LUC>d__O!B-{b3xJdtTro zx>g1)X5j~2Ibf5rf@GfyP;^ZZEkO1|h(y~C55vCtJ42wHc(9v`9NKE&PSqpfpL#mU z#WEHm(-W=q{o})Ic*`b^@9fL82A}kS@wvSpUqtmFj9BI1FOz>QaiDYlsAGeqeh6VP z^BH%Hw--^;rB)5Nd%vW4bMQ6W52KDvjdzlZ-_qx7%|?X&!yumKicBi{oQiltnUtOL zV-th#pVs#MkL}~8K=YHI8DHB=>_c?v(*54pDJo9hRCu5ySEJWY@x$0~UGz+PI>I1IPZ{9lOsMKI6@-d_DQPnV#~2 zqNP{2bmRDiw*jf;)OCuHg%|b| z|MPh8ko3qXgWP&KmW=gxaQWTh1cNQzD)jEt!uW^-fXseQ!HY(C!mZ2M1UUzBM_u!* za@=HQ!0kEA$(6pQgu>x|I6yxRi~+6s@284Ura37M`)q)!iwm7~;-Z0*Q1o#gNK#Q1 ziD{3~&QyE)>EzDAGcSN6GWbDW-HJ+R@^?<3sZsdk|IZ^x=6t~sR`&`_*~a&vr!Nbn zESQ(9Q9_39K8^Yw0r{Bzw+A54!%%R?Z|us+6~yt`y%e*X4gERuK5}7zK5&{AID9^w zCL9>>fO$2}-eSkewK|$5x;oOy#Zn7YPWm`%m)ptQrUbC|y2tuD%D#z=a-l@&By}fB zxRzc~P%qpt2mLXTeYvblP@s(b1|%&fB7!9BX;@h0cq2$YHH5<1R6-MSz>f>c^c2U- z8CTw;=?jL@Pr1R_Z~My(>uwlrd1DxYsV;SZvcH@{prfk#qjP~7p#R&-!Hu9{2hJG=mG>%R_6)PT1^lDwFRyN^!Wv|u;c z_DwHlA_^b%N5yPG4S!dU)94oF4a+9O8TvmwQ!U@(ba_@!n^IKDk-xnv%?G&^C&zy~ zT=Sk|x}u)2TTA0qMkXCu7~R}go3$O}z451$jCT&)Z8?kvo}38XHaw9m$}Q{6;Ah`^ zlVRR1-@V@O85c;$LG0Q-8(%vn0ARHTy4fyodb-HCN6>AV+l=<|N@hF@0fJk5KeNN! zkI>NWWLzl+w%DIb!c18YfvWK#chC9@_i?JkjUdJS02j-uCG=25KP16q`;IN~@}YPH zlaF~Z*8Um>S2! z;e;!8BwIpVEw3wju#TUBE@dh7xU*56*%xmObC$(@Xs~0GAws1m`!b~bFF(?PBnrQZ zBql749>6t=6PX2&qya!M$(4JpcOPd!xlt=}y`?(bAM9cYF!`OQ{P86l8vlNfryA-Z z9sl1v+XY7$8T9`i)%*Y08pNPx?>jT~Y*hi#2b?$i4Jq0xWc z$#!O^uLbPtn0C9qHcv6W@RY?KrQ!N@qrDP+DrL|Ry{{Zu7Suzp2;-{D<+pxR8RlFn z(u*1=ylrtcvXoNG1!OQHsai~bx&3&7yX;-c0m6o1&~!2dw1y<_`Xlet9UbG4ymc}G z`+zsW#bdewiWaRM#(lQM24#9a`rEy08Iuwt1r3bvx8#6_QFe`k%e`QT!6+w9-VXIO zU+APFky`Zy$2f!hy~o|vVo!ZG@_A}8{VBSEiEpvQufAC9ZCMfndnXtK!S^v_&=>#W z@hV1XmSc7>Ffa4DZKqOAw<@+GD$$1Q9&~VzB`eBi;}G>^Z>{ceL;}lgjFC zr+EQ{yU8yrxaZUvsA{qH^8?Ic%&%re$o0Pg;TjW|a^7ir)u}000hye8I9{A@R(e?e z46%_}#Z(XKX_@k+b!__+JmRf$mHzomL;rEWca!W^j*_-=Ja-KfTp2qiaI;<(+GiC& zHxDMC76p*IOm*=Co>2hjX$|g#U%XDi&~`c6r~dF;P-Y(sa*~ucx!oMcy1I&eG!Xmr z!lA&zXBnSFJ1AQ2{jOTs8U#RG{R)EQsb0X@MgHYXkS}^Vdi;Yf0Q`ke@J(A|TiZw0 z9%H%^=%ov_THaqGd`c(i(|pS-T+8KLFc;DQDdegf5}2?qbU+Qn7QY~V<{ zatOnWzdp3WTaJ@2b4j_UT%3S;(8foB;QSkhc}m{97=_>h)Irgn?xSOG+tat0-T)MwAlo464{Z}T&H%K3b_bZ0?DWY;|I@yA2Dx0CmtejGNj`kh~N z%EBDo8|7K~<|5GO1QwJiLAZrABRhLVUV>S_*cs<{ATqw#&9* ziuD!bwOs&5tt**Ko42M7S7)wL^Go=>ik}><{*a!WUFQmtF>Q2klv5YNopuD3YS9`R zecUYxXw?ws`^o&GRPS|LdjQcS0bN!5R_W_E?C`PdD07pS);n=~f8x=RI7!fxr-I7+ zOKc2#eNJjfW_eRiaWIK9L;q-88K=qYhln&R_CvpDMJ1*OUT6bJ!lYw_8P+3{Cg%X0RyX=O+(fLVjUU4;&nO@wXPa%AvDNjC!YAhmN~hyn^&$WIP3$=KJJL*U>ggm?H)l~reAg8pGxx#4 zvTt^}vE31KD*CFYw<<(d#SE>w6kJbf z({awRRx?{aR7^Kemc0Fwb&l~H!)*{I#YAdh zGB$$dCYP1{FKP9fPJ23a+M^uluiHGGUE6mF#&n-9(0FJwHBa6LU{V^SStzf5%_jGI zC$*1C7aCSxq2*vd-k(*pj%v?jYbIQ?l{j_3Fs|wIQNFRMz((HApcgLk1Z|r70 zK{x*DL(f#{=_Q|R;f_+13aa)q=;`hTkbiJ#97Dy?w4JX!)s^|v4i3kb?$k7G?{N{U zu3!tm%ImXVXMUZ5Q+xWav^G_RI6_RjGTb0LJ)k{r7#SdHu=Dys z9Pve;dD4|6<#G8WSK2T#g^B!Q-}W5DPoHO=w*3grK+JNGqibu2LQ`3ah$v@6xWOvk zEZZkUMc3CIMP7LjU%Hlcfq~fW(jl(N)1lfkvjBJWLkaPyb+T#}TmN>Xm#Wn}(%m|U zpmTf4=;L{>m_HlBCd#zVmX;??iFox9HLWN+a<(eL}?F3#{7wZUuaq z4~o3&>qrMU(u-z6HRTxJm}8KLcffACEaCc7Q*%`ppSnDP#pdZd?H7n?$YTRu}BhAtQA+WHE<_zb+J`HWF;g7B;zP2->Zax6_sCiv4)GLa=i=8Jl zsfN>}SZu$B@zY{WRYw|P+>4!gxk`xUBhzSpKD9^V`f5C4EwacNZ@V%+uDN7SYjk9o zyMD|VveM$ECI)!4R2eX+8(>)^*M|&CHAo*L{p*|WJNU|;zZu5eOk`e=Wwi2;t2ekl z{Nf>&FZE~Mr2;!epX6xU({pp`2?U6%;cCQRQ!CCps9H>yM-qs*H_B1M&yw)y_8{c$ zS0=)Wi2Izar8><-9!sWqnp13&me;y^IH~z<|2P!MsJ+lS`oHJtR)2sS+$kjwxk&xF zwcfJrAYj*CKZTP#sEURpc95MkyouXr_3%trnY0(r-%%+ro2MwjUwe-5=cWw8+pBFV z=1b|@b2#_Qpnj;6nPuxpV%dEf2SnA{w$=k{wKZ>+nPkN^iUU)6qCs-U(g^;ecje8F zE7eQiu}Glq{92BmPAeaeEA5OO(b@+=qN=-4!8h2X!YTM-AdL>myq42s5m%20$!^c_ zuJH*jR@hi2#57w4*0-K8N^*YB0$1~$)Wl>{Jh^}J^gRil8mp$QFZ3UwYtj~#nl;+m ze3UgkY8g)!3@TkFi~g@-Iad_|(?>ci3=_a%s(r0IUE;AaN>tqW+Rfgi zYJV6`-7DcDRA(W>Yt3W0Rau7ewfKFE=^75vW14*_`fqHd*8N}@mu;&j*>vx}&E@s} zY(BIKsuaxwHaS0IB!*X))4atmx(k2zc4FJ*DgVmOKkdLK4q3|vk zFB>v?*@{bVTN~N(5q06FrNI1eZG`_|c!QtS`<#{0GCP<+>RNitI$tzB-aba2kn)9L zX+qage#*B3nQGkni|1Ffqkoiap9PTI*wbHcc^P}-wgWm}hYnFE>15DO|p{NZj208v<7t2UZg*VbIDu{juAgb29 z3UjOY9j@rt_95GHx}PWPdyU`CT<%Ku(3`uGOV2?De8}Ee5eejrU7Z%aICW>@&wo!<$e~HP$gEWzF(7nGQ!;TgJhVtgY>DQos|Zu4Rr~U zQO_R6Dt*qohY9U<_xui8-25}PuJZEd06+aa z=;&OAQDCV<9J^;q4VD{NgM^)C$=Sw0yJ)llOx)QV55_Y&9rE%~{?^YcIki z5X^*|l#%j+cBkhfK zuhC?yS75}K8DtV#KuuV6{!&mJ?jWBR;F!np;8A~Notr#%#mcSTG7cQm4VGYpJ8G8$ zqjIsgnoD?@ikvnUahnu%apI029pJ7VGktWLblap2mZ_5x;FF$)+hUl+k_z1nrD1(y zg6yu1@ZujzrRqHn#^%mChyNYTx8^-tti5g%ew!!xaO&Q+`)WK5YGT-rh^I)CPwQiA zZE2b{v9wNaqc82`*jHcLM58f4uYYlLZNUYRyC$HJAZj z;_T8AeOhIC#h`L=4KDC%x8a=gGEM!6gd!g?{XWc1esyLI6@6Kzlk7f&7?*xv!~x|2 zCxgQ6$w>*3nCCK$GUbwotBiY)din)-9+90lM?u@TQ0x(uAUFJF;eb6FsmK2VqWNlf zDjOwPR<$SXG1nX-myVL8PPL?$FBR9q)#q_;O#TQylUfSTPvV{%IHa$SIK0CitO+6q z>it6qZEh^bQbpR@>qPQ>!KB8VD~^|!4*(-&EBGj(0%S~pa;JLv7N zzJV`H7dKk{qSxcex!#P^$>J?KPkC|x)k^bq)|+B;?0nDknbQ*$T~iX_I~dGoQKxw& z&?i@%gJ@`%&$hXs8=xj+ILNB8@!XuPE(WD`g8{Z5aQ)VD2y$`z7+{aIV_?(xCg0a& z1!uqV2GbMY7Iv?f8+_`xGI;2!nWQ4u*WfSxo};^A&e(gV-@~`(T$#Bgx)vMSF~)AP zY(eQXy>htG8NRB4tG;L_6YW#gSkqKbVjg+?`5>dUdhU&~rquQAW-CFz3=dWslDnrC zrgEeVnIoO#ygO7E!#S=L+wW-i3+%9_Z+t%tH-R$vcn#n48xc`4J!JQ%yq}!vLOWUS zHImk*ij!m88^!GMa5m|$&3Ih*3hL%w-{%q)?cW>=>l-*Jy!OL4S^OoJpjw(#y$Wjg z!FPDgebvIJZh1rb*GUj3eLexf+2;mNbnkm4BRo}%Tpxu3KhBpNF0(SiAs#8+(Dm=h zRI9qmmp_sdZ7W%CcEwh;*xON=f8MJcz7qUGUNB5HmhFl69C1523N1V*qKi(hT%hz< z8;I}6!{1kX%91+VdoTn=-QbRU_taA8>jhsc-N8%!P?S+|`7X*m%*r7ph#K|JPe;r;{I~qG7>K4m0OfkG)s9yc1H;{o^q*{x>)i zBl{HE{%fbH~23zwNx;LxXMU@O#7+`Tob= zt6$52e^hHlkbIYgZ2AA)CX^ozQZyEvr_cU>xu%@u)=KP|KO2g)r6mP#@`{IxT`lz# z%ck#1dY!nV4RC;~gM@a39ZO}gM_8Q-D1AXQHyZpJw#@iIsE7nPkN>|*z0f$o-`5GJqalIb~=p4;>?3WS#9uxT#|?S6*0H~tJjB!wqo zbJR3qVxe-Pe;7Q(PfD&c2r!>awNX$z$LK)W*v&=llsbqKc^d$IUKr-mK|3exJV>%_ z&@ZiBABr*D4#ss8h@0T%Jr$p zxL~UznOZ}K);9ynYJ)Jerr414kl!~CS-U4En0%#F~r z&pkkj=jVFJq(TO9twk6gH7qQ(l`CH}1JONP;$c4#XW@8yome8r|L}<m4cSTYG{S)I zy=>3#rWa>xfE9*k_(Q(N>#{RiIa`KePxH&))Ga=>P=^e*h3&Jqx}B6Q247SXvj!k- zcU#BXQAbV93;G~!*Nku#o9!l;9fMJ$*iuYU3CC~Z@oL#wmleK=_s zF46Qp9UDaXs;JwJzX_^5{}j;Y+n1HVO8kR;C-2tn+AJ8xO#9gP-hc?6iZANB2lXt+pUO;2|f=}X%R zOUfVv&tq%8Es4*mHa51uQS3J-GP~IRbBT>O24J(UyjII&H17?SO#icAb;F2eWrmX~ za!@5RyK?v%*Jt_C8V*H(v!{|3zj`s?MC&aN{kk@Wg$LdRqkDV?*{U_q#Mrrw9a}wZ zEDp8iSW1`K?WN03@biW+z`0?ru@qBic2BK@W3bpZ(autU z&g+3UIQ)M2wAA$u*4{kc2cFkRC__140Z2FgY>dUdACKsbn_O+F4m6*F;8cCbXx`AX zH@e5sR9kPaNq3hkM%Zhkb0JVQz6Na45E30?@kDK74lN)yY(<=(1UxVjfb zcb$&Rvexgyyv08$jX<>s%voxFNM&G_#2;y!0h7G$2N&?s6>(mcpLp4A_rgOeoIMm% zfL^eL-X6w)!rB8UsP4m%5NREXo6wW*kEGI3{#Mb4SlX-Kr&m~kr#3O3OKs5i)?F>{ zmuAa#d<@#}w7AcP6o}z||11uRoWWvF)rKjkG^0B^?C&lDYkmmcRTrHrDfq3~!N91t za_kMqa5xczIo7uk*wqjKuGAQn&zrjJ0`#D%@~mGs)>E$O;NRdWh$-PjM2JLEz#sdR zv9YaPaJz@i$<9pg7L?;HF?|CK;8Z11t@;g2dewM`gY|4G-!2eFik^l|)}k1Kt1GZZ zKO_Q$7ec4FZKy}CzE0&ny*He!foniLKByjO6x|9Mlbb!cZz|pf*KeupNg&~HqY_B_ zup-X!mWAv3*jsi23Vs+5NBlpY$(iH=7xDUxxrd)4w<)UhNppu?ti3StfkA_ga_C(Z6Q^*MMv2wo9)tqoybf7P{ILRXQRdfd{-bAD_ z?I-4zhouNE!yJF;at~*+<)4CiqJ~AC|GHP84A2cw8s{aG@I5PfgYzZwL#E=Y{dmD_ zSLi9RX|@vcU?m@+&cLg^PH2WYM3`$J@X(wNY+sQ|oWS+;0)r*g(ZMpcdx$)l$@^1% z@m72t8Y&xCq@eeEq&H4T2k9}N{GM9kM!nI^a*+@9A8$S98G5h*Yw@*feh7Gc0}>xm zed4#jgXc=)A0vY$#w8l>l0U=z<);7!$tsz#sF}HP_84-JU97pvJ_&NiW2(Y642{3^NeF2ll2w14M>a@L`nrF;Sh|A^xb9X= z$9~gmALFW@A{d7syvHs;PTLP-+{Zq+TlN(E-GEqfg&2S@9}R&{#pZ0>fJ@4Ua35IQ zph!P`AHap`+FF;VoI;mfAcFNK_vokdFr9N|Vny$Glkun83y!Ep`fo~x>Udji{Ldcn z635Tzc}=-JNn$^vC$}fgrbEod_yx3HNq|<#C_!DI&14@lbc{<*`i(&C`c_bTu(HoA zCX3r1Okr{`mf@qS6q%x7c)sNu1XUl-V{?&+Qlhl<1{zkKF`7H$(iSy5V@%{1ce!|}XP;uMa97@Ah-PVgr?+gj%cq&J zFzUCh@uu3K8f&S-0=MmEIu}fA{-OY&E8m+#Q zPOqHde`&REPOB}lOmIxMS{);w>LNpRkA&K;@7Heaq5k-$*&gk-Buzc^k#A!l;>D|6 zG}v*0Gk5#_suj3)eJAaDMdhx2QAUcAWwTE`9c;i2_9EqvRXDkX1L`}R0scg zP=h^&O~)A;si#7pcm@@N zA4WR!@*_-%a^ePi$jdX3mSNP@aYoragdT~g9UL&?x-K5 zu7wy`-*r%lmObF%Asfor!!C1>;M5pdC#nu8GL|6q#<^LxvTB?wI)Jx$VrDPD#?V&;UL)MtJ@U=OFFV`>wo| z;I|m?6QV}tSX6;j{WKF|a+^p4DeX%LWjfeZahMlLW7Y#*WbV(zWXGLvi)<6^)w1om7JsvB4JFZV!|S}Iirw^V_kW1HmT7ojJ1KrQ6qy^yDJ`q5 z3{dWbgBPIw-!rvft9<@Md5lc=%{6M%;**$9-M~7qaa`{X!PCBN&=_w=MYQgZyDWR2 z(%MGHD|UQSv9KR|ujZ)t?fwW88I(dP83}iH@p2*1eh5$uR)IcpWTVzgR?P0=B#WmP zENjv?xSn8+IaqNB1XY&5UUf*4xO)rSb;}0WE_Ii_uQ~L zA84W00Kcw%Lj6gbayOI!6N1-LX_BtH8Q$2WdId6d* z|KoMVj6i8z)Sj+s9Mrw6v;FB(-W|@-{sa~))z=m5;0h#@mN#fb3d@!JFLs_K>@z9VJ|m& z+XFH7?V~;!4Xjp_%`|vFPLNd9J=3;M(*G3@VDK#w0LuRQsUUr z^6?&rSyl<@lKDvn%*?$Gd&KEiD`V5jpt75I?F_}0IrG_ejn|U$ilB1oG0P)FsuE)1 zzbVp;izQS-{U6NetQ1SsL~a3EIjtdjvwSm59W|CLy^*QQg;ux`7i}3a_pXRUAu|b` z=;pt8u`bIqA)C+g#G!6KWMwr$aK)rx2bpIV2lK-hI{iqWf=Nz5I=3FUHZ01aQiAzEozY)#pHlj#922-uJN5SCg!5pBOBTaf4(kk@PG zQ&22?uLo7hM8?KhHocHP{`<8I%%M6`UrWs-_ehCz8+rG8SeL3X%IW73dh;GU#qkFu zt68CwX|_l`j8(;8itsdzj2HEsOb z;TbDAxu&42HSI5iS!{HFb)sYaawhbwA1BS1 z_1@ZtzUl)?nN5Jb!0q}LvKG5ZNa|l3}b>8pir~>5$sUiFdw&Z@u`PdL(|Y0 z@iyZdv2W%`M2q!oqKPGaL&UUIXIsCC?{jD?V=$iyap0oagH>G&&Otdmo8}iuH2cRf z!e4BzQbqf`&7|bBF&s|_b#oPr+KpE}Y8(rxrkDZW?O&DOBkedCb;_Q5ZirsYhahoO zJzVV4lz1ifGh1D!i=8@M6pEwov`;(L4pV#@x>>Cqq_81Jt2PX&N{siXgL$8OmhyP( zzRL}e*wF|r2S(t`)bKqkxpiceUUqF~-8{9M*>hSt!Gjk+6pf5$H6j4`oj( z!tkWM&0*JvptoV1T{?0Lyk1CikqF&3=*^hx<=@t9X&U(vW zkm_omDquy0$e{e_IG!Ry>g}kBs`AT>GHz-?2(lC# zrqy$XsD2+#@>zaaq`dWGzEPW;ZcdhSS7JS2dnDGIPtd${fhW^Aaagt(<_~3P@gu2Y zt=k57ldAPY>2Kz^y~VsDX^$Av9V-4@`8KmEs zo2p(ac;4FHx>H>z`;&UFPIbzndqDfb{Mr(!ezl;x{8>~sTAwzmydo28l2x8z(yuZR zR>~N_qyy_&=oLG|DW4w#o!jG3#N^E2f>>Mtlc9Vn$JMmC@wT$PZ3N`B zT-H@uuo*;1!zI5n0P084qnN|T%%Y0D9>Qq2=odKZPAfg#+SDS77&DwZ4Qp{u0<_qd=ip(_z4JhAXzlRDnX)9z zD@lBw(1ck5?7Qanh?0rrWj;+0{2T=#Y16&}f2BfVE?%j}Pkf`s*4W_>p^$~z|3_)C zn;M@@T5BU&`!U#6=N76JBme4c**%!*`k(0Rdc%vr(bvLPcNmD)_*6bACI`1XF&rxR zMd^si>F%b}-SMwz=pX5N=ijP>?Ar5J+ARV`I^6Yd)h;&f78i~FfA-Jj{)BWkTRTI* zu5<{$+f-nvOssIomBx_{U&+^%4j~MyMorcRh;fL{%erDzxtQ*y3|Ck35jTq1o0rf8 zY+aSZ!n%%GfG6)6Lfdye5jK<*GbmJ7e};naKQ^~&;N5oLAR6rT)WLf(-FQ^#H%UyGZ&YMorz8zx;=8Ynq#a()uH5u{W#OnbS10@(&%@qHHmp{NSoZ5<`L z6;-0D{W*9UO;zzk5Ku?I0m>oV4eDZQ9}vnA1ap5sqbMt$K**y~)SE_fitH}s@KiC$ z7f-=)_%(*>WV;6^!{MpqF;*S2!j}6~3Y_rBfqai(u8fb|D~N0!N5z_i>IJo7%e}kC- zmF}4ScKTUULzMKnfB$WZB`B<^cwX5etv!en{V3sb$xUZtdWBmVJGpmq-sNzH|EEG< zd9~$Buuokww6njjT_-zRsDF0qf0TdXzx=bNzNf^F5Ai|!nAOBN=-7{cdf1h6e$n_4 z$2d~T9$Zs5mi|7&!6i$9;`~$kTkrImef@DYe)()_FhrjC1<@a0+o3o zV?AAFbo%=CWko{{Gd?~ep80)(yS>h5c7%s^qfJ$zq}(6Utv#8vxr-IIA_-3Qh6Tie z9@4uvee#k1Du~FjVYb?bN@~l*^a%TNBY^@B=i#f>Ykp~3FdfdD=v>F5DHhv z7s@lm^ey!L#ue~SR0J^AEzHAnd#9G$A1A@24C{FxiE?gL*;m@y(gmdw+|(moKE9DU zl`meiBns+#AOq>fcZTW2`PG7v_A2D1ckZNjRv<5}URyt{c7(k8Tx5z&Z!H+xZcXs& z<}!lQUMrzS&U_V;{hDxG>Vm$biEI2jUlBNfXFb~AQ=Fn~9OOy_rChOJIRc?+1V9`( z?BODd^<^rfo~ATDn|!b1b~<@_bfHn+j2Y}EwT%>CYub!hh|Hol-?zyGtw9-rrFqfa zS;lm6m1&9{f!bH)H9{+yx`{iuAurulCe622NrDVQ4Q4m#cAV84Xcs+8>>nWo6d7w&g+i8l4HTsQja-a#d`@pvg$jW zw{w2M7Q*zk7Sh*B2$c=l8H(R`2s*3+%y+88in;HHmeE6%QN5}C#PKvxs*LA*JIlc+ zVrYwwdJ?Fz8B+6#X-s(=J9DK}ji-6gZh}>r`ZQ#tefg-98#d!q)wXuHi~O9*&At8u z2te!42O8v;iMSb@*%}S6L1!NzBVS}RH01frE>blPX71->SWwlQshEm3LtR(ZT_q@x z2Oeb#FwGq=tBa|ac@$kvbg-)EDT8W#jMm91$@1#eSPEdDzR+!yY+yrI(g#d0dg7Ho zfQ{UEVt6UT$Ko){`arW(A4*jXe3Dda)OMl(Dz5HIWJXT=0Ps#wYEHMLFREg=bcIis1{s@vbr|5SwdwR+C)k5Wr^s|7SBWha`c8rpd8$l&Juixv4vp?BN?w(Ix}c?0)4s_>%e99EXDWD z)htjo`7Buvbpzi~QpJuYbOiToSMnbAzUx6*=Fc3xZXOU>O9*1;y5&LKlyj{eWN$+{ z)`^O#w|WDpD9rku*;v+3;!3(48wAkiiT?GIKW%9c!UixTu|j>Ws(<(VjXb_;DuevP zH_Z%FtGNs=q~km=4}%q&J7OcQ8BlgPrlGzp8WiFxeh2%YsjAL~KR1#>>Z8&Do-~=R zvdkH;Db)dB<)loLjQbR}>0E~lK%x)3+w0;(D#oCF7;6cTC^IbTC+$E8?~YQuk3> zfMkpT)sC%GE@;FllCy{>UgBp@H@}uUa^CNWw0sXCS|lY5Dosxm+W+KN;Vd(i*SPH{ zKkD>s5S5loxXk+Qg2p+=A;Vw&8I(>9V0%)mQMyh9^!@Qj7*BjhZy4LE^Ud?=Hj;j( z41e??8oe~Oz}~slE8S=}mO^&7QKp1PXAY+?%I_hjjO`QQjF`vL0ukB*==s&@O*F{oV^h66~bg6X{zu{mqC z2O=|_z<9zuhOSqAy0^^np6d>VBU<%VcrEwQWd?jsA7Aq*A9eFltnhYs!D7bbO|MqB z3k+b^AeJNO3ul^Dg{y4)4JJ(8qd^M1gQC)OA4lAjgWj~sA+$XgmVsWg)R>eHQwq3u zJ+<;{%3y>WH$6x+ng$?LGCJE=^ut(}kK2KGwDj`TS|UjQC^8a&k$xgDTnyj3&?4DU zcDJ+*LSOzg+$>c~wq`2d?348%#wEiBcla|-Kc0+aZAvCV)gF3R_t_JtVY-N=W2~8l z@~~PCz4LsOkIWwiD4<49(Wu+XgiDNqOt%Iqf>F{C=5SQ}l$g&7uxEC2;de8&;|)&r zfKhaNzE)gX1k8YW7sh!>?Or%cEfZ+jTi%C$H2<8hgJqMoqs-lGjUH0rLe@mY0&INN zo1a2h#--Eo-W_l$5fO(QM)gH=NTg7Yu98=EE|!szTE-rf(KWAO;W{BQ5+rMWXLL%} z>A|Lthaz7R8*so^1xG+BV_B>=wBAErLC^c0-kJL69PxVUGFGAZet4ZofF5yX$?*;Q*QNw?3a}5 zYI%cGY0puZ2+b#$b=T-&T{XN6Up!}w$w9i7Gqy+z1))`s#OO2V3FeHV453;>lRoL)m{O_gSwX2zcZ7-(97(Iou4D2oF~I@$+`RML;=)t z;8(BB`;RYX*#=XrHQA3a&-C1XeN~d9G$oMwluu^afWofrSyUwdXP?RP1(bxRE@6ju zy=;hsrM5Ey&+!D9HXjdiXv#cL7OXXex!%4?sp2ukfOTiS!wq$5TJ%!X1J-!7=xgQE zY`ux|Q@^Td%>%(RoSIezWS!9{zqL{(2W72my7*g}t8>%ezv_mozxs$wj#GYBQ@%)3 z{~2B=c{cw3vd_a$Cl9|3K6mzIbY-+zM1d5ei?8?t4^s024vcPjZuodXM^L{5oDdUh>clU6>sFD@jde z3>6vb<|zj+f`b+<1-@xq3V*O$ah!|n|A1r4=Fbqk$@_6kEemH5TjvGnmKLvIcpH!; zpLi2ka_3wZU&~T2TbVl5jjX3UR?RgNI>@RfPPoH+f?!yF9cojb$NlxR(caPWB7dj! zJZR;~ulgJ0*FpT?iw4F8$^5Ix)XeDYW!)kcgnoWJOTVtGy-Zk_iK^~xuJwy{C~R|b zC|LKe>g`c);KqfLsFN=(-MpmOLGLP_?^8pM85rj-ayHvXdiRa%BC=CilS(D77MyB^ z^uwF`-H8XeI+vAiTUC%3~YD$B&eqkoZZO5PLED>VTi=_tD*;Me!~+r zX{eh|eQ~9`m@{BeP5w*gC-bIZ9A=88DEqt@47STRD}7}BlavxW`njR`zC`ovzl-$} zG$hVj$%}WFKz)R-oc4+^$c|@0zFZVtv8k7hvp6s0bTK$V>wR;`03bngKP+Pu8dlLj zr(oHg4-xT&-vL-{3*7>wSP>Fk2rc!K?^3fu7C^! zJ4z7D1ib>#qgpJ6@8V*5Y)G7&L?%=DY&p?2K)hojfc#v_)wEKBx>5(@XjZf(xIR@1?aD<+IEyvyu*gKgK$eF)b%)d-#r+M|{hxByBCj?VM z3@OGrAnP8@abm`o0URhdcT z4kpPvM*hb5?%r5`Uw8A6x5E$^wt5v}xU2!Vk0?lmnso(V#bte2&*MgTkSFDP)2=ekD3Yhh=vWsy{|>j*%7LFQ>Bkm(af6w&qVRy}mW#u8 zy57}VUaRQlAOmk1$nl0VK=xIK4$MvJ$GzFG5YF1Sy||IHUgfVnH7phYtq&}nX%lg1 zI`)A}nD{NDzWUvk!?pPVRH(IwaMC^4xu=V_kQx0vw-#;uP+DQfs z;sO?320N+@BLvk|u&df!CRFYB1bn`d=czYlzwO!*0Y|i_dUd-@RM(^k$fu3IN_(4(;ymqUUfM{Q1_Oq_#cZjC=2& zLMQ{Gx92-Z$_FkU($ypwLG>ta$Ofi7p3l;$*7lAfoc&!$9lnEEBrltC$09ibdV8`s z|8rnne}eMv)xMpa|NH1#@gn(HM-RXb=HfA5!iL~-U$6~{2Uh*Nh|7dLtRqK~;U*1c z+x(9K7(ME8O6$G3@Pbz7cL3*Xj}=X2C-#IorS!gd+|wS=(5C{>@Lo_3J5P&a)g$ys z_K$G#l8qsBro(#LdH)yTS*DG~DDB23suO~=wH)}s1zBHGM}5ss9`d1L0_z5IHdEbf zX4*V?jp*~AgLk`b@IcpTd4;|&tb#icocl45y}C=|@2lh*OT}a$NBN48v7VxT2nVh| zg?8FAZ;|Vc9mjE9sWjCp9>wFa@^g;+4hM7r#>7utEQgO7KNjUxyj14V9l=lz9$~0w ziynK`dG7#x@8fWM>xX5FVkc#>C@zQz_TlcbVGFKiFJ6iARC$r<+i1{mK=?_<41ftY zKMtWM-i6Y1E}5B0>L~%0*HNYysg z&&S8XYJ6H6nlk@*hSXvEfGjgvCd3qaOY@*Co4-9r7DT}B-9Cy-QBRZ(UNk5>Oa+>Q zV?*-2icoX!fN{$Ozpi#}M8$IJc|$j zg@-dmu<01t%o`8E9P_zG8dlqf4;nK!%R|PDMdQ~= z;Q%v*E4#C&)5GAt)@Jn3NSYbP;qQqMuzvWujl1NW0nobq@qi#mV_5<6+AAFDCw(w@ zX}ST$-gFvua`pwZc!e|bbf!Rm6UIA*OKq8_d5isI-Y~kgMPs;#56XcyDrSPaq`#l0 z8Y!Z4P(EmdS*n%j7E;5$pX`iZiz^JfwU^hVsB{(4s& zW$`CeS35o>Vah!Nz^UGvrq$RMtkwFu)+m0E-Xm>1r1=xJ|Dgv!rq{1ab~E}<;YE!B zzBK{Vqq-#KwJ%C3aiCoa-^OAZ$83l5h*?(8$#Rg$6&$QHzD7{wag09V6Dvun)n#Gt z3{+VC31HH_Wl`!vySO5Ns`+26h;d_`Z0|0H+Y_2Ak5g>jxdH#U7|8L1a_nnr@N=Iz zj+3-m+&uqq@po5%bbc($%{)FXAztQQq^;JFO4e4l3B>%?dWN<V6iwBB^#p?YrBz|^=NOSnP+7= zKTi&y@oBFzj9YCfEFLA#ywK0ZVPeJ5NzoNZk(BB^CJ|x_U{(6>K^plj8R%y8^9(7e zc%J;vwsi{jt6!lEQ)v*9zxsHHY6E^TAs|}nVzA2nVoNtvf%DSsjg39c#oC3lNFAs! z{57bRsvCFzkyVU?4($O;ry$c(t_4F;u<{@V-xC!e zYoYt&i_^)tt28`&)uJU>ngH!9e`}VX-SCO!<>Q!3(!PBHpTYkPTxi^qnIHCoEpuw^ zx-u{zQ<*0J-H0~MvRI2%+LPVwD8t+Iwv^S5Hn$1T=kSYF857&yL0H}t++HJ>9kI>0 znTf=#p*v!;i|PFwjS>0IlDic$b*d@wmRPFFaoxdrXVpOkTi%o0*slg3 zk>fpV=^ce*pz{5GP`?btvHFdVU`!~An3}vmb7^Z`r7q&kb@~M25)X}<0sq9$z;+;w6*}#17SPzRGRC3ifburh;XmD0ViqKW3Zd5 z9iUOy1>umfrW&O7#RA;T%DTg^u3ZS84SIp;7JIo_>0j)UL2Jlex4lGx^+J6(Y?2WiQ{U;)nyC{+-v1W0=F%iz{3z1n zP}<~R!9L>{y_4$ayLn4QQ?jBJ>hvrm;j^yf^%wfVXT7(V!t@~0&ApjgQu?)Lp!^;Q ztekTh50-Zi;;GP-00{Bneyk-_{ZQs*yPFOFEhx*fU*P$l49cQs`<#WfSeNv$ zHjbxZV*4}q;D6k=10L!`LGl?(b~i1FUxiVI#-THBlqDA@GIR-`d29r z@<&w>+KCtGy5#@FM$HZx;KDfPab-#%W!3-3O>Q`cO~#@{wC3qy5M1Z7p--7%D}3Lc zmkU}PHkCae&9v#7>xkHXRr*S4yNSWI^YH+R&FrUbNuOT20CbhA-L{jn=`UgA(mZY{7P?H8ET+MIUo2Uu2PkW*qg%4~VP=N79)Qa^K$$?XaTgOQ zm0GK2IF*WDUxW!y|A>iKScwgK}yx~LVX+^M3+8xFa zXTe)>j>g)d8kxVmwYv;xA`w@uN=7`_%UeDxr|s|XSg2OM{{{EEE3bntAMO$t%@QJb z>AKQHEA7s7r`lHtH76&s&Hb+w#LLsG+|Vy{@98ev+IX@2FLV1!hLSrmLkH8mPk=$j z1ySawJ9i=86hPQ)?AMMcpNvsV`nv9fxW3p^Riq#RiS0$URe2nSYwVc_OG$X1w6r;? z5HGlM5v1N9dm%o*doBJJpv-%Arua+t0Hl4k{h(ItI7>k$gLvNH=HMv62-PCeqwQ^x}&NKsNYg-y3#}{J9<8a#69U51X8q|f;EAuBT4a$ z*ANqzcI7cw_U-0qj1F)yCiiv3v=CA1g#u9Fr-R!%$@$nmWQA>+lX40;>!Sk(7&|xO zAQJDOdH6+b2TO&4mmdtap3Y97kVO5K~^ehWUEu5Q6=OSmC2kT@6@aQEyo^Z-o zWl0Vp2$yu~4!9KpbHd6DGp?d@@Nd*Ha3d_eorU*9*L8Q+=R*rIJQ}>y#_F~aX`->L zk%yv4qU^p-b}~MFS!0~$51}EJfsE?B$H#ZUwN$;)(u<)ZH?0RPSBGNGNXrDG^5M#U zpugC-!CNB>4uzmOeau!PFCWZWqZq{M zudjTt@CQ?4?k$5dVjN*n-fRzlsn|nBr-(X@&-}hqDmt1a$s4gzfYK?59x2t>>`wur9VJX-sMXl=&7>KKoMIJd{@8CqKT?b z_mry>fw9yPAj8`u+?f@IT{RLdE?_ObQ5pSlsu+9?ez@O31KVRIg{(pG6jUwJzwigB zu>TfT!KuDDa@?HI9)FBu#K^txK?VBK9zeCx0{CUg5Hkmf?h;2NdpiWS-ww1X=pJfj zUf*;wD_CP;qV3#D+qoV`mK3em^0rk&=9+ec+F%)=Odm6`w6k^Kuz#Qc@?UNY&^>|pt7fEAW2p;$w^?-{H&Pl}7fjM8RMYn2(PD})nVn`+ZmUE%je zZ0~=%&?VGl$=x+N)tnWw3aL%;Id!eKH@Wrt)V; z&N9tZe{lORzIn(FvRpBXcsA#@=Gk_=rLN|nKeUJ$ zg>s{R|3I6r1!Vpr4N!QnF9Juoq*`LH-)4HjN=$b&K+nnC-3cBJvohm*F39)ywQ*fkr*e z(^H9zPanZF;md=hJHHPn;bs(;xAEJnwr0iAjB0<1^K14Ie4%O|A!+Qf7?aIfk6z$; z!B}WS4o0EZd=wF%zd~)Se&5AO=4=7{^Y2e%+|Cs>64s&Cl6@ZZ9I6mQW;(cA8b>s8 z=VtPl-f!zlq&}dnnSf-eacd?D_@#(!PMY*$WaO_XPaX$P)7iUH}-gGU4Mwmd+diDp4GRyu9V$bP}AVynZxkZ(%W_l9WE! zlyTcRC}SH!2=0Nk*eMHj?W?J}mYZ0y-_%@stp?8CAbii~C&h(vA;6HTXJ261)lssq zVLe5slVeC$^lrjW6)W?rFOD(yhL7 zewMvSePvs1rHL4#9P^}$L)Z2$Zg+!Gyu!I@1A{e5WF{+s;q8Tcs`v+9eG zgmI{}k})p=dA&F~pJ!PUL(y}Ty$&4=HDH0 z%{UMPH70Dh0*HQT1q_DF^<;yUMtf!>?sCmxZCU4SWi;!D&vm!m{Q zGY4A0EUf;9(;I6g>}vWGgA{)`V{ScONo|v{ zNy@jheX+A-g$-tXKFlm=74e+@71WaS-yk&}?9kKB4AW70^9SZqU`uNyanJQ(r!(zY zHdygegVSK>xxZy>;E^q!~ zt2a%6)7=|Pa8@K9YU)7NI(HUeML|F;gC`^5D;40WU7@6v6`#4=NXfUoXvdG}1ijlF zpZks@Iz=c%?{?DomEKQc3j+L%hSfMwyr>}P)11DMx)W~J@|!QQdGn>%9{Ob-clU$p zU6R;_F{tvxuUS3nXCIAoGLgDteUs~Re#?5@MErVEk4}C=6OJLVCReK0LXVtzE6a1| z(-!6?=HrMCVv@)0uA4?0xHdVF)>{dbha)E0u41(uRJ`#!K*m>X`XjF`ros8)WjvM! zcZPGSb)-K#f%xCr#T8%P%h4*M;ka--#1L;6A{oQS*3Fs|i z3H(=g@Y>;}*yFZ82s@)|C}!|`&l68_OI+Qt#*e1|o$sPU*QJr2H(~GLb+k+{?z_OWmCoj%VEZ7w zHN9FGM$5{OB#w5ptg@4!DwfXBq)V(#E<){twuw?V$je5yJwY!EMN}b!GpyZ=r8nA0 z6I4%GHqJj0(`7riofqvdnY_{%(b}Y@(59ee5{|=Ob2t5CA$Rv-qH-?9qrNpr+Nloj zo0qpTEm!b{LR0hI4pqZ2Ux;pJT4N=S`w9nJq|7QTo=!_u!=%=w0l;X64@p|5HFK<} zTJ6D`X$&|k;+`W+Jsc>;I?oN30HdFcsFBuy@CSp z`zXNcj;_9J;qjK<;*$&|cEfcpZTexP{JFz=Sl0}o7nFU3CEaupbH}<30|?5hvhg5c zLDi$D1{mB#ifNnpU(81Gmm0AC9YzZeR z2uG_lcs!JZy$6WC1_R;qzuFfKQ)!J^4TMeXom>LT>3_R99F+E^C^ACRR_9xpo@jMm zsYO3CpL^O+C7sMHVMnJIX*3z8b6?MpxbNcvO^PM1EN!?t4AHcr{>|^>+B5d}i6?@p zhD+R0`&84F4l?GbeITl<$hK++95B&^yZTKBPsuI~CJS5VW^J@hv6A1vq#kK%$8>hp ze5EcKa-+j5R6z}6p~f&|h?Ye>;77z1n1eaX+3QS+#>2a>-a)hz*&^d_1H3+WD&d@U3;t0t=MS?2#2LXTl&BdQu;G~x)@{wFL ztww6p5YdKnzYxrj5wulp6ou=exKMcfXSb8dv$Si2`cx z&91;HotaCuCIK&X;3|`bFW&Gb!O(}GpfnHgVYWO7&e&u zTn5{@EY;^MZYPqdUltZxkvJ+kz_y7JH$R;8@5@46{p%efyO~&9tSO%u*w#OAaJ(22 z!u9n{E3$voifI!0@4LwvR4*}MPLg;Fspc`80CKl!26O3s5~|SZWoh_%xvA3QK+So`+LF$sw=hC394N$uOG z#NgO7i%|!|X6EXRAsJq{O+!pPcq7|c);Cjj7x?$W)OZQYB&3V2myC_?>?@nk7U|@z zrb2AAm3b0ZUr+Our)-?Dzj_(%Oy)H+FOxRLPNRG=+Qf-B>(6jZvc3gFXy)%PO6FK--cQkPjeJ&JsmK8Im454kwREn2qmgGK9TlLa| z-1l><@Ca86H^nAbj-4+Ikp0`+cuCK>U?A#nfPFtf)sRpm^cQvoF$nBXggS%SUi@B4 zqt@@1&AQux49VXXcQDJj^dQyw+83`d_a~w#+Fd@4B0o;QLarjMX~orNvU_)6iYD5q zK~AFbA3sr^WBn0JSL+qbV~=N5FC2I)SuE7XTM5yE|+tw<+ZN&BAcv z6MoJ%CT*nb5{<3gJi0+!Q}K9Hl>uk>=i!o)zyPxzu|0WWZRiV+IswvO@OT_};QDAD z!Y}ZGU+t9bEpyDd^}W3jknH)v8!D_X^Mb=8`AG2XA>Ge3)5*L0LD1dz(n{^0>nD@j zW#bS%0iV*+m+h?N+6*$iS)H>jjXA|`lJrpolAaecog`#yk+X6C1N0bLgT$|zg|u&Q zc9DfVR0oB~@fPIw@C~_ScPA)?)-^=vq}~~RsDC24+pi}&IvZ0Twv%PI=nSmOkJZb8 zpCQ%PegngD#9S=f4NDOT4)xGDVWu}>MVzmUbZ7CV&cavWlok7?+JXpNZ{zH!9TBg9 z4v6euP74(4$soX2^F3*cyv@k#^>4#vPwvg6)OUV^ubjHv-c{aToOYYcQZ$F+S>?#g zaZYTRwW$hVYUj{hn>8JE)NmU#cL$o??cnvs%S#2Bi~-CeNUbh~w45H;Lu)&HV#Sb= zDukO7C#Oe|0Q6XFgU8XTWCmV;PJh4lA$C*vsUUiy?yRbi8FbZ6f8tAAUZ6G^xOFXN z!(+MWGcric-B-}H$ao>cL{({L2=P}V4#*EGd( zSSopHjo%IPkgw*&xl6Z!*`Bh-5iNwtPKHo!DbIq~IGy!V-zCA(*w_QXS7*r4tA9s{ z^0N|-YR@3w$;p97K3F@DzJd+Iw>^hh68aQ!*z||n;`DkAg~@9{)*hw_afq|i!bKD8 z>TElsY$BtvfT&Qt81pjRB=j`ot(JjjN5FS4e#k;?%!a%pP$LEI`kHM8mOJ#WAaQQlObMmMgv~&NbTV) zX9obfm7FH-9lL>$>gpvpc5Y*Ea(wxfZeFr0fuFh!F~e*mk9DE?IyY?(a0cFrmkEtA zzA`8X-e0c)%rEb@3w&f)A1Dk<;@KJFyK+afn+hFez&X4}W)5((k$`T1LltW~Tg$nx zStj~ZfX=F!&9x}drH6htSjy%n(iDgD)8F!V-m9dUU-1?!x5m$sRAE@uPec=~FNsz~ z2N0U1B_ygx=NH_T*MHE!yuHUAaXnD+K-Y^LJk5`QV4Tl{t6bF${ktk6Y-r7?yvH1v z=CKE|={uXc*Ce^n2EW0Eug!x(bT17E%jl~Y3p2J~WDP9XrbnW&bvg$_OHBx-+7r!O z50fLNxxOe{p7-QIKR%LlYTqQrRs83~ zLE}NDFf1Y6S7s*YXcv}XblKe619&RT8KH;~lAYuLp{%>XT~U*Xx~U#sa;mPtLV6zn zsLDqV$*2Mvhvm;3Aii|fDx5SW%aC{*}8; zjkd^1wmK0;hIhfr>hH1@{Q?eV^B0KD{=c&KE>}=qgtnn6b6*BCaTBB2rj&z$RhD8x zfH%i&yY6eRr}@am1e~+e?Ra`&J$XovhG5itc|#hA%hotb8NVX18VI+GvzzUVHeI7hX#9CMo#Qy@=5vV|lQDpDT@g5E-{3H&=BSC5lo)$(-c#SU+2d z9+<5)?!pYB={+C4#lK3W+ITs;7-hMu6s^Mp?)Nou);viAu1uCl$&?K1d_Rzk18dN_ zth1mueBdWUw;S{6j3;Dp)&Dl(ItcB}Zc_PJIKG5+YJw!05KLxYw=3FCPMu>huaGz= ztFc4WpT;N1guTw*lCu~e_nw2D>=dcbQ^ZY{$~K?w2sa)|`wt1**S##AZSD~l5Hx}N#234;ol#5j4-R@a?(wg>?Rwv&bHEFdzz))xG7^5DzzHVF&3VncacXM z;&hgGQa;g*PV|=D(P-j=ZOFi0dX_bn{DBL#nKBG;{cD_jpUtBpJFo%;%O8`!#yIBy zIrddF8Lzju)15T%$6rt-FYSVJdyhj{z1&F%k+c@(IE(dZ5|MvM2yJEKEDGJ(-xT0k z<>KgiUux)fy(dMihD0d&Ie0vOmn2Scgk-mMJ84hG-kd^Wa9AYGo&QZj*)S-Z)9*TER{14zSA@dkAvc+}J1iDb zOGzPOK6P+nX|E7#S-Ky$zPpL1&A2g>M=SY3D*LBmH(n8y?@_caTY}cid>grfDm(qp zIjPYJ^USlZ_@DhT$M7vjs^Ojcz?p1DN*qNcOo z&hO;%-{-U`iOiHKutfxN+=+hNf!3Tbwrw38NL%YhWx2}L6CK^|WxDhC*m52P6Cew1TTfFI3$?s=^}4dhk9U$>K{OSTHpxlv7{kQBlTZf+ZiW}q<&TS zxeu*?$4h?fEcF*@V|h$uo`ie9c8-$#8pYJudXB%USD>!cX-Gg1T-G?c-Oia?3e=e+ zD_U|s9I;AF9e>KfHI78Or~LyTm{>NXoF-;`Op-h^mIyq5FT-a~MEls(tcPQ$ zX66g$^}9`FYnvGAT(c;UrcNHGnkJeSaJ8<;%D5Z8&-yPYXO0YJA*vH~lD`k~ko;Bb zwAve}mxue3TWoj-qU4d05N7_I*o(!oVkU9F9YNUFk^qJ13?5<`%c)pt#v!Q+>~?L_ zE4k;~uN`lzaW^{fSSmvBw7pXec+22mdQxgPSFH;k8*0f6T|az?5ZgKbbD5xCW_q-< z;~$LNpVuT13*EzR%j{CNAtZ`=FAAP=;lkES#vx}S?jryOdG{=&pPQ<>n4>QQIUFaoRyYsjn3y*NQyXH}TT*VdW zPC;j@q+_*YD%t2asOpp?_>5Vw)Tj4hg4TLBI|p@^{G=JT6DfQUFBkf^6npcFv9Z*S z#6;zKRA<+}R(!{YXHbHLgVY2&kV8#(;M_de6LPmljbak>Y#O41M=_32>%fev0^B%KZ!`36ti-6mH*i4-aDe=HSE zi#y2j9Yo4gQ`%`|%TW&b*SLR@Z)a zXtWE@IZ#Jsa^y7DKya#j4JV+6=wM)pcrL|bHYMbt(f$;tv$&T&;Uq_m;ogW%dr|gw zSclUH&>d!rvjIl3I#M+hO?DK$nXiX@_9&#U3kS#tqpsUSrJs@QCEuGsn#tAYqkS`X zLK-`ncfXvYR^i?QS2^Kg4ISK$B|ppNwes3}A3b z7@v}xs~~E3ZsfNcK`bgqWB=w5M4nuG0Ak)dW>m{f>tT(n4or(4VI0MKyZU1g{nvXS zgV(3hFDZaIn>rq1_)dk|95IWx-xC%bDPM*#xQt7uLvoM@Xn04lX$wIpm)^}?Lzy!8h!`qa*G2JnNX3U$VvI@M+##T%glMZ|c^I2GA@em!PwHZ=A zi6kdDbbt@GI2l@sx)0`D$=6D|KrCM@Be>ls!cAOdNhnQ|l@I%3zd8x4vAR#eu1n{V z0@TK0^3!?+>p|sN++BuNBg)5AL{A<+x?GxfW_cJ3Cu0I(=Id@YwQP(8d=%#=%YtBK z*9Gwr?<^QQ(_)IXN;2=i+mGs+D1C>gJ8&An=6pl2U(0^1dLMJ51sx&T+`kJy;?TUe zP}Ch)(AmXSc@pRj{`dRr;!QJK(70Bun3FWQeB7jw6m?zug|M4wHkKuiw(Ivh_ zxou_eaM)v1erzqXVz?G@7jkhs?B;GIk>U^_Zyt^dm7ZHUpl%&zwd8)xc{O@B-9Enb z2L~>&ZW-Xmm)Pci%u^YZL7Pwg^5DmDKE_QmZhvL=2_>=mf;tKlmA74M(Dx}{77?k zmTCL(HkdPzhOk3oDP+7|p=hGxnKfH65LejUR_I>j!*D%F*c#I zd;Ls$uozy@BuhyKq~cxO8TVb6hVNS4R^o;ViB*?Hbi_`HUFo>nrahH#>rLgW1Puewte zz6sv4I<}|346H~b^KdcvNb3xI1h1^?;{=`H$0_~2H1UQMo_@ehZk28bT;)IyN)uz&^8eff4rg$$jI$IHQrQmip|_=(rf|z z4nbdT-sk0H9XoQ;q$%a9G>c(N0aAJ_gL8FYCtGRnp~Y~l*lfBCD>e&|2gcj@-Fuxp zGT3aY7+$pF?rp^;j^7KB868s>YqSonv<}Kj(rC?>kF6Rdr{-x>P3KM!lewwmO_J&j zM-9$qQu_c*Lq_mg8yjA5V;mlM9behV=1eSBlNV_-11x4(-Tg2sld?@RhJN>C4i@#b zyR*y9HKzMpneJEUT)R!ppGdA6Efe--rM??QP68@kxoP zDR-4|t)=2%_GD?ASJYM%hO_!#HNA90#4w|1lDGO-;~5kEhuL$kCXJ?REPT?%@gvZ% zrXFVc`sR!6wHErMJNEr8oRKG6Ss!Wjq{11gHeZ=oHCA#Db5#rS#eT9WGhY!d)X$!5 z`kbjM{*ct8WP(*0M2G5mMXB;s0g;HS%B$yJQ%%CHwpsk~R$x!gMJ3$36=qXS8qG>I z8TTX~(lnICS~$zpzTWg9)AMF>@MN~TSy_;A-DWeC;-Y1)*>$ZOiWEAh5=iWO%FIvpK9htJ(8{EjR9bejkWKE9?d7A- zvvom!xs1F&y(@TX$TkG7 zYs^U2YxD3OefL0~gZ%Ic7NJX$VY{L!v6LC}O_2+mg;>fU&+Zi8zj6XJ1kmwa_^Gd} zN+Ngrga|O-4C?vGFfYnoCp5hep2lWLCF7o)0~A`jQ-=%U(R3BL*kcRJwFISKT{nm> zEjBX>?eox4ZwHCkRfsdx`jl|fvx`!K{ zrQZhJ`yToH#)QsNd!(HkM{R3WU8TrdBWosl-)o?k~@y?c$FUY5Q>zE}Hf@7o}x z+RDr=#Kqf)wQ0K+5`u)B33AomriRpvX4nILT+q6{2&7c_UF9b1eTJTg zI_Txba(l!qRe3P1HwJ^*We!pa*Yr1@1j3$wt)1gN8c?!yItPffU{9(`%_f$w{nh?9 zswT^ro9H8pb(!80X6EfAt6wKQs2D-IullaYC*DxlgAs?Rf~NB`J2?pht8m!;INVwm zUT$MkbDF9(@f-l5+EBmP*F+U^VGsRsf{ScCX;0MJ4gtx(wboqLSQO!;^lm1Ae`ucj zy{MuZi;Vcj`!8{1#Av{TKgA4dY5isl2jTDxf4SP9Kl|SX0gYVQhvNUv)_0KlkL|E| z{f@&n=WLd<4iY!Z;(xIklqQv^N+HJ2SzC+*jE+x|xJV$9dx%N2hM|~+-t-&yX3z!O zlh|2ZGWh3T%CeVx>!!jbLUsPA!mD(V6RrA&d7+vb3(9&G2#tuMU#H4TJSQcq>JDv7 zn_OL6BW4-kkLh~CZPGq})yUWa9Pyj1@7g_fRp}u#2sNgos(8^T&m}U8& zR-SG_iG}<&5P5_41{mYLHTdo`y~yTYjtZC0Gq{cav>NY?CSUH>&i#+ea_*cUH(Br* z?6kkGO(tn2GD+*J5F4@U6zN`b0XG5nPtyJ6^TA!X)!p>2(*6Wzhq`iApn1^*MF()M zgR|W9u=bGqmT&#nI$8~@ds)e^k3xpLaoXKi`VWEz^5-S3P~bek+Wee=rsB>)?X>!a zWq6>R=HJe*Vsx^*Yq7l?dIc+nZj0cSt9+-wTj{p@F&HRao`BO;fUS)(9d8}~Y?Mw` z5drn~pLG1hRGfNYm}sMAzb>2#4C3MMPV2UdCw>~QKoh*Uq&0Zc^U&F^=;2yKl))9N zHe(>@EMG6Zj7mU+oK?l7CI>rE{rNK)wA8&ESo1CfoNO8#EKadrPLgyU1c082dy8v+ zvN`4ToZnET4EhaL%E{sFU8L$kq-_=H{j_rS1r(!I19RZ7YoRJk`_(K)wzzQm`{$Y5 z=4%bt1h$r?FQIBs-F%}e;rqSlMsGF$CnQ;QZsf-81~W2c^s3&Z6sO6)RSq3Y6oRFh zIm+R#PH<8#K<~&p$S1Ac(Gg>k<$yMG`Z7)E@l*KRydzoeM#BgT0qOwfn(m9Tj5d^9 zeGvuspiCI|jlH9-WKF5PUNXFqbY{6YqLEDRXJtHC;V$q0NK>Kl%>WBomO=nmB`@oP zygVeLL%NGRd9n=-{bea`5*}hokMt!9c1v4Y0gu0ib64f3bV3Ye9nIwlWjdh$uONzN z4cv1}Ye0~2QwWL&8gqPPtk#?x?+HZJKaYxdnhPWRnx1jCttr8YXZ7i>wCU}6r)HZR zSJ`UGW39WwJG~R;1-IZNBTHr&&CwIR%73YR1K%AqAeX$wlCDd@rRa{CszpnmOLD*H z7}?^p8Rm~O;)5SEj;{I#jZEtn%>ac@@v~n)0R2OFbRTx&H8-t1xgJsLE_*z4eQqFW zcr_RHiTiW-BK%MXthaM{G1k&oSp@3L#j7hAa$-=t38o#wjk048h%a9bc1KdDrz2?S z0ra>wD+Uwj7qFg~e-u-_TkX?nM*eE%BrjN50ML1PL$L#LbbwtJWPT+NZM_3|ty~)!?DC5f_Y)~YY_GBe&-GZm} zhUIRzB~i?B@TcRSrITaU0KDq7;odGiF%sB~;O;<44+ptcgdq0p6^vh_wlE;Ev=5Dv z6W;h{F8og4a$J>M$GPN(%vj#!CVYtL&Spr9TfHj{Ly(j&9l(R!^#-n3_co&{=^V2I zBBUyozv{t`O8Fjws{buB3mJBZII?93y^c~JX0h}r0EygYVs5G6+?(VXBVgqeUoW43 zv0sO8Fvn5(sw0SLVS=kMcMzNZ@Jj%w zS~K>-eYSy&jqqsM^+9sPitYW77f&T&_;0ql zL=0fuhzFlAKM6?`UNQ~RCfHW#*C$UC$6I@2FG?3`H;vdggRGoBu3jp_< z#o&_a5vEcqRU)2+ZH`k*OwdJx*;gG3Vb4?o)_!YQ^q0V}CM@#Kq|Gj-p5oOdlIrFI z0v&D#_>kbcRFlOLzZW{fhtSU`PSZhp&HxtZ@eGToC<27SZ3L`{Iv+1KqY_h!tiaRr zL%f1y*Dv5FO`l?a@sE+kY!72xT=iam3@_(@rQC5F!bZ6lW7dC7y%h5ryZLvQ?w)cy zt0Nk`u946nzqc}O`BtY?Y(7P0C8D`p<+TgTX7)c zLT^ADyce=IpJ6U|(-lWL)TZ!<&n3h;+%ZBClZzhAH2a?-nLR>D_Iy|$OxDxZbfD?5 zkbC)$LF~NZwWJ2Sf~20VqCeBsSE_#WAhbSK;wrw+U{(;l!xdv8M`VjJ^C);@_kuU6 zIMxnpcG>DJKk??Yja8$6&vjo7vhj%nvqa~QpF$3>3T z#!`-j5!Q;w><(I>e+rIprDJhFT|e67KSaoB5nj;Vn>{>akO690`tQJc@07ssR$^s~ z>(-N*wt-^k8A7di3f7AEHgKTa1$0IJeGtWv$Haj#gI~EsB%|~}SMisv@ zqQ-!ukE~7Uj5}=v_bxXHTW^a5ma2cEm#s7fGUP*Tavgf07r}O6tXs_`qRJOlgw%&B z_}5cyD8A^{L>O!7AAP1bZ)wq_CVILn?y*jy`9;v_V>Z`%;}G)MyhR->1?2P`gg5BiElVc+60Q6Up0I+Z7>z4o&ABFa`b7rPsKc zW61nBceOgTGuL(ZhOQg~33p8}0}0jJh%+t)n=7AAy&C^%dimyELZJHR4SIaPuwNxX zQhp6%T$t&9y=(I5QS!PEt^-N69qAD$weNLot$^}ae9W_S+Zmo?Z?5<4a~CCJh8<`) zz9>723Aw)LYv=(xm8-{wzfoz~dO?v&Q3fR^*M7K<~hDrRS>gFH=_ z43}@dEgB39jBSNaCmP}8ZD#B#tnxUugoMs4t~9zD;+XYm&U=amU3wZng@%)EDCjK<_GgF z+)RsYYur7U>GP5c!;1H@<<%x%)+((_O}9vL;m+>Z@Lg1n13^oC>MN+6-}cu!m^j?` zvM;ZZj_*i}2AI8sKxDZtUJQ2?sji1^O zLGoLo+EA1rrk|w=5?v(HbqvhyleFi`?k)k)Tg=E1{{8{IweacJ>VvMPtGn7Cu^SaU zzM_0w`OxX+;`j{)0S(9EdQ06}>WFGv>jb0jbDR3=$F)9mQp)-S;Vk%*p?k}KtV*@h5#ZwEx#|N@z6QG_JhT6&juoz2euP0wqC+sdh%6YQvPKT&eXygb;zMO&CArvrq29cjS_NOEEUM;?LP$5C_{^6=Le%wt=qsX$LzQFcP5XdR2R8*<=%o zH|l;;+KN7SPz)S`+r#cNysV=(g^t2r)LG+Gu~;hI;E%|o2PN*<8K9kpU_SKkNw|Pd zec8_)z76txDT+R;@yniThvuk&)cv_zlk!eY-tv7U`TfBJWL zzigVpV{xrv=ZNoySJI9tqIBFb;D|RhD>b zSUXw-lY$xFXlMryV===w-fPY3~4nRQ;%*HzFjA@hCk~}#5L%6fAzXLrfW>9}i=~(O@D0`>SB-c%c#77bg zsx~SYD)@(5jU4etIq2S&=0HYQx+G&G+K~x1;#YHMGZtR$0}yAZ+7io`qG);Uf-%}% zpJ>m1G0@hZ=VC6+>#^QJr{yXeV{BaHhHrN#`Emutc4Z@m7jwR3Vozxj2uEcgj!+Fz z@Ln1&qLN)O5!*xmw{bhYG8y?%LC*xhn-3w$c=qZG1e`-qoUK8*R@xMc-`D~RPh;3? zY@9qjSVY927Nvyzp1|zs+7s}yMyD6!7ZgB6nY&1DD>eI(h@_l%M1J)u4QYw+aFUY2 z8N5sxw)1plXXv~`tQ@51t$5aHex`@4J~Y5XbVc@X=sK`bh_jhe79A$=ppYQ4A@Qps^_kRZc#CX*1Y#Y+Fr2p zoTO$NaG0{@@G-|Hwb@Nu^X&i&EiS33cM~LFCYIP8e*`d6ms)rkfXw^5*tQwJpeRfI zS*w!^OIkaK{eWZ($^40youtwYnfVw8(jjkr4I4us_L&lF|i*0>)cGaX= zSyHys!;b}Sg?Gx*_Ccm|Oy}vg!h?-#o8+Sm8TOJP%dEOczv3Kqkh^=$R>F2g ziifk?U*@>a%dVO@yG$8X+*Za{F_y~4zPLab1dm_&?Po3XF} zKF{M!@@qp6aCAYYs}#RaZ{V{!EoNp?}1cK5h!ps9&459XJa;Nn_T+^n7o74Oa z9g~K4dbN`Z!Ip+$zQK|^0!z@g`Pwk4tG7v$IZqIBnv^e99e>k)C;Xx6O?KB;3@Xer zS+O}payQuZmFmZH%B6OYw$QPY%OCSnh#8dR{;u^tqjS!i%iJc?2L@RoKGre(G4TJge!B%EZC41@iECSYdGRag#!|HG9pI{}&hG5b+ zJP1GMW5t%FHP6y1yH;i&E~ol9kUSqCXq1lOJx7-Cvc}6%9CHhc8AsGvfi~jVTqAeU z^-CWBve>-O!&2sCfwH>&1}@X^orkq?=fg;2Z<1jQe?6SA@-wQ4x|2EFm?tors$E>{ zB#%zW;c++j0DK7Tf@9c6g|^1(C|{5AE;D9b*PA898>Ew0CNEY-aim*Bc2vEJr13`9bWtZnH!bPS(DN_s zeZ}x7J^9+K%zlDj#6)TI4lR?W@5pftR*~*5FIe7PHw=e1w3tGa%*+W;Sv-xlk?D6R z76A;|jdV8ptPRHnH_^~WM%hJr8>^ofvf_=qGz|53I+2sk9m-@tem_j+L>4=@d?V0t z==5mxZR4Xyl$VW}Jc4&oe$T_0`jm_EM~utY#MYm;jy!52Q|%%%#qN~7p?>HaPS2Rw zm~Luio2nhAnPR$0$xv3CY97t3nm$M7yq=S2^04?N7YCcq)ml0#WD^p^;y{#w%ae-( zl!`hf`42O<8R!`z4QGqn8Jmu`%!9A@N-4H8ks0TZe<~aj*SlfXaHoWSCbeps{7{?Y zX`-)r$<5z%=?tYP!7%WIL%^d27^$_WbV(DOWUS)ur{{&w!5X${4XeE z!6Aux%_G)?*9CN@3=X(Gk7*NSDJx1hqB|z51c)Tq(KBuSrgl{WXP3b*e9j+&~Q`gU7Lk%$;GTlV7cqfCWt> zwenuq!GIv2V%OY$W(Ro5mrKm0s9z43>y3%E|2x4hHbZz2FKtMxngW@zlXCkn)j9>4 zE}9{yb8(V6wW5QqW?2`jg|no2MTc~Ck>nQ^JHu0SAM7UeOLO3nE-1Dz?s?dyCF-3g zxT(=ZjdDe=IN6K$8_w{*hZ9myJb@9O#j{SX#+-*8q)oiHi?}V#aWwwC(nXG>!(vc_ z1)&ZAFrS*Y7o6jFUnP%+RiPqPbuZ8CpKG2RVv4(Rg*kjM?f>U8@T6HJAt$n4#HkNi;7_I#G9tm}l(c`hQ zQ8Pn}0RzY&8z4#T3RJqPP+>qgN}>=9>xyfOvJ*Oz8}xr}!+akJR( z>L+zihJu&9#nwMn%TE_>q4i$3GR0C-pQN{+-Lbc=vFa^FqQet)AL`5&(V>c z92%9wtT@wg=96t#EcNCI$*GC5e12YQC1WX+itg?SM#J%7N&g@yLDDbu2$Ci(Dw@(S z>=AhViu*j)l)I$K({i`5@@9}S<*Ac`H@b^$k75<6!mBl@Z9<&HUbWTNPgvN&2EMNq z8DixDVKde9_b^fB>1-ClE%w4-IoQo$L8n zZ)*gIaVat(FvZn#7`Z+(R1r!C7Uvc!#tr3@Fq}z++?4CYshaMT#I4l~vXt&|Od9Uf zj}-sA?J2hnTX*Ss)*(AJzVgruR`45!c5;-~Q9i^OMT8{3kZ@L>OR+LZmS>#$dQ0-8 z)~@n+cs|+D5mb>X$QDuR&k3-wH_~WNe_f5KyM;XQ3i++!TOLBDCuL*%pHMocf2eh8 zx$GaevQpKKQcPDKWk(%LVf+E`2$k-sdoUTL?s``%xo{qZadDLf;C>KpLC^>(+DG)p@?#UodG1v1VN*}^ zN!uQ!sjPAr!)#K>fJ13i;1v&8b_6Smu;|V@(ZA~ET4O{}Sm{KS)Z~tRJ(6Qfc`cd( zp?ZCeVp`p41aOr~Pr>k#eo-)Z%jy`M0oL~ME+LATA=JE$pSpU=XD{QJ z*cfrIu zW5J;F#Y7`&j2aupn9(FECf2ACQ!Gi07!!?A6HHNKiuYX$V#z)GIpyASp1rps3~Oes z|Np=5{oXRrh5D?^hnZV5P?qvIGa%g?e5oKdph8e?*NP4HX*xZ1XgyW5vs7aMDvjHc zgj>vhsqIxbiHNiynzWRlY)DNuLTI`fR4&=KXy5f;^2@0;VNf?jHz*VA2GtB|^hBl1 zBvg>`M$d6fQHAaBJ#7GW91wSd)Dr<3ribF+$l@*5YHo)=uBU(x$AT@NW{h_%@fJ_z zF;w`k?R8us-`|Pn&(twm9)ESYbvn%*RsllsRJ!Au8OWdCO|p#EH>l#MO$la3#|s8I z%P+2W%lrzhNRnIwl5rA*xVwb_uIfX}aB=z0AZgcB^dgJMgh|0FFIdVx_L?;&hjnAP z&uC`kMSYq&eh|{^A0$P3g~zj($_zA~3SwnZS8hoRbm!yDFvpesg)uz(rnVwTnByea$jxEiZ!(vE%xs-W zS6!s(+@*+$n^;jLN^yFrykayAwm$=eqJ4{l9F6<^p^z?%525@VaP(UPaZU~T(G$?- zJQ>JCZG}N39s$7-3?kg<4HIakW(|(yH;-X4wYK?6D5Ma471dz_NMR?q*gBbFUNZ-s zi`g0N?X{mhovDvH2ug?7F;#uw2HfK8+88J*ilH5=y@BFp#3nEW@6Sc&vMErip*xQ~M`q87}&Qx3v-Ti~FarX?N@~2%JaO z){Y!AJgT}5hvVLrW!4#Vcdj!uvbi!IFqcLfT zFu7hMmBPQIOivlNvB)yd7$9|a!}i!a1D5l~*I{i@xg59f=!f_R*4xLl4NZ36ccdP$ zp~p{*ih$dEa<(25#u4E-&Kq!aAG{6d<>eW;qs=ox5v^_a1WPIoBqQCoFt{0;hpRdW zA0xVcA3JU21|}}V9j)n|SK%4w@A!L;{-m^U7F zCl9V-#=NOtpA~0lp=)x+*OWgkhdBfUXfZN!t6V}YQ&x_??X9VMM9M=PHcN~`oj?n|)DBE}p zCu2G|fGtN1il$Y=aqY4AHl)xfh4Fw!U;3}sngQMjh%Ec^Xfnh`e3;*Fi8cPemfrN( zSTz~Gd}jUeenA$>=H(Th|C9AMA`C_4NC)2QcRyoy{_hvzsvp4Pd1DVEIsfMik(#UY zV#=EXHo^HQ)Q-?*Jkx z%>r8S&)RXO!J!uT=DPr_HSG&kuF?Y$n|;(>LW)8>1qgb;qyFrg@?MqWP8Kd8pYK1! z?uXR{Qwv`_Ba7d`qGsWZ`EPMx(ZVdYMOl%0s`(V|*bQ$1_n2PogGu<6N|Yui4FYx* z!VwYZ@^2_P;P0=ZL$|S+{ts4SuS872Sh&Sdjvg;@v^kjZ(+8FMCYIFTcSBw1`m4}Z z8Y|$`&T`NW#3HvU=Fi>|npVp=A{$WpPTGP^^?$o;u|!wkSDut&YRInLDG^d1xUV`n z4I43{hIQLXj)n&N9EOC?E@tWTNS$O{*Wkao!chgfZ9AKSc)L<|CMFcW_}~Ib;j>sZ9Vn|JY9r=}eOlK#h|U zkq|Y&2i=T414F{Mfx+vqgFRy{z=!^_9Q@w)Zoo{~@7tJ%;Ed+8P{Xuov_AAxNiqXP zp%Qpkr0JAdy~Io$`I)N=q24`wXUXg2?QeES)TQpzPJn zk*2du2UZ}_{--34On=H^s6o~j?nhK{l_@t4r%EFjhkG8!(XqNhtmay0QPDtC62y5G z!yHWy3!me=h@dd6K=-VWxVMxh%vaUQR97XGcB$ zeVx@_LR#EY^2lVztfhP_m#zshp=M2r?vKrkqH$8pD0lJ-y_>cd0gn(27Vs+il!G_{ zFNjgEtI>eYt1;;j3_ z{XCf)?D;hFd_^KpPai!pqC9p3hkmL{vJY)#tf?A$Bba?S9 z#yqFz<7g{fQ~uYHYL>a$N3fmCt|$M0ol*gV|t4~ovdv3!iO*5hrZ zkAq^U((ssqa96XFG?apSIFeteKJcq}a#@ ze9fQg)+c#5VBQeF~*dQLB&A!~F&Xg5x4iL=ciC2W#zpBU+rt~SV2>!2^>+;DZ z;KHXQ0^w*=AOOo947Vg37zFR{hMqB*{P2svy+;|m zq;G&i){Gfzlm0k@TF&9$@=|*GP(_>>)O*JNduMw;4Bf|P3duYY%B)Nc3ha(isMQ-o zpkel#9uz~%R;QvfZgW#p*&a|1^t~|nz5O5^!_U>JYFfgG6LPO(Tt2;sqoRzWEKh2z zi5A=YhXIni2M+@_pHDj-w13S2fAG>j0-s_|U8xK8x(mIbPL8kL*&k6&%ab!Tj>c~* ztUM`821`hUP|q>4B{#?A^g&|Mies?JzCla5;99QOLjNB)!M*0B=kAR-uhc zoNuy{xJ$}t+#eOA>6$&L|xm1qt!n)Lgct5uFT_bawuL}*`FQjK!UBH zbX#Bq+q7qOlNZyU)bYyEI%t$j+2#Uc+x+QjBlssnMgWmWjX~Wjgv!2>AseO- zY~N?LqT9 zBo7H@1JnU9y292=;sS9?pQK0+x_ttH#9Y1_J6S*ap$39E>p5hsw{4Sky82#t8L+hJEvSD@XF=m{JT}l5tSca_ zW?oNV;%@_O%m{P^SeF|upyfZ{ZZG|=)Rkrk!01zL0hTyegNgY0;9@niFC2PljEzq# z-7B{LI3&EX5#-g)5}A${!WU-b*MqcQvEAHHRq#O#Uj{&lBh zX|Nb%V1Q6pSnG?ba}YoNDd?@tyqU}futfj#s8rLCR6y}sUm%6Mw3@CCr17|OD9!4R z@L~PbNN^LDR6uF1=XucRqHKR^odXL4wgO+aAH(X9HBy(R2)l;V8K7N1eZlH0f_NK8BV+X)q%j1?xEdD zdnF3v#pkd@&K`or)omsC^*?nWI^yg~XrY>YKwrIhv=_*7_Wsa$T!+Bb_y!N^z_$Va zHKz5J(knGC&=VTC7_eSJeJD5r7`*Tlti~7ahx{q!xW6AMLLkupsvcnp+M--^cyqC7 zL>=e`9zuQsNDB8*g^pyfm4=%-1?`H?2hv>zm$*^CLXWSX$i(isBng|+$4Ka-_QLK$&NMAR%VE>fq2b>DyYMjK^H2C1Zp&GD)y!KI&h7as)14}=>|^t!-sBu+`;AU;6+44`e7VdhP3b-vr!z(nF0p^wp&+!f-Jr^ z4OSAi5V)dOfsSE;V*vfQJPpLJUocl5IRnMy{{A9A+NlAKtN9&_)sb`2lgzmT&-^Va zFbOZ0fbn5wVkp_&`r=KDmwR1B-1n$TOcI}L*{m|QMZ*;|wIsp3T$qe}@eQaJJIeKZ zI%tMpn7I&grxP6>IL!O^ga4Ts&I08_k%q-ml4gB~Iz8tm2xe?Z`>TclXtmNXub;ji z#0WhPDT(afs|o3qMmK9PJ1W_PaoNL(m{7EGv5xA#z;Y=#2s=-fnOXWaa;HibVjg+3 zy{8BDJ_Wwa&XO{4A(@eW{#KX)vU_aQP!LpFT@&Qw=aPcO{XX*AL$ZO!4qgXOEK9Jz z3*CzI*3yGq9JsnygLU*(PvB&xcB30@uT8*RZ$tE6ZQ7u&>p1 z(4rb4Y7O3SpYQz~d{#^~afo|kEP9*op%5E#1Q=EQ2@?_qm}obK_RMB$uo}wu{lV{M zw-(HM@Oi!Ai~zT{F!66S!LQKxxig;&9t_;8KppB1XSK$OBE}s}V>jXsvPN;42_d-W z&%?Or?1$jtEzL!!L8CtaosJWkpme`&Vk9%zjY;ca-`5uhZ4PR1In|i-)ZnMifx@PJm{$mmZc4+Rw@(%Teyf)+Etv;Ux^*=u z5Xd$gOqoZ@VrkiPUcpqkFdtx!9m20ZaOdx|r)ZGK5xTk^5%+c5#a~hDEJ3RS16>u= z52xj+w0D%3duX8g>6R1xvgEY*r;rYj(;B0jGGKlnIe(!IBJ~=9pX7<}4_H0{G-n-v z$F?<)q{OTdbXK0veqCBUY!c)4#qfe+JVl`n-_-&chZ;Z1MWMMC`jZz>hOD%eR& zU*j4aZA;8aJpNuM&R(X6-Nq5E$+HRP@-yk&EVL{in<|5$DM|1mb(s>2Bnvfg3i8M+ zed%mc0n?1lJ<>Ok?#H`%(k?F(s1L?GA@$paVNmh|xP~`W0(AM_fHX2oXcSDnN^zF8 zyU4r3IZs*`$7p7}eEubKGPS*L=(2b&y^P~q`$Z@ewm$$oV6~R4HM55XSwZbh*k1DQ zg5=rQF$6(@TVXsLX)ScN*I>gqTZ!tUZ3O05-uH2eeX$8c2sY=yb0ZAzTzXV`|8wQ* zH^44QvDMIZ^8Huu;oy1Ts4PXe?E$dB|LMEwc`RKgVA*Q4bFeh{Kff_!d;%1@I&ZkY z`oh(MeRnn8a29{`#X#)Ht1*gW2hsnxHyalk?91c|Lh~4pRoNbod9zt)01spY^mA)N zGec-ywU>*14|FQ4$LIs8E(nBp{rx-)b*9E^sZ|Jl0s8~J!k|RdJ0iiPmCPisH)WgegPHEA-`bCkzhLPhutgcB21yb&o(p={LG7 z=}9=&@o!Z_g2#1m(AYv@@<@-4Zr3g zjq5GQFYZhS?5CXoZY`TH{o^-il-iH@bS7jroCoQooh@zM?+P5$-w%>-QXHIt zm9dCD`*7K48w{7O2d8ltN~p4zY((eWwCYCin;cqH3j0UxM(`eA>kZzMr3W6GAd9bBxS~32cF2>xol?&^ID(1xztmE4B`7vio z9$fkF-$z5gk|vYoLkLt8;*-DtKhZCS^rc`YsLLy-cd|7xvCpR3P?-0X_mhP_Wzwe~ zhVARjy456;hr{ssSR*kt}#V$$mW0rtrtX^$IY%J}Ci zXw#PR#O&W&2$B+Z&Enp*ca3h*xQ*|`wS_~qEoqe&Nxmo}|Wej4$Evi2c z%57}~_O$zZ@YJ?)6*x^_b%lHJF<|Hy$Mtu!4+k$OauUkg;y$@>c0Y>wwE1(jplRWL z9c}Xlw~B?OpR5tK?MR&$>`c8FR{>)O+?IC60Rh+VhGJ>yXWjki{4f+$3r3={WW;1m zjVDA+^?Q_5G6ayrLnET2<-6h_D;X6F8t2U-H*(Aj!J^DTMSfWaipKyQY$1$a;&J@x z5p>yz=|vLDCup8B3BeR^cIa_)-YOS7yEHM=wg#Z!EP|GOmplmT+m2nPWC1j@V`>mc z9_bE?hPH{7!lwD3q3fv(2VdY43fuGy1k#884IP~667*fENhm*S5|B!J{wO{Z@cY>v zMM5Wc!BGBt9XcafBrMD7R>r|ijM-L{Q^2!$5=6+FpXrZb$Df_r3*%uU>{fartR8fXq zVu@h#%wsrRXuk1G@+fNGu9VX70>KOy?GrmiEC&p$K>C>@(l~@?%ztwo{D#W+q+FXE z_TH82nZ?o84F4stYHG{u^BNhu-Jv4Dd);aWTerb)aA=C4{u-({8i zIeUfDRXnau0U>}n6{jie%dWJWd$1(osB(;fuD%h8u5~rs%k86+VyUB)Sz&u|OorYA zR1kg|kiyh2A-}Zvqim_R$*iZ}s-rMMSI|{IiUHJg?+Bf?^@3JikoQ+H$$XW|y;6vS< zQYNAGcJ#wEvMXogG?C=B;jOYq&tn?>*YiG4f}_|4Wy~%{XrM6dJ|S5jS28FUehf; zi}{+2Vq(DS=-6f$tl1IycpHX|C-&gDG-E7T(&Kfcy9J!p80GHfXuNHn%o8~M<>d4i zQ>y&JUt4ce(t*U#RPMqWx_Z|<=1ziI?9+V;2x=fl zz+I18Pep6(?-!%hfcBdFa=`#(`Dv|-;b`!LsmA`P!2^;kQ%z|g~CZrl2+~{rXv`|j6<2WKeUCvL_%Eo0SvB@un1_RB z;7t9jAX$bygc1FHLzxSm@e9^ArHt^UwoR}%>Udb?M~+7zO5HJltKNJVBiEK8TI4>r z_x6CG!Z}F{c^qS(SDy{H|9&s$D-dxZquA|gf0*Zk&i2#p6azZg5I)uR11HJ&8N`6_ zLGh;FFQj3XauXDg(68Y|!X{r8?luKb^h)5(>})f?(U&oQG%mnM`uU$hH*L8e=}+sf z!q2hxbwKa32}IBX)(aC(RzvA0++LV5c&EG^B4=iJEThg|#Nb ze6N24wn24o=VICW16#;c1Its-k+{+AH_&eV9R=)4{YMW4KHzgfMS4J(@LRg;A_^qm ztNxH11w)j~O5XCmO$mg@EM}Z6#B*o?(0hxE91P!FoR#;Mn7rxT_kqZ#?1=RgCdQ@& zR7hz>Q3CcC1|4`TJc9*2x{|p-LWkerf@A$13W{c4D(cg3L5G`vlM${lKL8n;jFbt$ z{a6Xw(vi?~R`vwBseLNS5avZ{-HXEMw~Zm-rX~V4edd)^AnxIpM?U#&9XFu8e)fCl z0}o7H9@*V-hTKj;H}x`1pW40?0zh>j;S^uf(mKzgTnI zu_RN|5|W>kbTai%o|&IMHjc%3bVr{o1boFulJPWZ@P-2*1~t~lYndX=kvl8?EiUcD@dl`)VJIw=0+l%#(%Ga8;_OdTy!Q{yQXO-Iojim*PBt9@+kInSEHH z*gi5{PO(Sukn0CQ+I1-iq`Z^+{D8P+Rl@5c0UVlpYcSIEyXx;^uK~ym=`M(Vu!(pMjm5+ArUpIYFOVRAxzpsyWH@4=@mVe~@#|;^z2@KyXRTjLwn8i& z)0T^;%@sZXY$Jd3a3{pU2g?6yIbB_f@WYZEIK;6ZW!f-ka-;2uT`@Mdr5G5ry@0d+ zv#%>5y4?Zuf}5s1H*!7>662z`bKyzmq5_SmPdQG;Q{^s{J`F_js=4`aP7nhRZ(M>r zsV7tshGI{xpJAk4R}T#G#oK_{B5L#s`mz)yLc1memQxJPWb;qXps1|s3Ef>gJQcZ# zRXSRg2ry;HRSe~fS5W3PuS$fO^aq%ru(XdSA5Q+Tl&)CIhxd6X{mg1Tt=gvPa``>A zOyx?4k9e^BdNGClEpVX|9|M*+bQU5_57{foff$LRS``@>yC6@$?U2Xfrw{1Yi};kcp@@0|Zo% z;!vHKL6WH-ILN09pK<;eWp2}tI7}K`#ZtO+5FS3p2(^@YTai9GawLj(R^?t{%JZSK z3Gk`#-doCq>&5E9VA*^dBbe4X1No5GX1X$2EFa*V`+W8m5DKv@TU6WCyq&GiT%7-Tj%9?>Om^wTH_x)EN$jjxKuxGe7WN z&|-ICz%%~RIJ#3%a}Xy(Gl7)dHO~LEYdFykfRxtFSK`5b38U#UYWIaZ>+kOe70|Lw zX*|`A#FXowZ;Ph7vvBw9*n!Fy%C+n?DA{p9L$m6tVXvz%s2PULg5i3Y>~a-%Ii8RAy-Y{9rNRf$U}pxnrb4YUs&-t| zbHk^EMCwB(P8=0AY)sAYag&(8#Y`Go7Zc9>>A9MTlcLx!O{t#H`DL1YB_@zI?Sdu8 zJXLmV$gnZPtH&|lGNxu|-S~fAaAeJ-5D;3J`^n)fa^fsv?&ciu-X_`HsPbI0Cubz- zhsF7E77^!gvX*w8OCHSj0zjO2wEj)lMHo$3lg4AN&fFp8boXY8KjN#eq7B;lQnt8h z?p#;n?$8?$MCtN7t8tgn4YcMy1O&nqyUInf6 z%LIl_RR{&n9j-!W9|MP!#<$RTM~!cvHnt$9>F;Qx}TV&mynBx@bu})7%cTG1Psma z-5QoaSj5Ilnv;-dT+gv6?b<{ZNW?_exdbeytzaxg4F&-4m#{)Yfew6NOn?EKb>P?E zM?mZD!uYE}0s#EA7+9xl{T-8i94~zOd3t#mS-yi;!`SnEL)k*5Zc~ISsmcIQD!&DE z(C;J6KN5{-xv!Q1by9n%Shdas1ocP__RDZpgpi(XzyUiQ$?u|R{yip6tNG}Oj)H9* z*cIzY?o)JuYghLX3g2*&{Kk2MStYMv&+B7zr`^A2Cv%riv`>vjRgoxO)Tc9i!aOxv z_fOa0%}!LoL>fb|+R~w4ailvtT+ZogIZ2tijD!!IS>SO_sk3X_|P;D6u zA=&RUCi5|eNtAjx%)Q)|=%v2kPGQvjBkjXrCs042s7fPwvg5?*<6_ei6VUk3F9V7~ z*mk9PHHKex(E@dsF#BpWf(T6mi-Kv%Ed(_G^Uv5OONvD7zUr?<=vu?Tq8s+|oM8HM zhe1vUqXoCAct?tkzeHry&>d685W)Ny@%&WsOA3Xdn7GQ_u_P;F0LLL6T;$DBpul3` zMsS|uQb^Jx!^mEXx@U%xqH;5QyRK#K4qgBbC^t}0Du7INnfF6Ko138^-<}zr1S3WU z&Z@7U{L~v5M+1Vc+aZTxY^C#($KL(vbafZcPs;9Yyd)=H5_8`op`_|*0~>5uQH5Yp zuH>Z>S|3KElqYq;EO-;>9H1yLcRquaJnPM9KNa4}cYWJS4uMXG%tA$yWtQF{w}Ud1{sG*C*L<8v{w6VHP!_W)=8|Ix*{H10J4*H`-+m~~MPnn)C zpNHKp@&Sg?9YbRT)a-&S>3%opD7SRvE09Z#!~-kx7Iu#5E2On6fUeZmpk1r&St+Hg zO?;hwD$EKmw1p!ZP#dD7KGm>sZ;uv9==b}WI+VVFX!tf8*ect{>p*8(4R*2XeO@5> z6kwb`^O6{wMT}0kN{`zH0)vo*8ju3_ZO87Q5Azp_Y7yF)5S>U@H-L-O{!j<@)SDn5 zz4oD|tIo_jg%5JwVm;Ud%Zps-y#!}wR(H-1t-?23HC_xYy32g&x&R+)#;>UJ;I1yG zZoB$2NoyUAFz{g~bEf5hp2B*?GdANZentyds>i@$^%Yb{t4hGLk_i2EwD6iU*d>pp zK3^w+TQ>5y0JZ!{J}$`rMGLqdif2>9i%wxFv;47CGitEb^Iib9*5kI64D0PrFNl!z z%%(PBiUq{e0gg{q4UBZ^J_XIV@mK)VhfE?@%O@E8VGhlzgD+(YRIpki1;cqaqwf@uZ-~#lFJzwI@ z%-FiFt}QUK>%toT2tb$gTPalAc@lSiYEm3Ne|ryP8RRqE^ci?|8XlBr?e8TdQo#ZQ zdYQg7CDJl4$XiXl@g0x8fCf<&BE%h!;FXh+TZ9j))E`^a7@0rly`Uo9G{fL)j4YB` z9za0*&p+Z%jA+qv$2SWj5M(!Wydq2o87IL&4GTcfVgJ;!7@fvOpO7F;Z06H-7z+o* z$2-2vsEXhUOP$2^!ct~uC=l}J1=>96N>p|-$rcukc)Wi*8W$Fg@TLp4jo(I$Wj!;i{NyM0urOqTT zwj2Xf;`kNlIG4+z^V)n7emNe;GzdRqEX@l)!XeXW1Ve+}H8x+xwsz&kG;lZPp#-Zn zWMW^a2ByF|^&#vWoQ^m|j)WRAKulN@fmZ58DU7v3LAI$`7y(;wAqL)=4`D{Vb`&mX z?_PB%otz9%{qgQXJ^?U!ZXYVaHZT(sM|Lw@RF694!Y`m&KG_Ug&xG;GdKB~Y^EY8C z@Px86(pChPWj=7JjNy2U=e(E%i!DnGu%4MR75!cgW5AaAu`V!S>m8tZW~oIdMnl;< z5;Tot{o!l-VF1(#pF=^j`LxEF{(MO(v+KZQ`JRIvf~`|7XmMGZ1ZW!APjT}`7;3w_ z^mixQJQ!-QYU}r{pa`j#V^4IPNr%w+XGleVtOL^q9lL;3TS2mcMLulHMq_x|coPLv zVKerQLBEtMrD&DT;y<4xfhFzH-Ob_E%2D|`!gdy2<_M=c2?z40GLPM8KL5qRHVob; zRh4tbcRD>a@Khe`)91gps0O$WrT`r)!FFWQZ}2xXRjYKEr+`@{c9Sr#hP#l})K?#tHZEI)^Wj3(v79qSGlSr&ELrILv=7*5*xfUASJH)TZ%o z`I2OA)$_s>OL>I|1pbpW1Kk+`s`Oe?&)s-un3i;5QsVwtYDvMq3Qsz!xj(1 zIHqb7&Z?H{`Fy&QE7#FaOW;Yi$P=*O*MDnOXekfBh+`~rDkeuAH4zwxUc*cZnOQ(U zhM_>5gfAYKlqbT;4+}20)kfZmyQfzX!`=ni`ZtWHhi)9=3BE=zt9$BxzP1 zuwa!2LhRAr1|s>I=dsxu%fWroe~*c|`CY&U{f}h@Qok$=a@R0vU0_;v^${b=QH!#$ zQ6r%13GZ|DCX;?@3S>fo` z`T>gJ>F)zvx6IB#KIgk&A+ly?EOV~z6L%0zazM~pQ>tgqI)82-%z;kA5e&R95EGWxwgNS>xup}1dn7*`O6 zB4b~L@@epQQU+08e+?3yHF9iN=BY}QLt(gbc1f-t6{n(EpW?xX}aK^WkTA(0*4b!gH=i<|;{l0jR9TP8Bd1l|{+#Tj&MM03y z0E%x_L@#H&vM>{S1zA$9KHTA&;qrf-9vFcnIZ~HZo#qIft~fbeVHVNn{MUSJKvd5a zAzBO1Yql;xup~=jo7qWBxbibcf*Hv2?1-NQ{P_4}$gum0aH#c)@THiSt2WWudq8IN zufp@5i2!Rd!F7er0%P;H7&U$;tgvLOk5O|?`}l%TSR;xI{E;L&_d7>VzTi|zYbR7k zqqAq&Q7D%&`6+kfh+Z33_ua<)mP~U)1 znHCMWFz^o$BbEtc?lCKHmQ;NJmyS6PibSfKiM118I)c;S!m<<_h~*A(Dsi?}jc`c` zDX)-}2mBL?of?fjvKT{fkrexDs1#;jGxn*2XapjR$od1u_*agEyYMPP%IWrvAz`2m zW1lGOg{9pPk5A>bEkUwQ*~)S)-W7<{pi907+Nfw_s){b1Ln&PsmjgGa53taD-x76- zXI}AD!!EQJ3}`x@;{t}bRV1dUJ3csPcf)J$z9*o8UCgg$FQWE63=Osgp`!?q4pGz8 zhCa~d6@f?hi^<2C9(;*m(}~xe8J8Xr$>yLoE4b+kvg#WsGA+|klH3rct4M3dG0`@v zpNgT_!xQy6sFb~5K*3kVQ48&_Lb1AfJ8TtUo8U$zI|1LqpNWqk!nuEDdD{sDQFidq zcxym>XZOs`2phJ!Bh)a1H;5W$mRCO|9c_Pppa)&rS#_I^K1$EzB|#pz{$32+rM`ip ze~~{Pn7RVQi^;PA4X}O&EHmFau?V3$ZrH;tySu}W?!}TYlDfe8$$SfkZ(BA>XK>*~ zjG-Htz^?eD-h8{tg2y3+-$`Hi zlD8Y6N?=Xt>QJCJn~RHaD@SuNimOe9zTx~^V6KacT;Irz ztJ5Qa;<}TS1-b`zHn2ND=j*M zv&eWG4ijH9HET-{OhRr3;J~=zgJ91mZXYoA)8H<{teln3J4^!LPH$C-C|sF>HGjWI zMi-lqKlWrFV0|UL;}C(fs|w-B!yjTdX)J&_e!DNjiJpd$K-fnm3VQ#0^qH*BmPrGH zrZFcmZ8QZ9P}8#SaL!gv1RK2aYf$#;+I#~+`VsrlB_oRRMn-N@vKWl+pI7w<5vapc zY#$HhlWw;Qpa4cR@aG1|h*Xz+#blLAaP~7kh7uk;>5RS6hjzrnxToT$nOLs=`Fvi0C*~(Hi#JvB|uqEpc|}Ws+n|0n&e`w` zA#6j;EAT*@YDK_ZZie$oaL(18`syv9SA5`(f;Oobv~{LnMJz-l)dT`h{W~Qd?l(t^ zB-G0tJQVF$AfitD43AI)KNc51egH)AG9Bpc-|!jlSzlUSn}LUCCah(DY8>oN)7|A= zno4=i#&xW80@=zik+UhrL5hKaey4;VCk*`Y;d5flCTunc3o zm|N)rx>M(g1t#qkMh6ya)pRNWJAyq3$~g735_nr312KHoTFjnX;_?KvZ)0EQCi6b* zKBgQIrLDvsJ}QWdVe%%(Nz`&61!K;eP}+;BdU1BhV?e@#)X$-^0u~WUZBuaC#!rQE zhz(d|F$+_Z3`tTwK?i<_HDR~+h+9%^lPNfeIyQxXygo27jf|T@42%O==hqvV zza5%B$fL>fFaZ=pmffflS6pb|@@UG8y@1}V#`0?|Y zs5d4cKoKfwNB6;r#|0wsS|{l;@mfZRxkAiujkKWybM-?0gP}N>+mu0fHt0uo>Jwp3 zG>*|HYDg_8$Duqb)w5~YKrdQ68A$t5PJ+}vF$f9azo38^wIv8c)d8@^J#z-4n~&Ej zK^gl7=dZ`q5*He`0Jy*HPe}g{^#&H-UMWB$pB2o??Y?|-gw3B~Jwd5F7*cFtECfya z@Nx7Tm6**=W}Ytxe*lvij3148Q1T^V2B!ZZ-OX z)S6*8)BPFOZ8f*zd0M}5Fs{x89Yy<>`Can?c?oQkMoxuFd5Ie)*k||&xBx%+H&(r3 z)YI~yL2fjA9wZQT+XjGFoWT*Vssru&%n>*5RSPwYRW)|3wWY9dtxb%^6aOLP#m4XB zv12_K;f;|ldIZy04JefZfnB$9ZO5fB2#6~Hqt2)N`?e`gFu8jKe z68`fQtv`j6Ygr!r-^?qsp*ChxTY)2lQ^Sc~5H*{F;qEpx2D;GkVAdM9LV zy#%Hh5Je58eTSV3^3A6;XQ5{xD`;;9bQ9eQG-Kd>qciRQ1lynGXn!$1d=n0UuT31> zHR<|(E8K5(e$W%FS|*Y+ygw2$8inBC80Ytgx#L9lE`i#Gc+mGQT{fess>8;(=0Y44 zSc&;C)jWmI{HqQ4NCs8Hkav0|L)HAmBqRmT0yV--4A;~zL6KtiM00+cak&?jBF44O zTaHTDDgg4$$m`BF!YH~|Fa&RTCotf7rG(ire?|IrpYA*YK(RV{lBi z{056X*0NcwC`FQY5ByavhBB0WHYBdtGAkEVL8B%C-nrD*DZA-|?F`gkI?jf5XE4 zxf0qn1KW{l5*{;?Gki1H*j*ffleQqY%Hzci@JUG$C9*aI7?yri`2 z=s-jO%*C~I`v!+A6li?Juf6oIZG=u#nvZl`zaHMq5t*s9za{}=u~v_8sGE3dFZvJJkXjx1Dp4?m*8`$ z2nR^rydfUu(Et4!`1?|)35kfNuLi=m>w}(M0k!{eH7tA|$55xT`$&+2DjFfJYIu=> zG#;;z+3EPaFRTPuE%e9jOPUK+(zMIDe)J#=@ciWssG|Rm3+B=b*&gIO6| zU|PKk!zva#t5RbFUwR*t-Zfc0(H`dYP}As$%KzmOyPk-{Z`mgZOv;T$90hBk_h2UU zc)W%yZs{+lF`#6v0Xm96u0#Xb8ZR&vi*Ntj*=VEFuE+53*q$RRZ8c+N0ZK0J{@nvqSSXK z*Nfh_fS;^hgw?FSuEO3{4401P*IhAK-^&p-{Wvj@&J2UIj7x4Y^51%cipQ$=V7waf zKl^zECJ20$6x}lx@hZ$X$NMENyi1tZ9Cr~@f8``}HS9IDMq_6)f-(HmHK|9S`))oz zsOu-bS)A?8PfkfqA^$&t4>jJxyu2>F2l$J*Os(|KK&Gpf>XK_PwG`Eb!M&A*(mLKp zj7*0uJFnCFl9dPk^a?tC^(WmF4%4wRG18HK2yllv%{Bv?yC6S4J(5`lMfkcruDCi0 zy76hor&6m`ybE$~-UF3fy7x!Adj=e{+int7Q(ctE@uu7Y?l2@7Sw?bWO_IA$0j}wU<}^GD+=&^FLESwyC>$K`lE37s*}Mo zXYo;l%T(pS7>so|8dKy3bNVWnBr~Qcw|Z!vwq97r%fpk&5Je803_Vycp%os-GOX=+A(B0mDpz@^jjgUR+?^S_qvH-h6doXO7r^f=g`>PSa zSm6YW3`zpReR31$` z-c{0Q8Adkx4Y)I*H@c%vxdlqkn{ILq{dOL_!aMB{5;vT4?b-*{90nygbq~N5)o&0{ zt7^Qlv^SwC?&n(KNsHtdR5ad4L%y>J-TM_Uu97A!bsol2QAoWV1op<);Oy9L&O!4d z4DU`Y-dIDRq4+o+=q$w?#!v-GDCK;i{gFb_m(lF*n?f<;{9%L=iR~bh(Xd4g z&q8wGAxKoaY5O6@r1*iT8 z#;y+(yzfrjuI2;`3iPhP=$jt^gE$)$-nE=&mBR9C|6gvHB4%MaU_6DI&9NH`<7OLR zEV~s&^T_9s9AvJ6Nauzb6r#pI@RYF&>udua&cCjDxzT|WZm0%(D>QU{BvOY>35dP4 zzBCYmcgF1O;d>}2$DM?ILB|!$s2VqMB{aAlUgm$q;-Q%apKW6(GH-s`4={`+IYyNN z&75jP|6Gu%0v2-}od}y@)!d#OOx-R4;JI@Md@_p~7}(U0Fl-rh6AkR?F$J*lyQy($ zN`D)pg<~j>K?V<}mS)sR?X#2udM!0o#xUC;hF9Z(YnjFquFAt)DnBVxOEDKw()Rib z=V+-Br2W;ov!0i0?4mZlDk6RYg$oW&Z#z{ zpclp>MIs0lMgB5yF!ED{YKrNP$`^f`p86dff|iXrkUByDI9omk>e_x5GPy`*C?GnE zUGQ=fa{QJ*z|^s2D*X4)9`1u*bO%^c*=ih>AC+K|ilGUFP#?Pc(EPnOUKc5D>i0HsOS?PJS<0i@NO6c}vdXXX#n4oJb-Mt>={j(vT3=!Uau0yW*<1%4Y{rK;BN{(~=##}4jQ;3! z4txt0*TTxDBW6)tk=}$8(9Qtj< z<-Xr5Ohu{_cx6_X#uhLgtth_tmhn)EegGOrMT)y8X}H*D2Nzq^WE%q)Tm7(Lp$I_`Z5$M@*8Hr6K6F~-y5|ERaHwGTH7`z zQ{aDpm+I~h)Y3v(l0v}VCAvF#ppKUs5AoB3zS#LMNd~i1WOn%7GAaw8#`B)()R5-W z#2f~nu@$*}Q4yd1+*TZ?OC0ogu^_M(ZuFQb#}!T*HGF~)#YUJ9q0wyx$4XAcu+t8NOH26cY_09&^KM&H?9Sq=-O4Kx|NmMLTTrI{ zvjXHG?XW1eU|8}n0GFY%6Lo$CN#SFD{r>lG7ko0;&!l1YC zjCpNKy4LaDP|G4NM@~J4TPD*9cLUfYekhzRR*B}HbI`w&;fpUpG(W#l<1FNoH~E&1wAlaZVjhs?St!VNV*T zDpDn?T$Mj7KUVHmT9u=enMyCk?}`hG{R+EchGLK+QQ;#0QNCBcQa)B*ERU26WT#|X zWiQHl%VK0I>0Rk@=_ctMX{EHA)KBue3Wf9EQ^6_ z9g01>*o$keCi5PhC)aABb4PW4JU!H>hi6&*xz*Su?|exYjOl5v4 z@&F(#!q>COB2xzO0<2kJoh1k0lQL1qeFbw7naoAN68D5oEb_5-7bYWJsBloJR#IN! zZOsrS;;-jE>g|pz53r`w`d<|R_*lEq?n}jJGUta$cv>ss5rs;vPGe0KhCF>kN7PQ3 zJQjJ%))ZPkEi4+pKAG;$2m=*;4OfI0^sy!p=i_2ut`!j>9~a{TfFyReE&^8t6~g?m zFuYmBv3$&Y%(0~YjJY{RAwG|3%xk=p8bwR@=zP50 zt&zg8r!QyNu(;YW)1b$>zK1{*$wt|oUhr*i|WrgTp zog2-y22&ANX}||*pd!!QApAfO#h%s$@;t2w0*c13*INT*1?B!XSu*y8+=wH>3k6v* zg_w?O@U>zI+D?U>M+z z2(algy@ESGYt$5Oxmb7rXD$`vy-La17N*1XNtg!$*C(c0O)h?oh`G@Lf?%r<_vrUxJxIVt!Jr@g_M=G(>3%`&{5hry1xC9QVcI$lc%1)h+ zn(?ke!t-2QPpU7m@)yscR%UMqUOb!Bk;%b4kHxcS{FlX^+{H7Q*Z1RvEuO(V*ciJ8 zC%e=$CqxgyUMJOM)h^Wws$x~Nim&`md0e?pIbGR9>8bcl(WZD)@dCEhP=!c-N8ToX zT|P^mD;LUc$PUZwvXQbRnTzzA^q_RUbfh#(>MeO7`Ao7yvQ#ooVwUK|KZ`#RzbT#~ z9wd$zt3|g&Cq$b>3q(Uj$s!H*Q|Hsd?LwQdQkW!k75pUlT)(>-};RYGdOSVo63+CE_$@y||1lMLjvIagMA6pPr zUB(i!1ycRx;s7ottYOOo zTcEf32s79vB?bi!&jMJjYG%s|0KFE=9rQk)QpVGR5Q|4dk3V=)tONh$H|-I?_Qs!)tTfxr9MU`iy)_2EU>F!$b%1s-K{rL29rD4q@i!j4uf zaGNvj4o~*Rt6~Hhk&N{NAAtJF*zIjfI&8r1=5J%4Mt?zoO)kVfHW?$fEB6#Y`ry)W z^)R*%8~ZqdRWUD2C`htNgf+}n!FB3{))|)(0869BDHbHift`O(5h?Mv37J*kd<7ZJs?>lh_vyA1F7hEF=)F}E$&>H0poKF#joR1^@q%_<1m*D!ZaCoJ>V0bkKCW8kk#_V6CT^hl&KA!8(WL^00e^!4{u=B+b>xey|)V#wI_D>W(m* z{7h=YOX0bnL2dUHzPt$QbY?5mk?ALi60a6!okooxtw1sS{%r=PNJV?;s%GJ9&=VILj`fx2|_q{vqz8*q+l(METqYXBnz;Mjb{!X zj6!BuR9tHvjh|r&=38rp@ibnVtHs9RZG}ZFZgGfptgsJVjeV6;kgGnp5xp}8|HkzDI2c5|^W5sSIy75@)qm8VSr delta 686 zcmWmATS${}9LDjzhq<}mZ~Jc@Oq7Axsfl9c3O={Fx#kQi|l_TsOY z5P9)Md=l@)8}U*+7mvk=6RIsv2b@?&E7j7Yc|Qa|KoCMO2`0l7mo z>}WpP?CtZEq1kXb{5^WkU8qZHPWV@J+ke+QYtue=ES|>fGkvQG%T%L&b zXu2MELNVj8p6(VFG(r=sgJxI{8=wU?!Y0@ZTVN}+!Zz3rJ0J!-p$&GyZfJ)+uopUD tAMA$%&= \"3\"", - "django-multi-email-field==0.8.0", "code-annotations==3.0.0", "pymongo==4.4.0", - "cryptography==48.0.0", "tox==4.53.1", "cachetools==7.1.1", "pyyaml==6.0.3", - "requests==2.33.1", "ddt==1.3.1", "stevedore==5.7.0", "platformdirs==4.9.6", - "pylint==3.3.9", "click-repl==0.3.0", "text-unidecode==1.3", "pyproject-hooks==1.2.0", - "pynacl==1.6.2", "requests-toolbelt==1.0.0", "hyperframe==6.1.0", "pycodestyle==2.14.0", - "pylint-celery==0.3", "jsonfield==3.2.0", "pydocstyle==6.3.0", "h11==0.16.0", - "djangorestframework-xml==2.0.0", "jsondiff==2.2.1", "pylint-plugin-utils==0.9.0", - "urllib3==2.7.0", "sphinxcontrib-serializinghtml==2.0.0", "edx-lint==6.1.0", - "h2==4.3.0", "testfixtures==11.0.0", "tincan==1.0.0", "anyio==4.13.0", - "typing-extensions==4.15.0", "defusedxml==0.7.1", "astroid==3.3.11", "google-crc32c==1.8.0", - "psutil==7.2.2", "click==8.3.3", "simplejson==4.1.1", "django-cache-memoize==0.2.1", - "docutils==0.21.2", "google-cloud-storage==3.10.1", "python3-saml==1.16.0", - "edx-i18n-tools==2.0.0", "pip-tools==7.5.3", "idna==3.13", "firebase-admin==7.4.0", - "vine==5.1.0", "pyproject-api==1.10.0", "edx-opaque-keys[django]==4.0.0", - "proto-plus==1.28.0", "tzdata==2026.2", "pkginfo==1.12.1.2", "inflection==0.5.1", - "twine==1.11.0", "chardet==7.4.3", "django-crum==0.7.9", "accessible-pygments==0.0.5", - "click-plugins==1.1.1.2", "dill==0.4.1", "beautifulsoup4==4.14.3", "django-filter==25.2", - "google-cloud-firestore==2.27.0", "celery==5.6.3", "unicodecsv==0.14.1", - "polib==1.2.0", "oauthlib==3.3.1", "build==1.5.0", "tomlkit==0.15.0", - "httpcore==1.0.9", "python-discovery==1.3.0", "wcwidth==0.7.0", "drf-yasg==1.21.15", - "django-mock-queries==2.3.0", "babel==2.18.0", "pgpy==0.6.0", "distlib==0.4.0", - "sqlparse==0.5.5", "alabaster==1.0.0", "dnspython==2.8.0", "responses==0.26.0", - "django-oauth-toolkit==1.7.1", "edx-django-utils==8.0.1", "asgiref==3.11.1", - "google-cloud-core==2.6.0", "webencodings==0.5.1", "nh3==0.3.5", "coverage[toml]==7.14.0", - "openedx-events==11.2.0", "isodate==0.7.2", "cffi==2.0.0", "django-countries==8.2.0", - "edx-rest-api-client==7.0.0", "path==16.11.0", "pylint-django==2.7.0", - "click-didyoumean==0.3.1", "google-auth==2.52.0", "model-bakery==1.23.4", - "attrs==26.1.0", "charset-normalizer==3.4.7", "msgpack==1.1.2", "kombu==5.6.2", - "prompt-toolkit==3.0.52", "sphinxcontrib-devhelp==2.0.0", "bcrypt==5.0.0", - "pytest-django==4.12.0", "filelock==3.29.0", "click-log==0.4.0", "semantic-version==2.10.0", - "uritemplate==4.2.0", "freezegun==1.5.5", "grpcio==1.80.0", "tomli-w==1.2.0", - "readme-renderer==44.0", "aniso8601==10.0.1", "edx-rbac==3.0.0", "edx-ace==1.15.0", - "google-resumable-media==2.9.0", "edx-toggles==6.0.0", "six==1.17.0", - "tqdm==4.67.3", "django-simple-history==3.11.0", "pygments==2.20.0", "sphinxcontrib-jsmath==1.0.1", - "billiard==4.2.4", "cachecontrol==0.14.4", "iniconfig==2.3.0", "snowballstemmer==3.0.1", - "openedx-filters==3.3.0", "sphinxcontrib-htmlhelp==2.1.0", "edx-braze-client==1.1.3", - "factory-boy==3.3.3", "fastavro==1.12.2", "mock==5.2.0", "pytz==2026.2", - "restructuredtext-lint==2.0.2", "invoke==3.0.3", "certifi==2026.4.22", - "virtualenv==21.3.1", "soupsieve==2.8.3", "isort==6.1.0", "pycparser==3.0", - "path-py==12.5.0", "roman-numerals-py==4.1.0", "bleach==6.3.0", "wheel==0.47.0", - "django-model-utils==5.0.0", "jinja2==3.1.6", "django-push-notifications==3.3.0", - "python-dateutil==2.9.0.post0", "pyjwt[crypto]==2.12.1", "googleapis-common-protos==1.75.0", - "colorama==0.4.6", "httpx[http2]==0.28.1", "faker==40.15.0"]' + list: '["lxml[html-clean]==5.3.2", "google-api-core[grpc]==2.30.3", "pyasn1-modules==0.4.2", + "httpcore==1.0.9", "typing-extensions==4.15.0", "django-model-utils==5.0.0", + "googleapis-common-protos==1.75.0", "httpx[http2]==0.28.1", "tqdm==4.67.3", + "python-discovery==1.3.0", "urllib3==2.7.0", "pynacl==1.6.2", "edx-ace==1.15.0", + "pytest==9.0.3", "simplejson==4.1.1", "edx-lint==6.1.0", "tincan==1.0.0", + "path==16.11.0", "pylint-celery==0.3", "doc8==2.0.0", "fastavro==1.12.2", + "python3-saml==1.16.0", "inflection==0.5.1", "bleach==6.3.0", "pytest-cov==7.1.0", + "attrs==26.1.0", "google-cloud-core==2.6.0", "rules==3.5", "h2==4.3.0", + "colorama==0.4.6", "defusedxml==0.7.1", "django-waffle==5.0.0", "vine==5.1.0", + "click-plugins==1.1.1.2", "openedx-atlas==0.7.0", "google-cloud-storage==3.10.1", + "model-bakery==1.23.4", "pytest-django==4.12.0", "mccabe==0.7.0", "sphinx-book-theme==1.2.0", + "faker==40.15.0", "edx-rest-api-client==7.0.0", "djangorestframework==3.17.1", + "imagesize==2.0.0", "factory-boy==3.3.3", "django-mock-queries==2.3.0", + "pluggy==1.6.0", "ddt==1.3.1", "virtualenv==21.3.1", "click-didyoumean==0.3.1", + "psutil==7.2.2", "tox==4.53.1", "cachetools==7.1.1", "distlib==0.4.0", + "google-resumable-media==2.9.0", "pycparser==3.0", "pylint-django==2.7.0", + "celery==5.6.3", "tomli-w==1.2.0", "anyio==4.13.0", "sphinxcontrib-applehelp==2.0.0", + "click-repl==0.3.0", "google-auth==2.52.0", "amqp==5.3.1", "django-config-models==3.0.0", + "edx-api-doc-tools==3.0.0", "nh3==0.3.5", "snowballstemmer==3.0.1", "pymongo==4.4.0", + "django-oauth-toolkit==1.7.1", "google-crc32c==1.8.0", "pyproject-hooks==1.2.0", + "edx-opaque-keys[django]==4.0.0", "accessible-pygments==0.0.5", "hyperframe==6.1.0", + "django-filter==25.2", "click==8.3.3", "pyjwt[crypto]==2.12.1", "pylint==3.3.9", + "polib==1.2.0", "python-ipware==3.0.0", "edx-rbac==3.0.0", "isort==6.1.0", + "pyasn1==0.6.3", "pyyaml==6.0.3", "python3-openid==3.2.0 ; python_version + >= \"3\"", "jwcrypto==1.5.7", "slumber==0.7.1", "alabaster==1.0.0", "sailthru-client==2.2.3", + "sqlparse==0.5.5", "unicodecsv==0.14.1", "edx-django-utils==8.0.1", "certifi==2026.4.22", + "kombu==5.6.2", "google-cloud-firestore==2.27.0", "cffi==2.0.0", "hpack==4.1.0", + "social-auth-core==4.9.1", "openedx-filters==3.3.0", "freezegun==1.5.5", + "restructuredtext-lint==2.0.2", "wheel==0.47.0", "pyproject-api==1.10.0", + "openedx-events==11.2.0", "markupsafe==3.0.3", "soupsieve==2.8.3", "wcwidth==0.7.0", + "xmlsec==1.3.14", "sphinxcontrib-htmlhelp==2.1.0", "build==1.5.0", "django-fernet-fields-v2==0.9", + "dnspython==2.8.0", "requests-toolbelt==1.0.0", "jsondiff==2.2.1", "drf-jwt==1.19.2", + "click-log==0.4.0", "jsonfield==3.2.0", "twine==1.11.0", "idna==3.13", + "coverage[toml]==7.14.0", "cryptography==48.0.0", "diff-cover==10.2.0", + "text-unidecode==1.3", "semantic-version==2.10.0", "code-annotations==3.0.0", + "oauthlib==3.3.1", "tzlocal==5.3.1", "edx-ccx-keys==2.0.2", "django-push-notifications==3.3.0", + "pip-tools==7.5.3", "protobuf==6.33.6", "dill==0.4.1", "roman-numerals-py==4.1.0", + "six==1.17.0", "aniso8601==10.0.1", "path-py==12.5.0", "requests==2.33.1", + "tomlkit==0.15.0", "sphinx==8.2.3", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-qthelp==2.0.0", + "asgiref==3.11.1", "cachecontrol==0.14.4", "webencodings==0.5.1", "python-dateutil==2.9.0.post0", + "astroid==3.3.11", "firebase-admin==7.4.0", "django-crum==0.7.9", "grpcio-status==1.80.0", + "responses==0.26.0", "roman-numerals==4.1.0", "filelock==3.29.0", "pygments==2.20.0", + "edx-drf-extensions==10.6.0", "django-ipware==7.0.1", "iniconfig==2.3.0", + "h11==0.16.0", "pgpy==0.6.0", "django-simple-history==3.11.0", "requests-oauthlib==2.0.0", + "beautifulsoup4==4.14.3", "pydocstyle==6.3.0", "social-auth-app-django==5.4.1", + "grpcio==1.80.0", "sphinxcontrib-serializinghtml==2.0.0", "prompt-toolkit==3.0.52", + "drf-yasg==1.21.15", "pylint-plugin-utils==0.9.0", "pkginfo==1.12.1.2", + "testfixtures==11.0.0", "django==5.2.14", "bcrypt==5.0.0", "django-countries==8.2.0", + "pytz==2026.2", "babel==2.18.0", "proto-plus==1.28.0", "jinja2==3.1.6", + "stevedore==5.7.0", "packaging==26.2", "pycodestyle==2.14.0", "isodate==0.7.2", + "django-object-actions==5.0.1", "djangorestframework-xml==2.0.0", "paramiko==4.0.0", + "docutils==0.21.2", "python-slugify==8.0.4", "billiard==4.2.4", "charset-normalizer==3.4.7", + "sphinxcontrib-devhelp==2.0.0", "chardet==7.4.3", "django-cache-memoize==0.2.1", + "django-multi-email-field==0.8.0", "lxml-html-clean==0.4.4", "pydata-sphinx-theme==0.16.1", + "invoke==3.0.3", "edx-i18n-tools==2.0.0", "tzdata==2026.2", "edx-toggles==6.0.0", + "platformdirs==4.9.6", "edx-braze-client==1.1.3", "mock==5.2.0", "pillow==12.2.0", + "uritemplate==4.2.0", "readme-renderer==44.0", "msgpack==1.1.2"]' pypi_all: count: 243 - list: '["xmlsec==1.3.14", "shellingham==1.5.4", "django-config-models==3.0.0", - "python-ipware==3.0.0", "jasmine==3.99.0", "pluggy==1.6.0", "amqp==5.3.1", - "google-api-core[grpc]==2.30.3", "doc8==2.0.0", "pydata-sphinx-theme==0.16.1", - "lxml-html-clean==0.4.4", "pillow==12.2.0", "python-slugify==8.0.4", "markupsafe==3.0.3", - "packaging==26.2", "django-fernet-fields-v2==0.9", "django-ipware==7.0.1", - "djangorestframework==3.17.1", "sailthru-client==2.2.3", "glob2==0.7", - "django==5.2.14", "roman-numerals==4.1.0", "sphinxcontrib-applehelp==2.0.0", - "social-auth-core==4.9.1", "imagesize==2.0.0", "pyasn1-modules==0.4.2", - "jwcrypto==1.5.7", "requests-oauthlib==2.0.0", "sphinxcontrib-qthelp==2.0.0", - "sphinx==8.2.3", "zc-lockfile==4.0", "rules==3.5", "django-object-actions==5.0.1", - "protobuf==6.33.6", "pytest-cov==7.1.0", "jaraco-collections==5.2.1", - "tzlocal==5.3.1", "drf-jwt==1.19.2", "edx-ccx-keys==2.0.2", "pyasn1==0.6.3", - "diff-cover==10.2.0", "mccabe==0.7.0", "edx-api-doc-tools==3.0.0", "hpack==4.1.0", - "lxml[html-clean]==5.3.2", "django-waffle==5.0.0", "paramiko==4.0.0", - "social-auth-app-django==5.4.1", "sphinx-book-theme==1.2.0", "pytest==9.0.3", - "edx-drf-extensions==10.6.0", "openedx-atlas==0.7.0", "slumber==0.7.1", - "setuptools==82.0.1", "grpcio-status==1.80.0", "python3-openid==3.2.0 - ; python_version >= \"3\"", "django-multi-email-field==0.8.0", "code-annotations==3.0.0", - "pymongo==4.4.0", "cryptography==48.0.0", "tox==4.53.1", "cachetools==7.1.1", - "pyyaml==6.0.3", "requests==2.33.1", "ddt==1.3.1", "stevedore==5.7.0", - "platformdirs==4.9.6", "urllib3[socks]==2.7.0", "pylint==3.3.9", "click-repl==0.3.0", - "typer==0.25.1", "text-unidecode==1.3", "pyproject-hooks==1.2.0", "pynacl==1.6.2", - "sniffio==1.3.1", "requests-toolbelt==1.0.0", "hyperframe==6.1.0", "pycodestyle==2.14.0", - "pylint-celery==0.3", "jsonfield==3.2.0", "pydocstyle==6.3.0", "h11==0.16.0", - "djangorestframework-xml==2.0.0", "jsondiff==2.2.1", "pylint-plugin-utils==0.9.0", - "urllib3==2.7.0", "sphinxcontrib-serializinghtml==2.0.0", "edx-lint==6.1.0", - "markdown-it-py==4.2.0", "h2==4.3.0", "jasmine-core==3.99.0", "testfixtures==11.0.0", - "tincan==1.0.0", "anyio==4.13.0", "typing-extensions==4.15.0", "defusedxml==0.7.1", - "astroid==3.3.11", "google-crc32c==1.8.0", "pip==26.1.1", "psutil==7.2.2", - "selenium==4.43.0", "click==8.3.3", "simplejson==4.1.1", "django-cache-memoize==0.2.1", - "docutils==0.21.2", "google-cloud-storage==3.10.1", "python3-saml==1.16.0", - "lxml==5.3.2", "more-itertools==11.0.2", "websocket-client==1.9.0", "edx-i18n-tools==2.0.0", - "pip-tools==7.5.3", "idna==3.13", "firebase-admin==7.4.0", "vine==5.1.0", - "pyproject-api==1.10.0", "outcome==1.3.0.post0", "edx-opaque-keys[django]==4.0.0", - "proto-plus==1.28.0", "tzdata==2026.2", "ordereddict==1.1", "pkginfo==1.12.1.2", - "inflection==0.5.1", "twine==1.11.0", "chardet==7.4.3", "django-crum==0.7.9", - "accessible-pygments==0.0.5", "click-plugins==1.1.1.2", "idna==3.14", - "dill==0.4.1", "beautifulsoup4==4.14.3", "django-filter==25.2", "google-cloud-firestore==2.27.0", - "celery==5.6.3", "unicodecsv==0.14.1", "polib==1.2.0", "oauthlib==3.3.1", - "build==1.5.0", "annotated-doc==0.0.4", "tomlkit==0.15.0", "httpcore==1.0.9", - "python-discovery==1.3.0", "wsproto==1.3.2", "wcwidth==0.7.0", "drf-yasg==1.21.15", - "django-mock-queries==2.3.0", "babel==2.18.0", "jaraco-text==4.2.0", "pgpy==0.6.0", - "distlib==0.4.0", "sqlparse==0.5.5", "alabaster==1.0.0", "dnspython==2.8.0", - "responses==0.26.0", "django-oauth-toolkit==1.7.1", "edx-django-utils==8.0.1", - "asgiref==3.11.1", "google-cloud-core==2.6.0", "webencodings==0.5.1", - "nh3==0.3.5", "rich==15.0.0", "coverage[toml]==7.14.0", "openedx-events==11.2.0", - "isodate==0.7.2", "cffi==2.0.0", "django-countries==8.2.0", "edx-rest-api-client==7.0.0", - "path==16.11.0", "pylint-django==2.7.0", "jaraco-classes==3.4.0", "click-didyoumean==0.3.1", - "google-auth==2.52.0", "model-bakery==1.23.4", "jaraco-functools==4.4.0", - "cheroot==11.1.2", "attrs==26.1.0", "jinja2==2.11.3", "charset-normalizer==3.4.7", - "msgpack==1.1.2", "kombu==5.6.2", "prompt-toolkit==3.0.52", "pysocks==1.7.1", - "sphinxcontrib-devhelp==2.0.0", "mdurl==0.1.2", "bcrypt==5.0.0", "pytest-django==4.12.0", - "filelock==3.29.0", "click-log==0.4.0", "semantic-version==2.10.0", "typer-slim==0.24.0", - "uritemplate==4.2.0", "sortedcontainers==2.4.0", "freezegun==1.5.5", "grpcio==1.80.0", - "tomli-w==1.2.0", "readme-renderer==44.0", "aniso8601==10.0.1", "edx-rbac==3.0.0", - "edx-ace==1.15.0", "jaraco-context==6.1.2", "google-resumable-media==2.9.0", - "edx-toggles==6.0.0", "trio==0.33.0", "six==1.17.0", "tqdm==4.67.3", "django-simple-history==3.11.0", - "pygments==2.20.0", "sphinxcontrib-jsmath==1.0.1", "billiard==4.2.4", - "cachecontrol==0.14.4", "iniconfig==2.3.0", "snowballstemmer==3.0.1", - "openedx-filters==3.3.0", "sphinxcontrib-htmlhelp==2.1.0", "edx-braze-client==1.1.3", - "factory-boy==3.3.3", "fastavro==1.12.2", "mock==5.2.0", "pytz==2026.2", - "restructuredtext-lint==2.0.2", "tempora==5.9.0", "trio-websocket==0.12.2", - "invoke==3.0.3", "certifi==2026.4.22", "virtualenv==21.3.1", "soupsieve==2.8.3", - "isort==6.1.0", "pycparser==3.0", "path-py==12.5.0", "roman-numerals-py==4.1.0", - "portend==3.2.1", "bleach==6.3.0", "wheel==0.47.0", "django-model-utils==5.0.0", - "jinja2==3.1.6", "django-push-notifications==3.3.0", "python-dateutil==2.9.0.post0", - "pyjwt[crypto]==2.12.1", "googleapis-common-protos==1.75.0", "colorama==0.4.6", - "httpx[http2]==0.28.1", "faker==40.15.0", "cherrypy==18.10.0"]' + list: '["jaraco-classes==3.4.0", "annotated-doc==0.0.4", "lxml[html-clean]==5.3.2", + "google-api-core[grpc]==2.30.3", "pyasn1-modules==0.4.2", "httpcore==1.0.9", + "typing-extensions==4.15.0", "django-model-utils==5.0.0", "googleapis-common-protos==1.75.0", + "httpx[http2]==0.28.1", "tqdm==4.67.3", "python-discovery==1.3.0", "urllib3==2.7.0", + "mdurl==0.1.2", "pynacl==1.6.2", "trio==0.33.0", "edx-ace==1.15.0", "pytest==9.0.3", + "simplejson==4.1.1", "glob2==0.7", "edx-lint==6.1.0", "portend==3.2.1", + "tempora==5.9.0", "tincan==1.0.0", "path==16.11.0", "pylint-celery==0.3", + "doc8==2.0.0", "fastavro==1.12.2", "python3-saml==1.16.0", "inflection==0.5.1", + "bleach==6.3.0", "pytest-cov==7.1.0", "attrs==26.1.0", "google-cloud-core==2.6.0", + "rules==3.5", "h2==4.3.0", "typer-slim==0.24.0", "colorama==0.4.6", "defusedxml==0.7.1", + "django-waffle==5.0.0", "vine==5.1.0", "click-plugins==1.1.1.2", "openedx-atlas==0.7.0", + "more-itertools==11.0.2", "google-cloud-storage==3.10.1", "model-bakery==1.23.4", + "pytest-django==4.12.0", "mccabe==0.7.0", "sphinx-book-theme==1.2.0", + "jaraco-text==4.2.0", "trio-websocket==0.12.2", "faker==40.15.0", "edx-rest-api-client==7.0.0", + "djangorestframework==3.17.1", "imagesize==2.0.0", "factory-boy==3.3.3", + "django-mock-queries==2.3.0", "pluggy==1.6.0", "ddt==1.3.1", "lxml==5.3.2", + "virtualenv==21.3.1", "click-didyoumean==0.3.1", "psutil==7.2.2", "tox==4.53.1", + "wsproto==1.3.2", "selenium==4.43.0", "cachetools==7.1.1", "distlib==0.4.0", + "google-resumable-media==2.9.0", "pycparser==3.0", "pylint-django==2.7.0", + "celery==5.6.3", "tomli-w==1.2.0", "anyio==4.13.0", "sphinxcontrib-applehelp==2.0.0", + "sniffio==1.3.1", "click-repl==0.3.0", "google-auth==2.52.0", "jaraco-collections==5.2.1", + "amqp==5.3.1", "django-config-models==3.0.0", "edx-api-doc-tools==3.0.0", + "nh3==0.3.5", "snowballstemmer==3.0.1", "pymongo==4.4.0", "django-oauth-toolkit==1.7.1", + "google-crc32c==1.8.0", "pyproject-hooks==1.2.0", "edx-opaque-keys[django]==4.0.0", + "accessible-pygments==0.0.5", "hyperframe==6.1.0", "django-filter==25.2", + "click==8.3.3", "pyjwt[crypto]==2.12.1", "pylint==3.3.9", "polib==1.2.0", + "python-ipware==3.0.0", "edx-rbac==3.0.0", "isort==6.1.0", "setuptools==82.0.1", + "pyasn1==0.6.3", "pyyaml==6.0.3", "python3-openid==3.2.0 ; python_version + >= \"3\"", "jwcrypto==1.5.7", "slumber==0.7.1", "alabaster==1.0.0", "sailthru-client==2.2.3", + "sqlparse==0.5.5", "unicodecsv==0.14.1", "edx-django-utils==8.0.1", "certifi==2026.4.22", + "ordereddict==1.1", "kombu==5.6.2", "google-cloud-firestore==2.27.0", + "cffi==2.0.0", "hpack==4.1.0", "social-auth-core==4.9.1", "cherrypy==18.10.0", + "openedx-filters==3.3.0", "freezegun==1.5.5", "restructuredtext-lint==2.0.2", + "wheel==0.47.0", "cheroot==11.1.2", "pyproject-api==1.10.0", "openedx-events==11.2.0", + "markupsafe==3.0.3", "soupsieve==2.8.3", "wcwidth==0.7.0", "xmlsec==1.3.14", + "sphinxcontrib-htmlhelp==2.1.0", "typer==0.25.1", "build==1.5.0", "django-fernet-fields-v2==0.9", + "dnspython==2.8.0", "requests-toolbelt==1.0.0", "jsondiff==2.2.1", "drf-jwt==1.19.2", + "click-log==0.4.0", "jsonfield==3.2.0", "twine==1.11.0", "urllib3[socks]==2.7.0", + "idna==3.13", "coverage[toml]==7.14.0", "cryptography==48.0.0", "diff-cover==10.2.0", + "text-unidecode==1.3", "semantic-version==2.10.0", "code-annotations==3.0.0", + "oauthlib==3.3.1", "tzlocal==5.3.1", "jaraco-functools==4.4.0", "edx-ccx-keys==2.0.2", + "django-push-notifications==3.3.0", "pip==26.1.1", "shellingham==1.5.4", + "pip-tools==7.5.3", "protobuf==6.33.6", "jaraco-context==6.1.2", "jasmine-core==3.99.0", + "dill==0.4.1", "roman-numerals-py==4.1.0", "six==1.17.0", "aniso8601==10.0.1", + "path-py==12.5.0", "requests==2.33.1", "tomlkit==0.15.0", "sphinx==8.2.3", + "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-qthelp==2.0.0", "asgiref==3.11.1", + "cachecontrol==0.14.4", "webencodings==0.5.1", "pysocks==1.7.1", "python-dateutil==2.9.0.post0", + "astroid==3.3.11", "firebase-admin==7.4.0", "django-crum==0.7.9", "grpcio-status==1.80.0", + "responses==0.26.0", "roman-numerals==4.1.0", "filelock==3.29.0", "pygments==2.20.0", + "edx-drf-extensions==10.6.0", "django-ipware==7.0.1", "iniconfig==2.3.0", + "h11==0.16.0", "outcome==1.3.0.post0", "pgpy==0.6.0", "django-simple-history==3.11.0", + "idna==3.14", "requests-oauthlib==2.0.0", "beautifulsoup4==4.14.3", "pydocstyle==6.3.0", + "social-auth-app-django==5.4.1", "grpcio==1.80.0", "sphinxcontrib-serializinghtml==2.0.0", + "prompt-toolkit==3.0.52", "drf-yasg==1.21.15", "pylint-plugin-utils==0.9.0", + "pkginfo==1.12.1.2", "testfixtures==11.0.0", "markdown-it-py==4.2.0", + "django==5.2.14", "bcrypt==5.0.0", "django-countries==8.2.0", "pytz==2026.2", + "babel==2.18.0", "proto-plus==1.28.0", "jinja2==3.1.6", "stevedore==5.7.0", + "packaging==26.2", "pycodestyle==2.14.0", "isodate==0.7.2", "django-object-actions==5.0.1", + "djangorestframework-xml==2.0.0", "paramiko==4.0.0", "docutils==0.21.2", + "python-slugify==8.0.4", "billiard==4.2.4", "charset-normalizer==3.4.7", + "sphinxcontrib-devhelp==2.0.0", "chardet==7.4.3", "django-cache-memoize==0.2.1", + "django-multi-email-field==0.8.0", "lxml-html-clean==0.4.4", "pydata-sphinx-theme==0.16.1", + "invoke==3.0.3", "jasmine==3.99.0", "websocket-client==1.9.0", "edx-i18n-tools==2.0.0", + "tzdata==2026.2", "edx-toggles==6.0.0", "sortedcontainers==2.4.0", "zc-lockfile==4.0", + "platformdirs==4.9.6", "edx-braze-client==1.1.3", "mock==5.2.0", "rich==15.0.0", + "pillow==12.2.0", "uritemplate==4.2.0", "jinja2==2.11.3", "readme-renderer==44.0", + "msgpack==1.1.2"]' django_packages: django_42: count: 22 - list: '["code-annotations", "django-countries", "edx-api-doc-tools", "pylint-django", - "django-multi-email-field", "edx-rest-api-client", "django-cache-memoize", - "social-auth-app-django", "edx-toggles", "djangorestframework", "django-config-models", - "django-object-actions", "edx-ace", "factory-boy", "edx-django-utils", - "pytest-django", "django-waffle", "django-oauth-toolkit", "django-filter", - "edx-drf-extensions", "edx-rbac", "edx-i18n-tools"]' + list: '["code-annotations", "django-multi-email-field", "edx-api-doc-tools", + "pylint-django", "edx-ace", "factory-boy", "pytest-django", "django-waffle", + "social-auth-app-django", "django-countries", "django-object-actions", + "django-cache-memoize", "edx-drf-extensions", "edx-toggles", "edx-rest-api-client", + "edx-django-utils", "edx-rbac", "edx-i18n-tools", "djangorestframework", + "django-config-models", "django-oauth-toolkit", "django-filter"]' total: count: 32 - list: '["code-annotations", "django-countries", "edx-api-doc-tools", "pylint-django", - "django-model-utils", "django-multi-email-field", "edx-rest-api-client", - "django-crum", "drf-yasg", "drf-jwt", "django-cache-memoize", "social-auth-app-django", - "edx-toggles", "django-simple-history", "django-ipware", "djangorestframework", - "django-config-models", "django-object-actions", "edx-ace", "factory-boy", - "rules", "jasmine-core", "djangorestframework-xml", "edx-django-utils", - "pytest-django", "django-waffle", "django-oauth-toolkit", "django-filter", - "edx-drf-extensions", "edx-rbac", "edx-i18n-tools", "jsonfield"]' + list: '["code-annotations", "django-multi-email-field", "edx-api-doc-tools", + "django-ipware", "django-crum", "pylint-django", "edx-ace", "factory-boy", + "drf-jwt", "pytest-django", "django-waffle", "drf-yasg", "jsonfield", + "social-auth-app-django", "djangorestframework-xml", "django-countries", + "django-model-utils", "django-object-actions", "django-cache-memoize", + "edx-drf-extensions", "edx-toggles", "edx-rest-api-client", "django-simple-history", + "rules", "edx-django-utils", "edx-rbac", "edx-i18n-tools", "jasmine-core", + "djangorestframework", "django-config-models", "django-oauth-toolkit", + "django-filter"]' upgraded: count: 16 - list: '["edx-rest-api-client", "edx-ace", "django-waffle", "django-cache-memoize", - "code-annotations", "django-countries", "social-auth-app-django", "edx-api-doc-tools", - "django-filter", "edx-drf-extensions", "edx-rbac", "edx-toggles", "edx-i18n-tools", - "django-multi-email-field", "edx-django-utils", "django-config-models"]' + list: '["django-countries", "code-annotations", "edx-django-utils", "django-cache-memoize", + "edx-ace", "edx-drf-extensions", "edx-toggles", "edx-rbac", "django-multi-email-field", + "edx-api-doc-tools", "django-waffle", "edx-rest-api-client", "edx-i18n-tools", + "django-config-models", "social-auth-app-django", "django-filter"]' docs: build_badge: true python_version: null @@ -205,26 +204,26 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 347 - build_details: '{"total_duration": "489 minutes 49 seconds", "checks": [{"name": - "run_tests (3.12, django52)", "duration": "13 minutes 34 seconds"}, {"name": - "run_tests (3.12, quality)", "duration": "3 minutes 54 seconds"}, {"name": - "check migrations (ubuntu-latest, 3.12)", "duration": "2 minutes 27 seconds"}, - {"name": "run_tests (3.12, docs)", "duration": "1 minutes 56 seconds"}, {"name": - "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 52 seconds"}, {"name": "run_tests (3.12, pii_check)", "duration": - "0 minutes 54 seconds"}, {"name": "Dependabot", "duration": "0 minutes 41 - seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": - "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "version-check - / version-check", "duration": "0 minutes 4 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}]}' + branch_count: 350 + build_details: '{"total_duration": "799 minutes 35 seconds", "checks": [{"name": + "run_tests (3.12, django52)", "duration": "13 minutes 42 seconds"}, {"name": + "run_tests (3.12, quality)", "duration": "3 minutes 12 seconds"}, {"name": + "check migrations (ubuntu-latest, 3.12)", "duration": "2 minutes 22 seconds"}, + {"name": "run_tests (3.12, docs)", "duration": "2 minutes 8 seconds"}, {"name": + "run_tests (3.12, pii_check)", "duration": "1 minutes 0 seconds"}, {"name": + "Dependabot", "duration": "0 minutes 44 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, + {"name": "version-check / version-check", "duration": "0 minutes 7 seconds"}, + {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 + seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes + 54 seconds"}]}' code_of_conduct: Other created_at: 2016-10-12 13:48:42 default_branch: master description: '' - disk_usage_kb: 16037 + disk_usage_kb: 15891 fork_count: 71 has_issues: true has_wiki: false @@ -233,9 +232,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:14:40 + last_push: 2026-06-08 04:59:26 license: GNU AGPLv3 - pulls_count: 82 + pulls_count: 86 github_actions: true language_bytes: css: 0 @@ -243,7 +242,7 @@ language_bytes: html: 95485 javascript: 36447 makefile: 10718 - python: 5774202 + python: 5772901 shell: 604 makefile: pip-installed: true @@ -263,6 +262,7 @@ readme: - 'https://github.com/openedx/edx-enterprise/blob/master/LICENSE.txt: 404' - 'https://github.com/openedx/edx-enterprise/blob/master/.github/PULL_REQUEST_TEMPLATE_TEMPLATE.md: 404' + - 'https://openedx.org/getting-help: 403' getting-help: true good_links: - https://img.shields.io/pypi/v/edx-enterprise.svg @@ -274,7 +274,6 @@ readme: - https://img.shields.io/pypi/pyversions/edx-enterprise.svg - https://img.shields.io/github/license/edx/edx-enterprise.svg - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - - https://openedx.org/getting-help irc-missing: true mailing-list-missing: true security: false @@ -316,17 +315,17 @@ travis_yml: ubuntu_packages: apt_get_packages: [] docker_packages: - - python3.12-dev + - curl - build-essential - - default-libmysqlclient-dev - - locales + - python3.12-dev - install - - curl + - locales - python3.12-venv - gcc - - pkg-config - - language-pack-en - - python3.12 + - default-libmysqlclient-dev - git - libssl-dev + - language-pack-en + - python3.12 + - pkg-config yml_files: '[]' diff --git a/individual_repo_data/openedx/edx-lint_repo_health.yaml b/individual_repo_data/openedx/edx-lint_repo_health.yaml index f47f1cf0..d1f29d36 100644 --- a/individual_repo_data/openedx/edx-lint_repo_health.yaml +++ b/individual_repo_data/openedx/edx-lint_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,33 +22,32 @@ dependencies: list: '' pypi: count: 20 - list: '["mccabe==0.7.0", "pylint==4.0.5", "text-unidecode==1.3", "jinja2==3.1.6", - "astroid==4.0.4", "markupsafe==3.0.3", "isort==8.0.1", "platformdirs==4.9.6", - "tomlkit==0.14.0", "pylint-celery==0.3", "pylint-django==2.7.0", "stevedore==5.7.0", - "python-slugify==8.0.4", "pylint-plugin-utils==0.9.0", "pyyaml==6.0.3", - "click==8.3.3", "code-annotations==3.0.0", "dill==0.4.1", "six==1.17.0", - "click-log==0.4.0"]' + list: '["pylint-django==2.7.0", "jinja2==3.1.6", "isort==8.0.1", "astroid==4.0.4", + "pylint-celery==0.3", "tomlkit==0.14.0", "six==1.17.0", "pylint-plugin-utils==0.9.0", + "platformdirs==4.9.6", "markupsafe==3.0.3", "pyyaml==6.0.3", "click-log==0.4.0", + "dill==0.4.1", "stevedore==5.7.0", "code-annotations==3.0.0", "text-unidecode==1.3", + "mccabe==0.7.0", "pylint==4.0.5", "click==8.3.3", "python-slugify==8.0.4"]' pypi_all: count: 49 - list: '["mccabe==0.7.0", "pylint==4.0.5", "text-unidecode==1.3", "jinja2==3.1.6", - "pip==24.2", "tox==4.53.0", "tomli-w==1.2.0", "wheel==0.47.0", "astroid==4.0.4", - "markupsafe==3.0.3", "pytest==9.0.3", "pluggy==1.6.0", "py==1.11.0", "isort==8.0.1", - "tox-battery==0.6.2", "platformdirs==4.9.6", "python-discovery==1.2.2", - "packaging==26.1", "tomlkit==0.14.0", "pyproject-hooks==1.2.0", "six==1.17.0", - "pylint-celery==0.3", "pylint-django==2.7.0", "pip-tools==7.5.3", "pip==26.0.1", - "asgiref==3.11.1", "setuptools==79.0.0", "stevedore==5.7.0", "sqlparse==0.5.5", - "tox==3.28.0", "python-slugify==8.0.4", "virtualenv==21.2.4", "distlib==0.4.0", - "filelock==3.29.0", "pylint-plugin-utils==0.9.0", "pyyaml==6.0.3", "click==8.3.3", - "cachetools==7.0.6", "code-annotations==3.0.0", "pygments==2.20.0", "colorama==0.4.6", - "iniconfig==2.3.0", "wheel==0.45.1", "pyproject-api==1.10.0", "coverage==7.13.5", - "dill==0.4.1", "build==1.4.4", "setuptools==82.0.1", "click-log==0.4.0"]' + list: '["filelock==3.29.0", "build==1.4.4", "python-discovery==1.2.2", "pluggy==1.6.0", + "pyproject-api==1.10.0", "pylint-django==2.7.0", "jinja2==3.1.6", "pip==26.0.1", + "tomli-w==1.2.0", "tox==4.53.0", "coverage==7.13.5", "pyproject-hooks==1.2.0", + "isort==8.0.1", "astroid==4.0.4", "pylint-celery==0.3", "tomlkit==0.14.0", + "cachetools==7.0.6", "asgiref==3.11.1", "six==1.17.0", "pip-tools==7.5.3", + "wheel==0.47.0", "wheel==0.45.1", "pylint-plugin-utils==0.9.0", "platformdirs==4.9.6", + "markupsafe==3.0.3", "pyyaml==6.0.3", "distlib==0.4.0", "virtualenv==21.2.4", + "sqlparse==0.5.5", "click-log==0.4.0", "setuptools==82.0.1", "dill==0.4.1", + "pygments==2.20.0", "stevedore==5.7.0", "colorama==0.4.6", "code-annotations==3.0.0", + "tox==3.28.0", "setuptools==79.0.0", "packaging==26.1", "text-unidecode==1.3", + "mccabe==0.7.0", "pylint==4.0.5", "click==8.3.3", "tox-battery==0.6.2", + "python-slugify==8.0.4", "py==1.11.0", "pytest==9.0.3", "pip==24.2", "iniconfig==2.3.0"]' django_packages: django_42: count: 2 - list: '["pylint-django", "code-annotations"]' + list: '["code-annotations", "pylint-django"]' total: count: 2 - list: '["pylint-django", "code-annotations"]' + list: '["code-annotations", "pylint-django"]' upgraded: count: 1 list: '["code-annotations"]' @@ -79,18 +78,23 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 30 - build_details: '{"total_duration": "2240 minutes 20 seconds", "checks": [{"name": + build_details: '{"total_duration": "12319 minutes 17 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "0 minutes 56 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", - "duration": "0 minutes 43 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - django52)", "duration": "0 minutes 38 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, pylint)", "duration": "0 minutes 32 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}]}' + "1 minutes 4 seconds"}, {"name": "call-upgrade-python-requirements-workflow + / upgrade_requirements", "duration": "0 minutes 56 seconds"}, {"name": "tests + (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 43 seconds"}, {"name": + "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 38 seconds"}, + {"name": "tests (ubuntu-latest, 3.12, pylint)", "duration": "0 minutes 32 + seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 + minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}]}' code_of_conduct: Other created_at: 2015-01-29 05:14:33 default_branch: master @@ -104,7 +108,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 04:34:53 + last_push: 2026-06-08 04:33:52 license: Apache License 2.0 pulls_count: 14 github_actions: true @@ -130,11 +134,11 @@ org_name: openedx ownership: {} pinned_python_dependencies: 1 readme: - bad_links: [] + bad_links: + - 'https://open.edx.org/getting-help: 403' getting-help: true good_links: - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - - https://open.edx.org/getting-help - https://github.com/openedx/edx-lint/workflows/Python%20CI/badge.svg?branch=master - https://github.com/openedx/edx-lint/actions?query=workflow%3A%22Python+CI%22 irc-missing: true diff --git a/individual_repo_data/openedx/edx-milestones_repo_health.yaml b/individual_repo_data/openedx/edx-milestones_repo_health.yaml index e6a06d4a..746b5675 100644 --- a/individual_repo_data/openedx/edx-milestones_repo_health.yaml +++ b/individual_repo_data/openedx/edx-milestones_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,34 +22,34 @@ dependencies: list: '' pypi: count: 11 - list: '["setuptools==82.0.0", "typing-extensions==4.15.0", "six==1.17.0", - "django-model-utils==5.0.0", "django==5.2.12", "sqlparse==0.5.5", "edx-opaque-keys==3.1.0", - "stevedore==5.7.0", "pymongo==4.16.0", "asgiref==3.11.1", "dnspython==2.8.0"]' + list: '["stevedore==5.7.0", "six==1.17.0", "django-model-utils==5.0.0", "asgiref==3.11.1", + "typing-extensions==4.15.0", "setuptools==82.0.0", "dnspython==2.8.0", + "sqlparse==0.5.5", "edx-opaque-keys==3.1.0", "pymongo==4.16.0", "django==5.2.12"]' pypi_all: count: 55 - list: '["edx-lint==5.6.0", "dill==0.4.1", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", - "pygments==2.19.2", "stevedore==5.7.0", "asgiref==3.11.1", "sqlparse==0.5.5", - "isort==8.0.1", "coverage[toml]==7.13.4", "pydocstyle==6.3.0", "platformdirs==4.9.4", - "pluggy==1.6.0", "pylint-celery==0.3", "tox==4.49.0", "tomlkit==0.14.0", - "setuptools==82.0.0", "pytest-django==4.12.0", "pyproject-api==1.10.0", - "typing-extensions==4.15.0", "pip==26.0.1", "snowballstemmer==3.0.1", - "click-log==0.4.0", "mccabe==0.7.0", "cachetools==7.0.3", "colorama==0.4.6", - "distlib==0.4.0", "pylint-django==2.7.0", "dnspython==2.8.0", "python-discovery==1.1.0", - "click==8.3.1", "markupsafe==3.0.3", "six==1.17.0", "wheel==0.46.3", "django-model-utils==5.0.0", - "jinja2==3.1.6", "edx-opaque-keys==3.1.0", "python-slugify==8.0.4", "pymongo==4.16.0", - "code-annotations==2.3.2", "text-unidecode==1.3", "pylint-plugin-utils==0.9.0", - "pytest==9.0.2", "iniconfig==2.3.0", "pip-tools==7.5.3", "pytest-cov==7.0.0", - "tomli-w==1.2.0", "pylint==4.0.5", "packaging==26.0", "astroid==4.0.4", - "django==5.2.12", "pyyaml==6.0.3", "build==1.4.0", "filelock==3.25.0", - "virtualenv==21.1.0"]' + list: '["pylint-django==2.7.0", "dill==0.4.1", "click-log==0.4.0", "dnspython==2.8.0", + "astroid==4.0.4", "pip-tools==7.5.3", "sqlparse==0.5.5", "cachetools==7.0.3", + "markupsafe==3.0.3", "tox==4.49.0", "virtualenv==21.1.0", "stevedore==5.7.0", + "pylint-plugin-utils==0.9.0", "build==1.4.0", "colorama==0.4.6", "packaging==26.0", + "pyyaml==6.0.3", "pytest-cov==7.0.0", "snowballstemmer==3.0.1", "mccabe==0.7.0", + "django==5.2.12", "coverage[toml]==7.13.4", "platformdirs==4.9.4", "pycodestyle==2.14.0", + "text-unidecode==1.3", "pylint-celery==0.3", "six==1.17.0", "iniconfig==2.3.0", + "edx-lint==5.6.0", "pluggy==1.6.0", "distlib==0.4.0", "click==8.3.1", + "wheel==0.46.3", "jinja2==3.1.6", "typing-extensions==4.15.0", "setuptools==82.0.0", + "pydocstyle==6.3.0", "pygments==2.19.2", "tomlkit==0.14.0", "pip==26.0.1", + "edx-opaque-keys==3.1.0", "pytest-django==4.12.0", "python-slugify==8.0.4", + "pyproject-api==1.10.0", "django-model-utils==5.0.0", "code-annotations==2.3.2", + "asgiref==3.11.1", "isort==8.0.1", "tomli-w==1.2.0", "filelock==3.25.0", + "pylint==4.0.5", "python-discovery==1.1.0", "pymongo==4.16.0", "pytest==9.0.2", + "pyproject-hooks==1.2.0"]' django_packages: django_42: count: 4 - list: '["edx-opaque-keys", "pytest-django", "pylint-django", "code-annotations"]' + list: '["pytest-django", "edx-opaque-keys", "pylint-django", "code-annotations"]' total: count: 5 - list: '["edx-opaque-keys", "code-annotations", "pylint-django", "django-model-utils", - "pytest-django"]' + list: '["pytest-django", "pylint-django", "django-model-utils", "code-annotations", + "edx-opaque-keys"]' upgraded: count: 2 list: '["edx-opaque-keys", "code-annotations"]' @@ -79,17 +79,27 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 3 - build_details: '{"total_duration": "0 minutes 50 seconds", "checks": [{"name": + branch_count: 4 + build_details: '{"total_duration": "5905 minutes 17 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 50 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 - minutes 34 seconds"}]}' + minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, + {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 + seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2014-11-24 16:56:50 default_branch: master description: '' - disk_usage_kb: 337 + disk_usage_kb: 340 fork_count: 14 has_issues: true has_wiki: false @@ -98,9 +108,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:14:44 + last_push: 2026-06-03 17:38:07 license: GNU AGPLv3 - pulls_count: 3 + pulls_count: 4 github_actions: true language_bytes: css: 0 @@ -124,7 +134,9 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://openedx.org/slack: 403' + - 'https://openedx.org/getting-help: 403' getting-help: true good_links: - https://github.com/openedx/edx-milestones/workflows/Python%20CI/badge.svg?branch=master @@ -137,9 +149,7 @@ readme: - https://docs.openedx.org/en/latest/educators/references/controlling_content_visibility.html - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://discuss.openedx.org - - https://openedx.org/slack - http://openedx.slack.com/ - - https://openedx.org/getting-help irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/edx-notes-api_repo_health.yaml b/individual_repo_data/openedx/edx-notes-api_repo_health.yaml index acf08f3a..abe8413c 100644 --- a/individual_repo_data/openedx/edx-notes-api_repo_health.yaml +++ b/individual_repo_data/openedx/edx-notes-api_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,70 +22,70 @@ dependencies: list: '' pypi: count: 57 - list: '["django-waffle==5.0.0", "path==17.1.1", "charset-normalizer==3.4.7", - "django-elasticsearch-dsl-drf==0.22.5", "referencing==0.37.0", "gunicorn==26.0.0", - "setuptools==82.0.1", "typing-inspection==0.4.2", "cffi==2.0.0", "django-crum==0.7.9", - "click==8.4.1", "typing-extensions==4.15.0", "djangorestframework==3.17.1", - "attrs==26.1.0", "pycparser==3.0", "camel-converter[pydantic]==5.1.0", - "requests==2.34.2", "pydantic-core==2.46.4", "django-cors-headers==4.9.0", - "path-py==12.5.0", "stevedore==5.8.0", "jsonschema==4.26.0", "edx-django-utils==8.0.1", - "pydantic==2.13.4", "elasticsearch==7.13.4", "meilisearch==0.41.0", "edx-opaque-keys==4.0.0", - "pynacl==1.6.2", "inflection==0.5.1", "django-elasticsearch-dsl==7.4", - "jsonschema-specifications==2025.9.1", "python-dateutil==2.9.0.post0", - "elasticsearch-dsl==7.4.1", "packaging==26.2", "pyjwt[crypto]==2.13.0", - "asgiref==3.11.1", "edx-django-release-util==1.5.0", "drf-jwt==1.19.2", - "sqlparse==0.5.5", "six==1.17.0", "dnspython==2.8.0", "annotated-types==0.7.0", - "pymongo==4.17.0", "urllib3==1.26.20", "psutil==7.2.2", "uritemplate==4.2.0", - "idna==3.16", "rpds-py==0.30.0", "cryptography==48.0.0", "django==5.2.14", - "edx-drf-extensions==10.6.0", "mysqlclient==2.2.8", "certifi==2026.5.20", - "django-nine==0.2.7", "pyyaml==6.0.3", "drf-spectacular==0.29.0", "semantic-version==2.10.0"]' + list: '["pynacl==1.6.2", "pyyaml==6.0.3", "setuptools==82.0.1", "drf-jwt==1.19.2", + "stevedore==5.8.0", "pyjwt[crypto]==2.13.0", "elasticsearch==7.13.4", + "idna==3.17", "pydantic==2.13.4", "pymongo==4.17.0", "drf-spectacular==0.29.0", + "django-nine==0.2.7", "typing-extensions==4.15.0", "requests==2.34.2", + "edx-opaque-keys==4.0.0", "packaging==26.2", "certifi==2026.5.20", "pydantic-core==2.46.4", + "python-dateutil==2.9.0.post0", "urllib3==1.26.20", "jsonschema==4.26.0", + "semantic-version==2.10.0", "django-cors-headers==4.9.0", "django-elasticsearch-dsl-drf==0.22.5", + "sqlparse==0.5.5", "edx-drf-extensions==10.6.0", "django-crum==0.7.9", + "attrs==26.1.0", "asgiref==3.11.1", "edx-django-release-util==1.5.0", + "mysqlclient==2.2.8", "pycparser==3.0", "django-waffle==5.0.0", "referencing==0.37.0", + "typing-inspection==0.4.2", "django==5.2.14", "jsonschema-specifications==2025.9.1", + "six==1.17.0", "gunicorn==26.0.0", "dnspython==2.8.0", "charset-normalizer==3.4.7", + "path-py==12.5.0", "meilisearch==0.41.0", "uritemplate==4.2.0", "annotated-types==0.7.0", + "cffi==2.0.0", "psutil==7.2.2", "path==17.1.1", "click==8.4.1", "cryptography==48.0.0", + "django-elasticsearch-dsl==7.4", "djangorestframework==3.17.1", "inflection==0.5.1", + "elasticsearch-dsl==7.4.1", "edx-django-utils==8.0.1", "camel-converter[pydantic]==5.1.0", + "rpds-py==2026.5.1"]' pypi_all: count: 103 - list: '["charset-normalizer==3.4.7", "django-elasticsearch-dsl-drf==0.22.5", - "colorama==0.4.6", "pluggy==1.6.0", "typing-inspection==0.4.2", "pytest==9.0.3", - "pycodestyle==2.14.0", "inflection==0.5.1", "isort==8.0.1", "tomli-w==1.2.0", - "elasticsearch-dsl==7.4.1", "python-discovery==1.3.1", "pytest-cov==7.1.0", - "urllib3==1.26.20", "edx-lint==6.1.0", "idna==3.16", "cryptography==48.0.0", - "pyyaml==6.0.3", "django-nine==0.2.7", "iniconfig==2.3.0", "path==17.1.1", - "tox==4.54.0", "pygments==2.20.0", "pyproject-hooks==1.2.0", "typing-extensions==4.15.0", - "diff-cover==10.2.1", "djangorestframework==3.17.1", "attrs==26.1.0", - "pycparser==3.0", "astroid==4.0.4", "requests==2.34.2", "pydantic-core==2.46.4", - "django-cors-headers==4.9.0", "build==1.5.0", "elasticsearch==7.13.4", - "mccabe==0.7.0", "edx-opaque-keys==4.0.0", "pylint-plugin-utils==0.9.0", - "faker==40.19.1", "jsonschema-specifications==2025.9.1", "pytest-django==4.12.0", - "pyjwt[crypto]==2.13.0", "edx-django-release-util==1.5.0", "cachetools==7.1.4", - "ddt==1.7.2", "sqlparse==0.5.5", "six==1.17.0", "dnspython==2.8.0", "markupsafe==3.0.3", - "psutil==7.2.2", "pylint-django==2.7.0", "uritemplate==4.2.0", "django==5.2.14", - "edx-drf-extensions==10.6.0", "certifi==2026.5.20", "dill==0.4.1", "pip-tools==7.5.3", - "drf-spectacular==0.29.0", "django-waffle==5.0.0", "setuptools==82.0.1", - "factory-boy==3.3.3", "cffi==2.0.0", "django-crum==0.7.9", "click==8.4.1", - "camel-converter[pydantic]==5.1.0", "more-itertools==11.1.0", "path-py==12.5.0", - "virtualenv==21.3.3", "jinja2==3.1.6", "wheel==0.47.0", "pep8==1.7.1", - "distlib==0.4.0", "chardet==7.4.3", "packaging==26.2", "drf-jwt==1.19.2", - "pymongo==4.17.0", "filelock==3.29.0", "pylint==4.0.5", "mysqlclient==2.2.8", - "text-unidecode==1.3", "semantic-version==2.10.0", "referencing==0.37.0", - "gunicorn==26.0.0", "python-slugify==8.0.4", "code-annotations==3.0.0", - "pylint-celery==0.3", "stevedore==5.8.0", "jsonschema==4.26.0", "edx-django-utils==8.0.1", - "coverage[toml]==7.14.0", "pydantic==2.13.4", "meilisearch==0.41.0", "click-log==0.4.0", - "pynacl==1.6.2", "pip==26.1.1", "django-elasticsearch-dsl==7.4", "tomlkit==0.15.0", - "python-dateutil==2.9.0.post0", "platformdirs==4.9.6", "asgiref==3.11.1", - "annotated-types==0.7.0", "pyproject-api==1.10.0", "rpds-py==0.30.0"]' + list: '["factory-boy==3.3.3", "pyyaml==6.0.3", "ddt==1.7.2", "isort==8.0.1", + "pymongo==4.17.0", "more-itertools==11.1.0", "django-nine==0.2.7", "pydantic-core==2.46.4", + "python-dateutil==2.9.0.post0", "tomlkit==0.15.0", "python-discovery==1.4.0", + "django-cors-headers==4.9.0", "sqlparse==0.5.5", "django-crum==0.7.9", + "edx-django-release-util==1.5.0", "pytest-cov==7.1.0", "dill==0.4.1", + "jinja2==3.1.6", "jsonschema-specifications==2025.9.1", "path-py==12.5.0", + "meilisearch==0.41.0", "chardet==7.4.3", "annotated-types==0.7.0", "cffi==2.0.0", + "psutil==7.2.2", "mccabe==0.7.0", "edx-django-utils==8.0.1", "edx-lint==6.1.0", + "setuptools==82.0.1", "pyjwt[crypto]==2.13.0", "coverage[toml]==7.14.1", + "typing-extensions==4.15.0", "cachetools==7.1.4", "requests==2.34.2", + "pylint-plugin-utils==0.9.0", "django-elasticsearch-dsl-drf==0.22.5", + "asgiref==3.11.1", "code-annotations==3.0.0", "pycparser==3.0", "pytest==9.0.3", + "wheel==0.47.0", "build==1.5.0", "django-waffle==5.0.0", "pluggy==1.6.0", + "pyproject-hooks==1.2.0", "six==1.17.0", "gunicorn==26.0.0", "dnspython==2.8.0", + "click==8.4.1", "django-elasticsearch-dsl==7.4", "inflection==0.5.1", + "virtualenv==21.4.2", "elasticsearch-dsl==7.4.1", "python-slugify==8.0.4", + "drf-jwt==1.19.2", "pip==26.1.2", "pylint-celery==0.3", "filelock==3.29.0", + "tomli-w==1.2.0", "drf-spectacular==0.29.0", "pygments==2.20.0", "jsonschema==4.26.0", + "pip-tools==7.5.3", "astroid==4.0.4", "pyproject-api==1.10.1", "edx-drf-extensions==10.6.0", + "mysqlclient==2.2.8", "pylint-django==2.7.0", "django==5.2.14", "pep8==1.7.1", + "charset-normalizer==3.4.7", "tox==4.55.0", "iniconfig==2.3.0", "pynacl==1.6.2", + "stevedore==5.8.0", "elasticsearch==7.13.4", "pytest-django==4.12.0", + "idna==3.17", "pydantic==2.13.4", "markupsafe==3.0.3", "urllib3==1.26.20", + "pycodestyle==2.14.0", "edx-opaque-keys==4.0.0", "diff-cover==10.3.0", + "certifi==2026.5.20", "packaging==26.2", "platformdirs==4.10.0", "semantic-version==2.10.0", + "attrs==26.1.0", "pylint==4.0.5", "referencing==0.37.0", "typing-inspection==0.4.2", + "colorama==0.4.6", "click-log==0.4.0", "uritemplate==4.2.0", "path==17.1.1", + "faker==40.19.1", "distlib==0.4.0", "rpds-py==2026.5.1", "cryptography==48.0.0", + "text-unidecode==1.3", "djangorestframework==3.17.1", "camel-converter[pydantic]==5.1.0"]' django_packages: django_42: count: 11 - list: '["pytest-django", "django-cors-headers", "djangorestframework", "edx-drf-extensions", - "edx-django-release-util", "code-annotations", "factory-boy", "pylint-django", - "edx-opaque-keys", "edx-django-utils", "django-waffle"]' + list: '["edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "factory-boy", + "code-annotations", "django-waffle", "edx-django-release-util", "pylint-django", + "djangorestframework", "pytest-django", "django-cors-headers"]' total: count: 16 - list: '["pytest-django", "django-cors-headers", "djangorestframework", "django-elasticsearch-dsl-drf", - "django-nine", "django-elasticsearch-dsl", "edx-drf-extensions", "edx-django-release-util", - "code-annotations", "django-crum", "factory-boy", "pylint-django", "drf-jwt", - "edx-opaque-keys", "edx-django-utils", "django-waffle"]' + list: '["edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "django-elasticsearch-dsl-drf", + "factory-boy", "code-annotations", "django-crum", "django-nine", "django-elasticsearch-dsl", + "django-waffle", "drf-jwt", "edx-django-release-util", "pylint-django", + "djangorestframework", "pytest-django", "django-cors-headers"]' upgraded: count: 7 - list: '["django-cors-headers", "edx-drf-extensions", "edx-django-release-util", - "code-annotations", "edx-opaque-keys", "edx-django-utils", "django-waffle"]' + list: '["edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", "code-annotations", + "django-waffle", "edx-django-release-util", "django-cors-headers"]' docs: build_badge: false python_version: null @@ -113,24 +113,25 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 91 - build_details: '{"total_duration": "9652 minutes 20 seconds", "checks": [{"name": - "run_tests (3.12, quality)", "duration": "2 minutes 4 seconds"}, {"name": - "run_tests (3.12, django52)", "duration": "2 minutes 0 seconds"}, {"name": + build_details: '{"total_duration": "9627 minutes 23 seconds", "checks": [{"name": + "run_tests (3.12, quality)", "duration": "2 minutes 1 seconds"}, {"name": + "run_tests (3.12, django52)", "duration": "2 minutes 1 seconds"}, {"name": + "run_tests (3.12, pii_check)", "duration": "1 minutes 51 seconds"}, {"name": "run_tests (3.12, check_keywords)", "duration": "1 minutes 46 seconds"}, {"name": - "run_tests (3.12, pii_check)", "duration": "1 minutes 37 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 11 seconds"}, {"name": "Analyze (python)", "duration": "1 minutes - 8 seconds"}, {"name": "Analyze (python)", "duration": "1 minutes 0 seconds"}, - {"name": "check_migrations (3.12)", "duration": "0 minutes 51 seconds"}, {"name": - "Dependabot", "duration": "0 minutes 50 seconds"}, {"name": "update-pip-graph", - "duration": "0 minutes 36 seconds"}, {"name": "Trivy-Scan", "duration": "0 - minutes 31 seconds"}, {"name": "Trivy-Scan", "duration": "0 minutes 24 seconds"}]}' + "1 minutes 24 seconds"}, {"name": "Analyze (python)", "duration": "1 minutes + 0 seconds"}, {"name": "check_migrations (3.12)", "duration": "0 minutes 54 + seconds"}, {"name": "Analyze (python)", "duration": "0 minutes 50 seconds"}, + {"name": "update-pip-graph", "duration": "0 minutes 40 seconds"}, {"name": + "Dependabot", "duration": "0 minutes 30 seconds"}, {"name": "Trivy-Scan", + "duration": "0 minutes 25 seconds"}, {"name": "Trivy-Scan", "duration": "0 + minutes 21 seconds"}]}' code_of_conduct: Other created_at: 2014-11-10 19:37:29 default_branch: master description: edx-notes-api - disk_usage_kb: 1066 - fork_count: 62 + disk_usage_kb: 1073 + fork_count: 63 has_issues: true has_wiki: false is_archived: false @@ -138,7 +139,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:45:29 + last_push: 2026-06-08 00:46:33 license: GNU AGPLv3 pulls_count: 4 github_actions: true diff --git a/individual_repo_data/openedx/edx-ora2_repo_health.yaml b/individual_repo_data/openedx/edx-ora2_repo_health.yaml index 910b2806..654bdfff 100644 --- a/individual_repo_data/openedx/edx-ora2_repo_health.yaml +++ b/individual_repo_data/openedx/edx-ora2_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -37,90 +37,90 @@ dependencies: "^4.0.2"}' pypi: count: 67 - list: '["asgiref==3.11.1", "attrs==26.1.0", "edx-toggles==6.0.0", "django-model-utils==5.0.0", - "lxml[html-clean]==6.1.0", "mako==1.3.12", "pymongo==4.17.0", "python-swiftclient==4.10.0", - "jsonfield==3.2.0", "webob==1.8.9", "edx-submissions==4.0.0", "path-py==12.5.0", - "django==5.2.14", "six==1.17.0", "cffi==2.0.0", "edx-django-release-util==1.5.0", - "charset-normalizer==3.4.7", "edx-i18n-tools==2.0.0", "openedx-filters==3.4.0", - "pycparser==3.0", "setuptools==82.0.1", "botocore==1.43.9", "stevedore==5.8.0", - "bleach==6.3.0", "text-unidecode==1.3", "certifi==2026.4.22", "django-simple-history==3.11.0", - "fastavro==1.12.2", "psutil==7.2.2", "jmespath==1.1.0", "typing-extensions==4.15.0", - "xblock==6.1.0", "webencodings==0.5.1", "djangorestframework==3.17.1", - "lxml-html-clean==0.4.4", "openedx-events==11.2.0", "edx-ccx-keys==2.0.2", - "pytz==2026.2", "pyyaml==6.0.3", "polib==1.2.0", "django-waffle==5.0.0", - "web-fragments==4.0.0", "requests==2.34.2", "edx-opaque-keys[django]==4.0.0", - "idna==3.15", "fs==2.4.16", "django-crum==0.7.9", "path==16.16.0", "pynacl==1.6.2", - "code-annotations==3.0.0", "edx-django-utils==8.0.1", "simplejson==4.1.1", - "voluptuous==0.16.0", "s3transfer==0.17.0", "markupsafe==3.0.3", "dnspython==2.8.0", - "appdirs==1.4.4", "defusedxml==0.7.1", "html5lib==1.1", "lazy==1.6", "python-dateutil==2.9.0.post0", - "sqlparse==0.5.5", "python-slugify==8.0.4", "urllib3==2.7.0", "click==8.4.0", - "boto3==1.43.9", "jinja2==3.1.6"]' + list: '["path==16.16.0", "lazy==1.6", "html5lib==1.1", "lxml-html-clean==0.4.5", + "psutil==7.2.2", "web-fragments==4.0.0", "djangorestframework==3.17.1", + "xblock==6.1.0", "edx-submissions==4.0.0", "django-model-utils==5.0.0", + "path-py==12.5.0", "webencodings==0.5.1", "edx-opaque-keys[django]==4.0.0", + "pymongo==4.17.0", "s3transfer==0.18.0", "charset-normalizer==3.4.7", + "python-slugify==8.0.4", "markupsafe==3.0.3", "sqlparse==0.5.5", "django-crum==0.7.9", + "pycparser==3.0", "django-waffle==5.0.0", "openedx-filters==3.4.1", "webob==1.8.10", + "code-annotations==3.0.0", "edx-i18n-tools==2.0.0", "appdirs==1.4.4", + "edx-django-release-util==1.5.0", "pyyaml==6.0.3", "asgiref==3.11.1", + "text-unidecode==1.3", "python-dateutil==2.9.0.post0", "idna==3.18", "jmespath==1.1.0", + "jinja2==3.1.6", "polib==1.2.0", "urllib3==2.7.0", "voluptuous==0.16.0", + "edx-django-utils==8.0.1", "dnspython==2.8.0", "fs==2.4.16", "simplejson==4.1.1", + "attrs==26.1.0", "edx-ccx-keys==2.0.2", "botocore==1.43.22", "edx-toggles==6.0.0", + "defusedxml==0.7.1", "certifi==2026.5.20", "django==5.2.15", "typing-extensions==4.15.0", + "bleach==6.3.0", "requests==2.34.2", "fastavro==1.12.2", "pynacl==1.6.2", + "setuptools==82.0.1", "boto3==1.43.22", "jsonfield==3.2.0", "six==1.17.0", + "mako==1.3.12", "cffi==2.0.0", "python-swiftclient==4.10.0", "stevedore==5.8.0", + "lxml[html-clean]==6.1.1", "django-simple-history==3.11.0", "click==8.4.1", + "openedx-events==11.2.0", "pytz==2026.2"]' pypi_all: count: 167 - list: '["asgiref==3.11.1", "shellingham==1.5.4", "django-model-utils==5.0.0", - "pylint-plugin-utils==0.9.0", "build==1.5.0", "pyproject-hooks==1.2.0", - "edx-submissions==4.0.0", "path-py==12.5.0", "sphinx-copybutton==0.5.2", - "edx-django-release-util==1.5.0", "sphinx-book-theme==1.2.0", "charset-normalizer==3.4.7", - "platformdirs==4.9.6", "edx-i18n-tools==2.0.0", "edx-lint==6.1.0", "sphinx-autobuild==2025.8.25", - "kombu==5.6.2", "botocore==1.43.9", "bleach==6.3.0", "text-unidecode==1.3", - "ddt==1.0.0", "babel==2.18.0", "webencodings==0.5.1", "wcwidth==0.7.0", - "lxml-html-clean==0.4.4", "pluggy==1.6.0", "edx-ccx-keys==2.0.2", "arrow==1.4.0", - "cachetools==7.1.2", "pip-tools==7.5.3", "coverage[toml]==7.14.0", "alabaster==1.0.0", - "xblock-sdk==0.14.0", "idna==3.15", "edx-django-utils==8.0.1", "dill==0.4.1", - "docutils==0.22.4", "s3transfer==0.17.0", "lazy==1.6", "defusedxml==0.7.1", - "sqlparse==0.5.5", "urllib3==2.7.0", "click==8.4.0", "boto3==1.43.9", - "pytest-django==4.12.0", "python-discovery==1.3.1", "jinja2==3.1.6", "roman-numerals==4.1.0", - "attrs==26.1.0", "lxml[html-clean]==6.1.0", "amqp==5.3.1", "mako==1.3.12", - "typer==0.25.1", "more-itertools==11.0.2", "pip==26.1.1", "accessible-pygments==0.0.5", - "setuptools==82.0.1", "pycparser==3.0", "virtualenv==21.3.3", "packaging==26.2", - "binaryornot==0.6.0", "stevedore==5.8.0", "tzlocal==5.3.1", "django-simple-history==3.11.0", - "jmespath==1.1.0", "pycodestyle==2.14.0", "xblock==6.1.0", "websockets==16.0", - "djangorestframework==3.17.1", "billiard==4.2.4", "mdurl==0.1.2", "click-repl==0.3.0", - "annotated-doc==0.0.4", "pylint==3.3.9", "pyyaml==6.0.3", "responses==0.26.0", - "factory-boy==3.3.3", "sphinxcontrib-applehelp==2.0.0", "pylint-django==2.5.5", - "polib==1.2.0", "django-waffle==5.0.0", "cookiecutter==2.7.1", "pypng==0.20220715.0", - "click-didyoumean==0.3.1", "fs-s3fs==1.1.1", "beautifulsoup4==4.14.3", - "path==16.16.0", "soupsieve==2.8.3", "voluptuous==0.16.0", "markdown-it-py==4.2.0", - "celery==5.6.3", "html5lib==1.1", "wheel==0.47.0", "python-slugify==8.0.4", - "sphinxcontrib-devhelp==2.0.0", "edx-toggles==6.0.0", "webob==1.8.9", - "distlib==0.4.0", "pymongo==4.17.0", "colorama==0.4.6", "python-swiftclient==4.10.0", - "werkzeug==3.1.8", "tox==4.54.0", "cffi==2.0.0", "anyio==4.13.0", "prompt-toolkit==3.0.52", - "mock==5.2.0", "openedx-filters==3.4.0", "imagesize==2.0.0", "coveralls==4.1.0", - "watchfiles==1.2.0", "fastavro==1.12.2", "pyinstrument==5.1.2", "typing-extensions==4.15.0", - "testfixtures==11.0.0", "tomlkit==0.15.0", "pytest-cov==7.1.0", "pytest==9.0.3", - "uvicorn==0.47.0", "moto==4.2.14", "requests==2.34.2", "fs==2.4.16", "pynacl==1.6.2", - "pylint-celery==0.3", "code-annotations==3.0.0", "iniconfig==2.3.0", "h11==0.16.0", - "simplejson==4.1.1", "snowballstemmer==3.0.1", "dnspython==2.8.0", "appdirs==1.4.4", - "pydata-sphinx-theme==0.16.1", "vine==5.1.0", "openedx-events==11.2.0", - "tomli-w==1.2.0", "pyproject-api==1.10.0", "filelock==3.29.0", "xmltodict==1.0.4", - "jsonfield==3.2.0", "astroid==3.3.11", "six==1.17.0", "django==5.2.14", - "click-plugins==1.1.1.2", "sphinx==9.1.0", "sphinxcontrib-mermaid==2.0.2", - "certifi==2026.4.22", "sphinxcontrib-jsmath==1.0.1", "psutil==7.2.2", - "sphinxcontrib-htmlhelp==2.1.0", "starlette==1.0.0", "isort==6.1.0", "rich==15.0.0", - "cryptography==48.0.0", "pytz==2026.2", "freezegun==0.3.14", "pygments==2.20.0", - "web-fragments==4.0.0", "edx-opaque-keys[django]==4.0.0", "tzdata==2026.2", - "django-crum==0.7.9", "mccabe==0.7.0", "faker==40.18.0", "markupsafe==3.0.3", - "sphinxcontrib-qthelp==2.0.0", "python-dateutil==2.9.0.post0", "click-log==0.4.0", - "sphinxcontrib-serializinghtml==2.0.0"]' + list: '["amqp==5.3.1", "sphinxcontrib-mermaid==2.0.2", "tomlkit==0.15.0", + "pygments==2.20.0", "edx-submissions==4.0.0", "path-py==12.5.0", "kombu==5.6.2", + "edx-opaque-keys[django]==4.0.0", "markdown-it-py==4.2.0", "webencodings==0.5.1", + "isort==6.1.0", "snowballstemmer==3.1.1", "iniconfig==2.3.0", "pyproject-hooks==1.2.0", + "sphinxcontrib-serializinghtml==2.0.0", "click-repl==0.3.0", "pyyaml==6.0.3", + "sphinxcontrib-devhelp==2.0.0", "imagesize==2.0.0", "celery==5.6.3", "jmespath==1.1.0", + "astroid==3.3.11", "dnspython==2.8.0", "freezegun==0.3.14", "shellingham==1.5.4", + "edx-toggles==6.0.0", "colorama==0.4.6", "websockets==16.0", "docutils==0.22.4", + "fastavro==1.12.2", "pluggy==1.6.0", "boto3==1.43.22", "sphinx-autobuild==2025.8.25", + "accessible-pygments==0.0.5", "uvicorn==0.49.0", "path==16.16.0", "lazy==1.6", + "html5lib==1.1", "web-fragments==4.0.0", "sphinxcontrib-htmlhelp==2.1.0", + "djangorestframework==3.17.1", "sphinx==9.1.0", "pymongo==4.17.0", "charset-normalizer==3.4.7", + "pytest-cov==7.1.0", "django-crum==0.7.9", "webob==1.8.10", "vine==5.1.0", + "code-annotations==3.0.0", "edx-django-release-util==1.5.0", "watchfiles==1.2.0", + "build==1.5.0", "text-unidecode==1.3", "cachetools==7.1.4", "babel==2.18.0", + "sphinxcontrib-jsmath==1.0.1", "click-log==0.4.0", "polib==1.2.0", "arrow==1.4.0", + "pylint-django==2.5.5", "voluptuous==0.16.0", "starlette==1.2.1", "tzdata==2026.2", + "attrs==26.1.0", "tox==4.55.1", "mock==5.2.0", "sphinxcontrib-applehelp==2.0.0", + "wcwidth==0.7.0", "xblock-sdk==0.14.0", "django==5.2.15", "setuptools==82.0.1", + "platformdirs==4.10.0", "dill==0.4.1", "pip-tools==7.5.3", "click-plugins==1.1.1.2", + "stevedore==5.8.0", "psutil==7.2.2", "pytz==2026.2", "lxml-html-clean==0.4.5", + "factory-boy==3.3.3", "pytest-django==4.12.0", "xblock==6.1.0", "django-model-utils==5.0.0", + "virtualenv==21.4.2", "s3transfer==0.18.0", "markupsafe==3.0.3", "rich==15.0.0", + "sqlparse==0.5.5", "soupsieve==2.8.4", "appdirs==1.4.4", "beautifulsoup4==4.14.3", + "filelock==3.29.1", "python-dateutil==2.9.0.post0", "idna==3.18", "urllib3==2.7.0", + "tzlocal==5.3.1", "edx-django-utils==8.0.1", "fs==2.4.16", "simplejson==4.1.1", + "coveralls==4.1.0", "edx-ccx-keys==2.0.2", "certifi==2026.5.20", "typing-extensions==4.15.0", + "bleach==6.3.0", "pylint==3.3.9", "pynacl==1.6.2", "mdurl==0.1.2", "billiard==4.2.4", + "python-swiftclient==4.10.0", "packaging==26.2", "responses==0.26.1", + "lxml[html-clean]==6.1.1", "django-simple-history==3.11.0", "mccabe==0.7.0", + "cryptography==48.0.0", "openedx-events==11.2.0", "alabaster==1.0.0", + "pydata-sphinx-theme==0.16.1", "pylint-plugin-utils==0.9.0", "h11==0.16.0", + "tomli-w==1.2.0", "distlib==0.4.1", "sphinx-copybutton==0.5.2", "python-discovery==1.4.0", + "moto==4.2.14", "sphinx-book-theme==1.2.0", "werkzeug==3.1.8", "pylint-celery==0.3", + "testfixtures==12.0.0", "python-slugify==8.0.4", "pypng==0.20220715.0", + "pyinstrument==5.1.2", "pycparser==3.0", "ddt==1.0.0", "django-waffle==5.0.0", + "openedx-filters==3.4.1", "pytest==9.0.3", "edx-i18n-tools==2.0.0", "cookiecutter==2.7.1", + "sphinxcontrib-qthelp==2.0.0", "asgiref==3.11.1", "faker==40.21.0", "prompt-toolkit==3.0.52", + "jinja2==3.1.6", "more-itertools==11.1.0", "typer==0.26.7", "coverage[toml]==7.14.1", + "botocore==1.43.22", "pyproject-api==1.10.1", "click-didyoumean==0.3.1", + "xmltodict==1.0.4", "defusedxml==0.7.1", "wheel==0.47.0", "requests==2.34.2", + "edx-lint==6.1.0", "roman-numerals==4.1.0", "pycodestyle==2.14.0", "jsonfield==3.2.0", + "six==1.17.0", "mako==1.3.12", "cffi==2.0.0", "annotated-doc==0.0.4", + "anyio==4.13.0", "binaryornot==0.6.0", "fs-s3fs==1.1.1", "click==8.4.1", + "pip==26.1.2"]' django_packages: django_42: count: 14 - list: '["web-fragments", "edx-submissions", "djangorestframework", "code-annotations", - "edx-django-utils", "edx-i18n-tools", "factory-boy", "edx-django-release-util", - "pytest-django", "xblock", "django-waffle", "xblock-sdk", "edx-toggles", - "pylint-django"]' + list: '["djangorestframework", "edx-django-utils", "pytest-django", "edx-submissions", + "code-annotations", "edx-toggles", "web-fragments", "factory-boy", "django-waffle", + "edx-django-release-util", "xblock-sdk", "xblock", "pylint-django", "edx-i18n-tools"]' total: count: 18 - list: '["web-fragments", "edx-submissions", "djangorestframework", "code-annotations", - "edx-django-utils", "edx-i18n-tools", "django-simple-history", "factory-boy", - "jsonfield", "edx-django-release-util", "pytest-django", "django-model-utils", - "django-crum", "xblock", "django-waffle", "xblock-sdk", "edx-toggles", - "pylint-django"]' + list: '["djangorestframework", "edx-django-utils", "django-simple-history", + "edx-submissions", "code-annotations", "edx-toggles", "pytest-django", + "web-fragments", "factory-boy", "django-model-utils", "django-waffle", + "django-crum", "edx-django-release-util", "xblock-sdk", "xblock", "jsonfield", + "pylint-django", "edx-i18n-tools"]' upgraded: count: 10 - list: '["web-fragments", "edx-submissions", "code-annotations", "edx-django-utils", - "edx-i18n-tools", "edx-django-release-util", "xblock", "django-waffle", - "xblock-sdk", "edx-toggles"]' + list: '["edx-django-utils", "edx-submissions", "code-annotations", "edx-toggles", + "web-fragments", "django-waffle", "edx-django-release-util", "xblock-sdk", + "xblock", "edx-i18n-tools"]' docs: build_badge: false python_version: null @@ -147,24 +147,30 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 159 - build_details: '{"total_duration": "1495 minutes 35 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, js)", "duration": "7 minutes 17 seconds"}, {"name": - "Tests (ubuntu-latest, 3.12, django42)", "duration": "3 minutes 40 seconds"}, - {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "3 minutes 21 + branch_count: 160 + build_details: '{"total_duration": "6 minutes 18 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, js)", "duration": "6 minutes 18 seconds"}, {"name": + "Tests (ubuntu-latest, 3.12, django52)", "duration": "3 minutes 51 seconds"}, + {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "3 minutes 27 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "2 - minutes 44 seconds"}, {"name": "Dependabot", "duration": "0 minutes 57 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 57 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 47 seconds"}, {"name": "Dependabot", "duration": "0 - minutes 44 seconds"}, {"name": "Dependabot", "duration": "0 minutes 42 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 41 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 36 seconds"}, {"name": "update-pip-graph", "duration": - "0 minutes 34 seconds"}]}' + minutes 53 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes + 43 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2013-12-23 20:54:54 default_branch: master description: Open Response Assessment Suite - disk_usage_kb: 162973 + disk_usage_kb: 162111 fork_count: 215 has_issues: true has_wiki: false @@ -173,9 +179,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-27 00:35:50 + last_push: 2026-06-05 05:00:55 license: GNU AGPLv3 - pulls_count: 61 + pulls_count: 62 github_actions: true language_bytes: css: 5382 diff --git a/individual_repo_data/openedx/edx-organizations_repo_health.yaml b/individual_repo_data/openedx/edx-organizations_repo_health.yaml index d7a322e7..0f7ec3e9 100644 --- a/individual_repo_data/openedx/edx-organizations_repo_health.yaml +++ b/individual_repo_data/openedx/edx-organizations_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,40 +22,41 @@ dependencies: list: '' pypi: count: 31 - list: '["cryptography==48.0.0", "urllib3==2.7.0", "django-crum==0.7.9", "pillow==12.2.0", - "charset-normalizer==3.4.7", "cffi==2.0.0", "sqlparse==0.5.5", "stevedore==5.8.0", - "asgiref==3.11.1", "setuptools==82.0.1", "pynacl==1.6.2", "idna==3.16", - "requests==2.34.2", "pyjwt[crypto]==2.13.0", "django-model-utils==5.0.0", - "certifi==2026.5.20", "psutil==7.2.2", "click==8.4.1", "djangorestframework==3.17.1", - "django==5.2.14", "pycparser==3.0", "edx-django-utils==8.0.1", "django-waffle==5.0.0", - "drf-jwt==1.19.2", "django-simple-history==3.11.0", "semantic-version==2.10.0", - "pymongo==4.17.0", "typing-extensions==4.15.0", "dnspython==2.8.0", "edx-opaque-keys==4.0.0", - "edx-drf-extensions==10.6.0"]' + list: '["cryptography==48.0.0", "idna==3.17", "typing-extensions==4.15.0", + "dnspython==2.8.0", "asgiref==3.11.1", "django==5.2.14", "djangorestframework==3.17.1", + "semantic-version==2.10.0", "pillow==12.2.0", "pycparser==3.0", "django-waffle==5.0.0", + "django-crum==0.7.9", "click==8.4.1", "certifi==2026.5.20", "edx-opaque-keys==4.0.0", + "charset-normalizer==3.4.7", "requests==2.34.2", "urllib3==2.7.0", "drf-jwt==1.19.2", + "sqlparse==0.5.5", "django-simple-history==3.11.0", "pymongo==4.17.0", + "stevedore==5.8.0", "edx-django-utils==8.0.1", "django-model-utils==5.0.0", + "psutil==7.2.2", "pynacl==1.6.2", "setuptools==82.0.1", "edx-drf-extensions==10.6.0", + "pyjwt[crypto]==2.13.0", "cffi==2.0.0"]' pypi_all: count: 37 - list: '["cryptography==48.0.0", "urllib3==2.7.0", "django-crum==0.7.9", "pillow==12.2.0", - "charset-normalizer==3.4.7", "packaging==26.2", "cffi==2.0.0", "sqlparse==0.5.5", - "build==1.5.0", "stevedore==5.8.0", "wheel==0.47.0", "asgiref==3.11.1", - "setuptools==82.0.1", "pynacl==1.6.2", "idna==3.16", "requests==2.34.2", - "pyjwt[crypto]==2.13.0", "django-model-utils==5.0.0", "pip-tools==7.5.3", - "certifi==2026.5.20", "psutil==7.2.2", "pyproject-hooks==1.2.0", "click==8.4.1", - "djangorestframework==3.17.1", "django==5.2.14", "pycparser==3.0", "edx-django-utils==8.0.1", - "django-waffle==5.0.0", "drf-jwt==1.19.2", "pip==26.1.1", "django-simple-history==3.11.0", - "semantic-version==2.10.0", "pymongo==4.17.0", "typing-extensions==4.15.0", - "dnspython==2.8.0", "edx-opaque-keys==4.0.0", "edx-drf-extensions==10.6.0"]' + list: '["cryptography==48.0.0", "idna==3.17", "typing-extensions==4.15.0", + "wheel==0.47.0", "dnspython==2.8.0", "asgiref==3.11.1", "django==5.2.14", + "djangorestframework==3.17.1", "packaging==26.2", "semantic-version==2.10.0", + "pillow==12.2.0", "pycparser==3.0", "django-waffle==5.0.0", "django-crum==0.7.9", + "click==8.4.1", "certifi==2026.5.20", "edx-opaque-keys==4.0.0", "pip==26.1.2", + "charset-normalizer==3.4.7", "requests==2.34.2", "urllib3==2.7.0", "drf-jwt==1.19.2", + "sqlparse==0.5.5", "pip-tools==7.5.3", "django-simple-history==3.11.0", + "pymongo==4.17.0", "build==1.5.0", "pyproject-hooks==1.2.0", "stevedore==5.8.0", + "edx-django-utils==8.0.1", "django-model-utils==5.0.0", "psutil==7.2.2", + "pynacl==1.6.2", "setuptools==82.0.1", "edx-drf-extensions==10.6.0", "pyjwt[crypto]==2.13.0", + "cffi==2.0.0"]' django_packages: django_42: count: 5 - list: '["djangorestframework", "django-waffle", "edx-opaque-keys", "edx-drf-extensions", - "edx-django-utils"]' + list: '["edx-drf-extensions", "edx-opaque-keys", "djangorestframework", "edx-django-utils", + "django-waffle"]' total: count: 9 - list: '["djangorestframework", "django-waffle", "drf-jwt", "django-model-utils", - "edx-opaque-keys", "edx-drf-extensions", "edx-django-utils", "django-simple-history", - "django-crum"]' + list: '["drf-jwt", "edx-drf-extensions", "django-simple-history", "edx-opaque-keys", + "djangorestframework", "django-model-utils", "django-crum", "edx-django-utils", + "django-waffle"]' upgraded: count: 4 - list: '["edx-opaque-keys", "edx-drf-extensions", "django-waffle", "edx-django-utils"]' + list: '["edx-opaque-keys", "edx-django-utils", "edx-drf-extensions", "django-waffle"]' docs: build_badge: false python_version: null @@ -82,29 +83,26 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 6 - build_details: '{"total_duration": "3 minutes 43 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 6 seconds"}, - {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 5 + branch_count: 8 + build_details: '{"total_duration": "9501 minutes 17 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 9 seconds"}, + {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 6 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 - minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + minutes 1 seconds"}, {"name": "call-upgrade-python-requirements-workflow / + upgrade_requirements", "duration": "0 minutes 56 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 39 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 32 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "-1 minutes 50 seconds"}]}' + "duration": "-1 minutes 52 seconds"}]}' code_of_conduct: Other created_at: 2015-07-14 19:39:03 default_branch: master description: '' - disk_usage_kb: 497 + disk_usage_kb: 503 fork_count: 36 has_issues: true has_wiki: false @@ -113,7 +111,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 01:10:29 + last_push: 2026-06-08 05:14:33 license: GNU AGPLv3 pulls_count: 3 github_actions: true diff --git a/individual_repo_data/openedx/edx-proctoring_repo_health.yaml b/individual_repo_data/openedx/edx-proctoring_repo_health.yaml index 18828143..cfa0e7f7 100644 --- a/individual_repo_data/openedx/edx-proctoring_repo_health.yaml +++ b/individual_repo_data/openedx/edx-proctoring_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -28,86 +28,85 @@ dependencies: "^2.1.14", "sinon": "^3.2.1"}' pypi: count: 73 - list: '["edx-rest-api-client==6.2.0", "click-plugins==1.1.1.2", "drf-jwt==1.19.2", - "code-annotations==2.3.2", "tzdata==2025.3", "xblock==5.3.0", "prompt-toolkit==3.0.52", - "python-dateutil==2.9.0.post0", "cryptography==46.0.5", "pyjwt[crypto]==2.12.0", - "certifi==2026.2.25", "edx-ccx-keys==2.0.2", "idna==3.11", "six==1.17.0", - "appdirs==1.4.4", "asgiref==3.11.1", "django-waffle==5.0.0", "fastavro==1.12.1", - "event-tracking==3.3.0", "typing-extensions==4.15.0", "dnspython==2.8.0", - "click==8.3.1", "edx-drf-extensions==10.6.0", "django-ipware==7.0.1", - "fs==2.4.16", "markupsafe==3.0.3", "lxml==6.0.2", "edx-opaque-keys[django]==3.1.0", - "pycparser==3.0", "django==5.2.12", "amqp==5.3.1", "pyyaml==6.0.3", "django-simple-history==3.11.0", - "edx-django-utils==8.0.1", "mako==1.3.10", "billiard==4.2.4", "sqlparse==0.5.5", - "django-webpack-loader==0.7.0", "django-model-utils==5.0.0", "text-unidecode==1.3", - "django-crum==0.7.9", "pycryptodomex==3.23.0", "kombu==5.6.2", "charset-normalizer==3.4.5", - "click-didyoumean==0.3.1", "edx-when==3.2.1", "packaging==26.0", "rules==3.5", - "vine==5.1.0", "semantic-version==2.10.0", "stevedore==5.7.0", "jsonfield==3.2.0", - "webob==1.8.9", "djangorestframework==3.16.1", "psutil==7.2.2", "pynacl==1.6.2", - "celery==5.6.2", "cffi==2.0.0", "requests==2.32.5", "wcwidth==0.6.0", - "openedx-events==10.5.0", "python-ipware==3.0.0", "attrs==25.4.0", "simplejson==3.20.2", - "python-slugify==8.0.4", "web-fragments==4.0.0", "edx-toggles==5.4.1", - "pytz==2026.1.post1", "jinja2==3.1.6", "urllib3==2.6.3", "tzlocal==5.3.1", - "pymongo==4.16.0", "click-repl==0.3.0"]' + list: '["celery==5.6.2", "django-model-utils==5.0.0", "django-webpack-loader==0.7.0", + "fs==2.4.16", "kombu==5.6.2", "openedx-events==10.5.0", "edx-opaque-keys[django]==3.1.0", + "pyjwt[crypto]==2.12.0", "dnspython==2.8.0", "pyyaml==6.0.3", "python-slugify==8.0.4", + "django-waffle==5.0.0", "amqp==5.3.1", "djangorestframework==3.16.1", + "jsonfield==3.2.0", "certifi==2026.2.25", "edx-rest-api-client==6.2.0", + "edx-when==3.2.1", "jinja2==3.1.6", "python-dateutil==2.9.0.post0", "stevedore==5.7.0", + "urllib3==2.6.3", "attrs==25.4.0", "click-didyoumean==0.3.1", "tzlocal==5.3.1", + "django-ipware==7.0.1", "requests==2.32.5", "click==8.3.1", "pytz==2026.1.post1", + "click-plugins==1.1.1.2", "vine==5.1.0", "text-unidecode==1.3", "rules==3.5", + "webob==1.8.9", "packaging==26.0", "drf-jwt==1.19.2", "billiard==4.2.4", + "charset-normalizer==3.4.5", "cryptography==46.0.5", "pycryptodomex==3.23.0", + "python-ipware==3.0.0", "cffi==2.0.0", "edx-drf-extensions==10.6.0", "appdirs==1.4.4", + "code-annotations==2.3.2", "edx-ccx-keys==2.0.2", "event-tracking==3.3.0", + "fastavro==1.12.1", "simplejson==3.20.2", "wcwidth==0.6.0", "xblock==5.3.0", + "asgiref==3.11.1", "web-fragments==4.0.0", "django==5.2.12", "psutil==7.2.2", + "prompt-toolkit==3.0.52", "markupsafe==3.0.3", "django-crum==0.7.9", "django-simple-history==3.11.0", + "pynacl==1.6.2", "lxml==6.0.2", "idna==3.11", "tzdata==2025.3", "mako==1.3.10", + "click-repl==0.3.0", "edx-toggles==5.4.1", "pycparser==3.0", "semantic-version==2.10.0", + "edx-django-utils==8.0.1", "six==1.17.0", "sqlparse==0.5.5", "typing-extensions==4.15.0", + "pymongo==4.16.0"]' pypi_all: count: 141 - list: '["virtualenv==21.2.0", "drf-jwt==1.19.2", "python-discovery==1.1.3", - "xblock==5.3.0", "prompt-toolkit==3.0.52", "python-dateutil==2.9.0.post0", - "pyjwt[crypto]==2.12.0", "edx-ccx-keys==2.0.2", "django-waffle==5.0.0", - "event-tracking==3.3.0", "django-ipware==7.0.1", "edx-lint==6.0.0", "pycparser==3.0", - "platformdirs==4.9.4", "pyyaml==6.0.3", "mako==1.3.10", "billiard==4.2.4", - "pydantic-core==2.41.5", "execnet==2.1.2", "coverage[toml]==7.13.4", "pynacl==1.6.2", - "python-slugify==8.0.4", "pytest-xdist==3.8.0", "jinja2==3.1.6", "tzlocal==5.3.1", - "pylint-django==2.7.0", "docutils==0.22.4", "httmock==1.4.0", "pylint-plugin-utils==0.9.0", - "pycodestyle==2.14.0", "coverage==7.13.4", "certifi==2026.2.25", "diff-cover==10.2.0", - "lxml-html-clean==0.4.4", "testfixtures==11.0.0", "fastavro==1.12.1", - "typing-extensions==4.15.0", "build==1.4.0", "annotated-types==0.7.0", - "django-simple-history==3.11.0", "edx-django-utils==8.0.1", "pymongo==4.16.0", - "pytest-django==4.12.0", "isort==8.0.1", "django-model-utils==5.0.0", - "click-didyoumean==0.3.1", "filelock==3.25.2", "semantic-version==2.10.0", - "jsonfield==3.2.0", "wcwidth==0.6.0", "chardet==7.1.0", "attrs==25.4.0", - "python-ipware==3.0.0", "path==16.16.0", "lxml[html-clean]==6.0.2", "pydantic==2.12.5", - "mock==5.2.0", "web-fragments==4.0.0", "urllib3==2.6.3", "freezegun==1.5.5", - "click-repl==0.3.0", "pluggy==1.6.0", "rstcheck==6.2.5", "tox==4.49.1", - "edx-rest-api-client==6.2.0", "pylint==4.0.5", "rstcheck-core==1.2.2", - "wheel==0.46.3", "click-plugins==1.1.1.2", "code-annotations==2.3.2", - "tzdata==2025.3", "dill==0.4.1", "pytest-cov==7.0.0", "distlib==0.4.0", - "ddt==1.7.2", "idna==3.11", "asgiref==3.11.1", "markdown-it-py==4.0.0", - "astroid==4.0.4", "fs==2.4.16", "markupsafe==3.0.3", "edx-opaque-keys[django]==3.1.0", - "annotated-doc==0.0.4", "colorama==0.4.6", "rich==14.3.3", "sqlparse==0.5.5", - "django-webpack-loader==0.7.0", "django-crum==0.7.9", "kombu==5.6.2", - "charset-normalizer==3.4.5", "edx-when==3.2.1", "rules==3.5", "packaging==26.0", - "psutil==7.2.2", "cffi==2.0.0", "pydocstyle==6.3.0", "polib==1.2.0", "openedx-events==10.5.0", - "edx-toggles==5.4.1", "httpretty==1.1.4", "mccabe==0.7.0", "faker==40.11.0", - "mdurl==0.1.2", "tomli-w==1.2.0", "cachetools==7.0.5", "edx-i18n-tools==2.0.0", - "typing-inspection==0.4.2", "cryptography==46.0.5", "six==1.17.0", "pyproject-hooks==1.2.0", - "typer==0.24.1", "appdirs==1.4.4", "snowballstemmer==3.0.1", "click==8.3.1", - "dnspython==2.8.0", "edx-drf-extensions==10.6.0", "lxml==6.0.2", "factory-boy==3.3.3", - "django==5.2.12", "path-py==12.5.0", "pylint-celery==0.3", "amqp==5.3.1", - "shellingham==1.5.4", "text-unidecode==1.3", "pycryptodomex==3.23.0", - "vine==5.1.0", "pip-tools==7.5.3", "pytest==9.0.2", "webob==1.8.9", "responses==0.26.0", - "stevedore==5.7.0", "pyproject-api==1.10.0", "pygments==2.19.2", "djangorestframework==3.16.1", - "celery==5.6.2", "requests==2.32.5", "tomlkit==0.14.0", "simplejson==3.20.2", - "pytz==2026.1.post1", "click-log==0.4.0", "iniconfig==2.3.0"]' + list: '["django-model-utils==5.0.0", "kombu==5.6.2", "edx-lint==6.0.0", "edx-i18n-tools==2.0.0", + "pyjwt[crypto]==2.12.0", "django-waffle==5.0.0", "amqp==5.3.1", "jsonfield==3.2.0", + "python-dateutil==2.9.0.post0", "astroid==4.0.4", "pygments==2.19.2", + "vine==5.1.0", "packaging==26.0", "cryptography==46.0.5", "cffi==2.0.0", + "appdirs==1.4.4", "fastavro==1.12.1", "freezegun==1.5.5", "wheel==0.46.3", + "shellingham==1.5.4", "pylint-celery==0.3", "markupsafe==3.0.3", "mako==1.3.10", + "virtualenv==21.2.0", "six==1.17.0", "path-py==12.5.0", "edx-opaque-keys[django]==3.1.0", + "python-discovery==1.1.3", "dnspython==2.8.0", "markdown-it-py==4.0.0", + "djangorestframework==3.16.1", "jinja2==3.1.6", "stevedore==5.7.0", "coverage[toml]==7.13.4", + "attrs==25.4.0", "httpretty==1.1.4", "django-ipware==7.0.1", "build==1.4.0", + "pytz==2026.1.post1", "click-plugins==1.1.1.2", "text-unidecode==1.3", + "webob==1.8.9", "pyproject-api==1.10.0", "drf-jwt==1.19.2", "python-ipware==3.0.0", + "pycryptodomex==3.23.0", "iniconfig==2.3.0", "pydantic==2.12.5", "pylint-django==2.7.0", + "edx-drf-extensions==10.6.0", "code-annotations==2.3.2", "mccabe==0.7.0", + "pytest-django==4.12.0", "factory-boy==3.3.3", "rstcheck==6.2.5", "pydantic-core==2.41.5", + "asgiref==3.11.1", "web-fragments==4.0.0", "psutil==7.2.2", "prompt-toolkit==3.0.52", + "django-crum==0.7.9", "lxml==6.0.2", "tzdata==2025.3", "pytest-xdist==3.8.0", + "mock==5.2.0", "snowballstemmer==3.0.1", "edx-django-utils==8.0.1", "sqlparse==0.5.5", + "typing-extensions==4.15.0", "pymongo==4.16.0", "celery==5.6.2", "openedx-events==10.5.0", + "fs==2.4.16", "rich==14.3.3", "filelock==3.25.2", "tomlkit==0.14.0", "python-slugify==8.0.4", + "isort==8.0.1", "typer==0.24.1", "certifi==2026.2.25", "execnet==2.1.2", + "diff-cover==10.2.0", "urllib3==2.6.3", "coverage==7.13.4", "click-didyoumean==0.3.1", + "requests==2.32.5", "annotated-doc==0.0.4", "rules==3.5", "colorama==0.4.6", + "billiard==4.2.4", "charset-normalizer==3.4.5", "tox==4.49.1", "httmock==1.4.0", + "simplejson==3.20.2", "edx-ccx-keys==2.0.2", "event-tracking==3.3.0", + "tomli-w==1.2.0", "ddt==1.7.2", "django==5.2.12", "responses==0.26.0", + "django-simple-history==3.11.0", "rstcheck-core==1.2.2", "idna==3.11", + "lxml-html-clean==0.4.4", "pycparser==3.0", "polib==1.2.0", "docutils==0.22.4", + "pytest==9.0.2", "pyproject-hooks==1.2.0", "chardet==7.1.0", "django-webpack-loader==0.7.0", + "pylint-plugin-utils==0.9.0", "pyyaml==6.0.3", "faker==40.11.0", "edx-rest-api-client==6.2.0", + "edx-when==3.2.1", "click-log==0.4.0", "pip-tools==7.5.3", "tzlocal==5.3.1", + "lxml[html-clean]==6.0.2", "click==8.3.1", "pydocstyle==6.3.0", "pytest-cov==7.0.0", + "path==16.16.0", "distlib==0.4.0", "pluggy==1.6.0", "testfixtures==11.0.0", + "dill==0.4.1", "platformdirs==4.9.4", "wcwidth==0.6.0", "typing-inspection==0.4.2", + "annotated-types==0.7.0", "xblock==5.3.0", "pynacl==1.6.2", "click-repl==0.3.0", + "pycodestyle==2.14.0", "mdurl==0.1.2", "edx-toggles==5.4.1", "semantic-version==2.10.0", + "pylint==4.0.5", "cachetools==7.0.5"]' django_packages: django_42: count: 16 - list: '["django-waffle", "xblock", "edx-when", "event-tracking", "factory-boy", - "pytest-django", "django-webpack-loader", "pylint-django", "djangorestframework", - "web-fragments", "edx-django-utils", "edx-rest-api-client", "edx-i18n-tools", - "edx-toggles", "edx-drf-extensions", "code-annotations"]' + list: '["edx-drf-extensions", "pylint-django", "xblock", "factory-boy", "edx-when", + "code-annotations", "edx-django-utils", "event-tracking", "edx-i18n-tools", + "django-webpack-loader", "edx-rest-api-client", "edx-toggles", "django-waffle", + "pytest-django", "djangorestframework", "web-fragments"]' total: count: 23 - list: '["pytest-django", "factory-boy", "pylint-django", "web-fragments", - "drf-jwt", "edx-toggles", "code-annotations", "edx-when", "django-webpack-loader", - "django-crum", "django-simple-history", "edx-i18n-tools", "edx-drf-extensions", - "django-waffle", "xblock", "djangorestframework", "edx-django-utils", - "django-model-utils", "jsonfield", "event-tracking", "edx-rest-api-client", - "django-ipware", "rules"]' + list: '["factory-boy", "django-crum", "django-webpack-loader", "edx-rest-api-client", + "djangorestframework", "edx-drf-extensions", "jsonfield", "edx-when", + "edx-django-utils", "edx-toggles", "drf-jwt", "code-annotations", "rules", + "event-tracking", "django-waffle", "web-fragments", "pylint-django", "xblock", + "edx-i18n-tools", "pytest-django", "django-model-utils", "django-simple-history", + "django-ipware"]' upgraded: count: 11 - list: '["django-waffle", "xblock", "edx-when", "event-tracking", "web-fragments", - "edx-django-utils", "edx-rest-api-client", "edx-i18n-tools", "edx-toggles", - "edx-drf-extensions", "code-annotations"]' + list: '["edx-drf-extensions", "xblock", "edx-when", "code-annotations", "edx-django-utils", + "event-tracking", "edx-i18n-tools", "edx-rest-api-client", "edx-toggles", + "django-waffle", "web-fragments"]' docs: build_badge: false python_version: null @@ -135,26 +134,36 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 39 - build_details: '{"total_duration": "1 minutes 21 seconds", "checks": [{"name": + build_details: '{"total_duration": "4415 minutes 55 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, 20, django42-drflatest)", "duration": "1 minutes 21 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, django52-drflatest)", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, quality)", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, translations-django52)", "duration": "1 minutes 16 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, translations-django42)", "duration": "1 minutes - 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, js_lint)", "duration": - "1 minutes 8 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, js_tests)", - "duration": "1 minutes 2 seconds"}, {"name": "Test (ubuntu-latest, 3.12)", - "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, - 20, rst_validation)", "duration": "0 minutes 40 seconds"}, {"name": "Tests - (ubuntu-latest, 3.12, 20, pii_check)", "duration": "0 minutes 39 seconds"}, + 15 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", + "duration": "1 minutes 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + 20, js_lint)", "duration": "1 minutes 8 seconds"}, {"name": "Tests (ubuntu-latest, + 3.12, 20, js_tests)", "duration": "1 minutes 2 seconds"}, {"name": "Test (ubuntu-latest, + 3.12)", "duration": "0 minutes 42 seconds"}, {"name": "Tests (ubuntu-latest, + 3.12, 20, rst_validation)", "duration": "0 minutes 40 seconds"}, {"name": + "Tests (ubuntu-latest, 3.12, 20, pii_check)", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, 20, version_check)", "duration": "0 - minutes 34 seconds"}]}' + minutes 34 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 52 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2015-06-08 13:38:04 default_branch: master description: '' - disk_usage_kb: 12053 + disk_usage_kb: 12059 fork_count: 95 has_issues: true has_wiki: false @@ -163,7 +172,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:16:05 + last_push: 2026-06-02 16:51:47 license: GNU AGPLv3 pulls_count: 11 github_actions: true @@ -190,6 +199,7 @@ ownership: {} pinned_python_dependencies: 6 readme: bad_links: + - 'https://open.edx.org/getting-help: 403' - 'https://docs.openedx.org/en/latest/educators/concepts/proctored_exams/proctored_exams_overview.html: 404' getting-help: true @@ -204,7 +214,6 @@ readme: - https://img.shields.io/github/license/edx/django-component-views.svg - https://github.com/openedx/edx-proctoring/blob/master/LICENSE.txt - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - - https://open.edx.org/getting-help irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/edx-rbac_repo_health.yaml b/individual_repo_data/openedx/edx-rbac_repo_health.yaml index c935ac59..5e0ea862 100644 --- a/individual_repo_data/openedx/edx-rbac_repo_health.yaml +++ b/individual_repo_data/openedx/edx-rbac_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,62 +22,60 @@ dependencies: list: '' pypi: count: 30 - list: '["six==1.17.0", "edx-drf-extensions==10.6.0", "pymongo==4.16.0", "django-waffle==5.0.0", - "edx-django-utils==8.0.1", "idna==3.11", "asgiref==3.11.1", "sqlparse==0.5.5", - "setuptools==82.0.0", "drf-jwt==1.19.2", "certifi==2026.2.25", "requests==2.32.5", - "typing-extensions==4.15.0", "pyjwt[crypto]==2.11.0", "click==8.3.1", - "django-model-utils==5.0.0", "pynacl==1.6.2", "charset-normalizer==3.4.5", - "psutil==7.2.2", "dnspython==2.8.0", "django-crum==0.7.9", "semantic-version==2.10.0", - "edx-opaque-keys==3.1.0", "pycparser==3.0", "urllib3==2.6.3", "stevedore==5.7.0", - "djangorestframework==3.16.1", "django==5.2.12", "cffi==2.0.0", "cryptography==46.0.5"]' + list: '["asgiref==3.11.1", "click==8.3.1", "drf-jwt==1.19.2", "dnspython==2.8.0", + "sqlparse==0.5.5", "djangorestframework==3.16.1", "edx-drf-extensions==10.6.0", + "pycparser==3.0", "requests==2.32.5", "pymongo==4.16.0", "edx-opaque-keys==3.1.0", + "pyjwt[crypto]==2.11.0", "pynacl==1.6.2", "stevedore==5.7.0", "charset-normalizer==3.4.5", + "django==5.2.12", "six==1.17.0", "edx-django-utils==8.0.1", "django-model-utils==5.0.0", + "django-crum==0.7.9", "certifi==2026.2.25", "psutil==7.2.2", "urllib3==2.6.3", + "idna==3.11", "django-waffle==5.0.0", "cryptography==46.0.5", "cffi==2.0.0", + "typing-extensions==4.15.0", "setuptools==82.0.0", "semantic-version==2.10.0"]' pypi_all: count: 107 - list: '["sphinxcontrib-jsmath==1.0.1", "nh3==0.3.3", "idna==3.11", "ddt==1.7.2", - "snowballstemmer==3.0.1", "pyproject-api==1.10.0", "drf-jwt==1.19.2", - "typing-extensions==4.15.0", "polib==1.2.0", "more-itertools==10.8.0", - "pyjwt[crypto]==2.11.0", "pylint-django==2.7.0", "charset-normalizer==3.4.5", - "platformdirs==4.9.4", "psutil==7.2.2", "readme-renderer==44.0", "dnspython==2.8.0", - "markupsafe==3.0.3", "virtualenv==21.1.0", "dill==0.4.1", "iniconfig==2.3.0", - "pycparser==3.0", "urllib3==2.6.3", "pylint-plugin-utils==0.9.0", "astroid==4.0.4", - "filelock==3.25.0", "pycodestyle==2.14.0", "pydocstyle==6.3.0", "tox==4.49.0", - "edx-django-utils==8.0.1", "asgiref==3.11.1", "text-unidecode==1.3", "sphinxcontrib-devhelp==2.0.0", - "certifi==2026.2.25", "sphinxcontrib-qthelp==2.0.0", "requests==2.32.5", - "code-annotations==2.3.2", "sphinxcontrib-serializinghtml==2.0.0", "pylint-celery==0.3", - "pydata-sphinx-theme==0.15.4", "semantic-version==2.10.0", "pyproject-hooks==1.2.0", - "sphinx==9.1.0", "sphinx-book-theme==1.1.4", "edx-opaque-keys==3.1.0", - "jinja2==3.1.6", "colorama==0.4.6", "stevedore==5.7.0", "djangorestframework==3.16.1", - "beautifulsoup4==4.14.3", "accessible-pygments==0.0.5", "click-log==0.4.0", - "cffi==2.0.0", "imagesize==2.0.0", "edx-lint==5.6.0", "pylint==4.0.5", - "six==1.17.0", "python-slugify==8.0.4", "pymongo==4.16.0", "docutils==0.21.2", - "sphinxcontrib-htmlhelp==2.1.0", "django-waffle==5.0.0", "restructuredtext-lint==2.0.2", - "typeguard==4.5.1", "pyyaml==6.0.3", "edx-i18n-tools==1.9.0", "pip-tools==7.5.3", - "edx-django-release-util==1.5.0", "setuptools==82.0.0", "pytest==9.0.2", - "pytest-cov==7.0.0", "soupsieve==2.8.3", "click==8.3.1", "pytest-django==4.12.0", - "alabaster==1.0.0", "diff-cover==4.0.0", "pygments==2.19.2", "django-crum==0.7.9", - "babel==2.18.0", "python-discovery==1.1.0", "pluggy==1.6.0", "path==16.16.0", - "django==5.2.12", "packaging==26.0", "cachetools==7.0.3", "distlib==0.4.0", - "doc8==2.0.0", "wheel==0.46.3", "jinja2-pluralize==0.3.0", "edx-drf-extensions==10.6.0", - "coverage[toml]==7.13.4", "tomli-w==1.2.0", "sqlparse==0.5.5", "sphinxcontrib-applehelp==2.0.0", - "mccabe==0.7.0", "inflect==7.5.0", "lxml-html-clean==0.4.4", "tomlkit==0.14.0", - "roman-numerals==4.1.0", "django-model-utils==5.0.0", "lxml[html-clean]==6.0.2", - "futures==3.1.1", "pynacl==1.6.2", "pip==26.0.1", "isort==8.0.1", "build==1.4.0", - "cryptography==46.0.5"]' + list: '["asgiref==3.11.1", "pyproject-hooks==1.2.0", "build==1.4.0", "cachetools==7.0.3", + "platformdirs==4.9.4", "snowballstemmer==3.0.1", "sqlparse==0.5.5", "pluggy==1.6.0", + "edx-drf-extensions==10.6.0", "pytest==9.0.2", "pytest-cov==7.0.0", "diff-cover==4.0.0", + "django==5.2.12", "pyyaml==6.0.3", "six==1.17.0", "docutils==0.21.2", + "isort==8.0.1", "django-crum==0.7.9", "certifi==2026.2.25", "accessible-pygments==0.0.5", + "idna==3.11", "django-waffle==5.0.0", "sphinxcontrib-jsmath==1.0.1", "click-log==0.4.0", + "imagesize==2.0.0", "wheel==0.46.3", "futures==3.1.1", "tox==4.49.0", + "ddt==1.7.2", "polib==1.2.0", "djangorestframework==3.16.1", "jinja2==3.1.6", + "pylint-plugin-utils==0.9.0", "path==16.16.0", "pymongo==4.16.0", "beautifulsoup4==4.14.3", + "coverage[toml]==7.13.4", "stevedore==5.7.0", "restructuredtext-lint==2.0.2", + "pip-tools==7.5.3", "mccabe==0.7.0", "sphinx-book-theme==1.1.4", "packaging==26.0", + "psutil==7.2.2", "pylint==4.0.5", "tomli-w==1.2.0", "inflect==7.5.0", + "doc8==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "lxml-html-clean==0.4.4", + "pycodestyle==2.14.0", "roman-numerals==4.1.0", "click==8.3.1", "dnspython==2.8.0", + "iniconfig==2.3.0", "sphinx==9.1.0", "dill==0.4.1", "lxml[html-clean]==6.0.2", + "pycparser==3.0", "astroid==4.0.4", "colorama==0.4.6", "edx-opaque-keys==3.1.0", + "pygments==2.19.2", "pyjwt[crypto]==2.11.0", "pynacl==1.6.2", "jinja2-pluralize==0.3.0", + "virtualenv==21.1.0", "charset-normalizer==3.4.5", "distlib==0.4.0", "code-annotations==2.3.2", + "pydata-sphinx-theme==0.15.4", "edx-django-utils==8.0.1", "typeguard==4.5.1", + "django-model-utils==5.0.0", "markupsafe==3.0.3", "cffi==2.0.0", "typing-extensions==4.15.0", + "sphinxcontrib-applehelp==2.0.0", "edx-django-release-util==1.5.0", "pyproject-api==1.10.0", + "semantic-version==2.10.0", "soupsieve==2.8.3", "readme-renderer==44.0", + "pylint-django==2.7.0", "edx-i18n-tools==1.9.0", "drf-jwt==1.19.2", "filelock==3.25.0", + "sphinxcontrib-htmlhelp==2.1.0", "tomlkit==0.14.0", "requests==2.32.5", + "python-discovery==1.1.0", "sphinxcontrib-qthelp==2.0.0", "text-unidecode==1.3", + "edx-lint==5.6.0", "pip==26.0.1", "urllib3==2.6.3", "cryptography==46.0.5", + "python-slugify==8.0.4", "babel==2.18.0", "more-itertools==10.8.0", "setuptools==82.0.0", + "pydocstyle==6.3.0", "nh3==0.3.3", "pylint-celery==0.3", "pytest-django==4.12.0", + "alabaster==1.0.0", "sphinxcontrib-devhelp==2.0.0"]' django_packages: django_42: count: 10 - list: '["edx-i18n-tools", "pylint-django", "code-annotations", "edx-django-release-util", - "django-waffle", "edx-drf-extensions", "pytest-django", "djangorestframework", - "edx-opaque-keys", "edx-django-utils"]' + list: '["code-annotations", "edx-i18n-tools", "edx-drf-extensions", "edx-django-release-util", + "pylint-django", "edx-django-utils", "edx-opaque-keys", "djangorestframework", + "pytest-django", "django-waffle"]' total: count: 13 - list: '["edx-i18n-tools", "pylint-django", "code-annotations", "drf-jwt", - "edx-django-release-util", "django-crum", "django-waffle", "edx-drf-extensions", - "django-model-utils", "pytest-django", "djangorestframework", "edx-opaque-keys", - "edx-django-utils"]' + list: '["code-annotations", "edx-i18n-tools", "edx-drf-extensions", "edx-django-release-util", + "django-crum", "drf-jwt", "pylint-django", "django-model-utils", "edx-django-utils", + "edx-opaque-keys", "djangorestframework", "pytest-django", "django-waffle"]' upgraded: count: 7 - list: '["edx-i18n-tools", "code-annotations", "edx-django-release-util", "django-waffle", - "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils"]' + list: '["code-annotations", "edx-i18n-tools", "edx-drf-extensions", "edx-django-release-util", + "edx-django-utils", "edx-opaque-keys", "django-waffle"]' docs: build_badge: true python_version: null @@ -104,19 +102,27 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 110 - build_details: '{"total_duration": "2 minutes 55 seconds", "checks": [{"name": - "Dependabot", "duration": "2 minutes 45 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, quality)", "duration": "0 minutes 39 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, django42)", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", + branch_count: 112 + build_details: '{"total_duration": "6443 minutes 44 seconds", "checks": [{"name": + "Dependabot", "duration": "2 minutes 45 seconds"}, {"name": "call-upgrade-python-requirements-workflow + / upgrade_requirements", "duration": "1 minutes 25 seconds"}, {"name": "Tests + (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 39 seconds"}, {"name": + "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 34 seconds"}, + {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 28 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, check_keywords)", "duration": "0 minutes 26 seconds"}]}' + 3.12, check_keywords)", "duration": "0 minutes 26 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2019-02-28 16:27:01 default_branch: master description: Library to help managing role based access controls for django apps - disk_usage_kb: 556 + disk_usage_kb: 564 fork_count: 12 has_issues: true has_wiki: false @@ -125,9 +131,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:16:11 + last_push: 2026-06-04 02:39:52 license: GNU AGPLv3 - pulls_count: 15 + pulls_count: 17 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/edx-rest-api-client_repo_health.yaml b/individual_repo_data/openedx/edx-rest-api-client_repo_health.yaml index 14fda662..30e3514f 100644 --- a/individual_repo_data/openedx/edx-rest-api-client_repo_health.yaml +++ b/individual_repo_data/openedx/edx-rest-api-client_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,48 +22,48 @@ dependencies: list: '' pypi: count: 18 - list: '["django==5.2.13", "sqlparse==0.5.5", "asgiref==3.11.1", "edx-django-utils==8.0.1", - "psutil==7.2.2", "pycparser==3.0", "stevedore==5.7.0", "certifi==2026.4.22", - "requests==2.33.1", "pynacl==1.6.2", "cffi==2.0.0", "charset-normalizer==3.4.7", - "django-waffle==5.0.0", "idna==3.13", "django-crum==0.7.9", "click==8.3.3", - "urllib3==2.6.3", "pyjwt==2.12.1"]' + list: '["charset-normalizer==3.4.7", "pycparser==3.0", "cffi==2.0.0", "psutil==7.2.2", + "stevedore==5.7.0", "django-crum==0.7.9", "pyjwt==2.12.1", "sqlparse==0.5.5", + "urllib3==2.6.3", "asgiref==3.11.1", "django-waffle==5.0.0", "requests==2.33.1", + "pynacl==1.6.2", "edx-django-utils==8.0.1", "django==5.2.13", "click==8.3.3", + "certifi==2026.4.22", "idna==3.13"]' pypi_all: count: 88 - list: '["django-waffle==5.0.0", "jaraco-context==6.1.2", "django-crum==0.7.9", - "six==1.17.0", "mdurl==0.1.2", "secretstorage==3.5.0", "asgiref==3.11.1", - "coverage[toml]==7.13.5", "twine==6.2.0", "edx-lint==6.1.0", "jaraco-functools==4.4.0", - "markdown-it-py==4.0.0", "docutils==0.22.4", "responses==0.26.0", "python-discovery==1.1.0", - "cachetools==7.1.1", "chardet==7.4.3", "pytest-cov==7.1.0", "readme-renderer==44.0", - "pyyaml==6.0.3", "psutil==7.2.2", "id==1.6.1", "chardet==7.0.1", "tox==4.27.0", - "tomlkit==0.14.0", "pylint==4.0.5", "more-itertools==11.0.2", "pip==26.1.1", - "urllib3==2.6.3", "pygments==2.20.0", "filelock==3.29.0", "stevedore==5.7.0", - "astroid==4.0.4", "cffi==2.0.0", "requests==2.33.1", "markupsafe==3.0.3", - "python-discovery==1.2.2", "pycodestyle==2.14.0", "setuptools==82.0.1", - "virtualenv==21.3.1", "sqlparse==0.5.5", "cachetools==7.0.3", "filelock==3.25.0", - "certifi==2026.4.22", "pytest-django==4.12.0", "wheel==0.47.0", "django==5.2.13", - "pytest==9.0.3", "pynacl==1.6.2", "virtualenv==21.1.0", "jinja2==3.1.6", - "click-log==0.4.0", "pluggy==1.5.0", "jeepney==0.9.0", "distlib==0.4.0", - "colorama==0.4.6", "idna==3.13", "rich==15.0.0", "rfc3986==2.0.0", "nh3==0.3.5", - "packaging==24.2", "isort==8.0.1", "pylint-django==2.7.0", "pyjwt==2.12.1", - "build==1.5.0", "ddt==1.7.2", "pylint-celery==0.3", "platformdirs==4.3.6", - "pyproject-api==1.9.0", "code-annotations==3.0.0", "freezegun==1.5.5", - "dill==0.4.1", "cryptography==48.0.0", "python-dateutil==2.9.0.post0", - "click==8.3.3", "text-unidecode==1.3", "charset-normalizer==3.4.7", "mccabe==0.7.0", - "pylint-plugin-utils==0.9.0", "iniconfig==2.3.0", "keyring==25.7.0", "python-slugify==8.0.4", - "edx-django-utils==8.0.1", "pyproject-hooks==1.2.0", "pycparser==3.0", - "requests-toolbelt==1.0.0", "jaraco-classes==3.4.0", "pip-tools==7.5.3"]' + list: '["cffi==2.0.0", "freezegun==1.5.5", "mdurl==0.1.2", "click-log==0.4.0", + "pygments==2.20.0", "cryptography==48.0.0", "django-crum==0.7.9", "pytest-cov==7.1.0", + "jaraco-functools==4.4.0", "pytest-django==4.12.0", "click==8.3.3", "requests-toolbelt==1.0.0", + "pyproject-hooks==1.2.0", "colorama==0.4.6", "code-annotations==3.0.0", + "python-dateutil==2.9.0.post0", "markupsafe==3.0.3", "python-discovery==1.1.0", + "python-discovery==1.2.2", "pip-tools==7.5.3", "filelock==3.25.0", "certifi==2026.4.22", + "idna==3.13", "wheel==0.47.0", "pyyaml==6.0.3", "pytest==9.0.3", "asgiref==3.11.1", + "pycparser==3.0", "pluggy==1.5.0", "stevedore==5.7.0", "pyjwt==2.12.1", + "markdown-it-py==4.0.0", "pylint-celery==0.3", "chardet==7.4.3", "django-waffle==5.0.0", + "ddt==1.7.2", "chardet==7.0.1", "edx-django-utils==8.0.1", "text-unidecode==1.3", + "iniconfig==2.3.0", "distlib==0.4.0", "cachetools==7.0.3", "id==1.6.1", + "twine==6.2.0", "more-itertools==11.0.2", "pynacl==1.6.2", "dill==0.4.1", + "nh3==0.3.5", "isort==8.0.1", "jaraco-classes==3.4.0", "pylint-django==2.7.0", + "jaraco-context==6.1.2", "edx-lint==6.1.0", "tomlkit==0.14.0", "setuptools==82.0.1", + "tox==4.27.0", "packaging==24.2", "readme-renderer==44.0", "charset-normalizer==3.4.7", + "cachetools==7.1.1", "six==1.17.0", "pylint==4.0.5", "keyring==25.7.0", + "pylint-plugin-utils==0.9.0", "filelock==3.29.0", "pycodestyle==2.14.0", + "astroid==4.0.4", "coverage[toml]==7.13.5", "build==1.5.0", "responses==0.26.0", + "requests==2.33.1", "jeepney==0.9.0", "sqlparse==0.5.5", "secretstorage==3.5.0", + "django==5.2.13", "jinja2==3.1.6", "rfc3986==2.0.0", "psutil==7.2.2", + "urllib3==2.6.3", "pip==26.1.1", "platformdirs==4.3.6", "python-slugify==8.0.4", + "docutils==0.22.4", "mccabe==0.7.0", "virtualenv==21.3.1", "pyproject-api==1.9.0", + "rich==15.0.0", "virtualenv==21.1.0"]' django_packages: django_42: count: 5 - list: '["code-annotations", "pytest-django", "pylint-django", "edx-django-utils", - "django-waffle"]' + list: '["django-waffle", "edx-django-utils", "pytest-django", "code-annotations", + "pylint-django"]' total: count: 6 - list: '["code-annotations", "pytest-django", "pylint-django", "django-crum", - "edx-django-utils", "django-waffle"]' + list: '["django-waffle", "edx-django-utils", "django-crum", "pytest-django", + "code-annotations", "pylint-django"]' upgraded: count: 3 - list: '["edx-django-utils", "code-annotations", "django-waffle"]' + list: '["edx-django-utils", "django-waffle", "code-annotations"]' docs: build_badge: false python_version: null @@ -91,11 +91,18 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 16 - build_details: '{"total_duration": "0 minutes 34 seconds", "checks": [{"name": - "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 34 seconds"}, - {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 33 - seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 - minutes 32 seconds"}]}' + build_details: '{"total_duration": "3795 minutes 11 seconds", "checks": [{"name": + "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": + "1 minutes 15 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", + "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, + quality)", "duration": "0 minutes 33 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, django42)", "duration": "0 minutes 32 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2015-04-29 18:11:55 default_branch: master @@ -109,7 +116,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:16:43 + last_push: 2026-06-02 06:31:48 license: Apache License 2.0 pulls_count: 13 github_actions: true @@ -144,17 +151,17 @@ readme: exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=''some.url'', port=443): Failed to resolve ''some.url'' ([Errno -2] Name or service not known)"))' + - 'https://openedx.org/r/how-to-contribute: 403' + - 'https://openedx.org/slack: 403' + - 'https://openedx.org/getting-help: 403' + - 'https://openedx.org/code-of-conduct/: 403' getting-help: true good_links: - https://requests.readthedocs.io/en/master/user/advanced/ - https://github.com/openedx/edx-django-utils/blob/master/edx_django_utils/cache/README.rst - - https://openedx.org/r/how-to-contribute - https://discuss.openedx.org - https://github.com/openedx/edx-rest-api-client/issues - - https://openedx.org/slack - https://openedx.slack.com/ - - https://openedx.org/getting-help - - https://openedx.org/code-of-conduct/ - https://github.com/openedx/edx-rest-api-client/workflows/Python%20CI/badge.svg?branch=master - https://github.com/openedx/edx-rest-api-client/actions?query=workflow%3A%22Python+CI%22 - https://codecov.io/github/openedx/edx-rest-api-client/coverage.svg?branch=master diff --git a/individual_repo_data/openedx/edx-search_repo_health.yaml b/individual_repo_data/openedx/edx-search_repo_health.yaml index 163c8f94..3b3b95b9 100644 --- a/individual_repo_data/openedx/edx-search_repo_health.yaml +++ b/individual_repo_data/openedx/edx-search_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,62 +22,62 @@ dependencies: list: '' pypi: count: 61 - list: '["amqp==5.3.1", "click==8.3.2", "charset-normalizer==3.4.7", "click-repl==0.3.0", - "billiard==4.2.4", "urllib3==1.26.20", "django-crum==0.7.9", "typesense==2.0.0", - "pycparser==3.0", "idna==3.11", "meilisearch==0.40.0", "kombu==5.6.2", - "text-unidecode==1.3", "six==1.17.0", "httpx==0.28.1", "pymongo==4.16.0", - "pytz==2026.1.post1", "vine==5.1.0", "tzdata==2026.1", "wcwidth==0.6.0", - "event-tracking==4.0.0", "camel-converter[pydantic]==5.1.0", "dnspython==2.8.0", - "psutil==7.2.2", "pydantic-core==2.41.5", "celery==5.6.3", "edx-django-utils==8.0.1", - "django==5.2.13", "markupsafe==3.0.3", "typing-extensions==4.15.0", "sqlparse==0.5.5", - "python-slugify==8.0.4", "packaging==26.0", "certifi==2026.2.25", "prompt-toolkit==3.0.52", - "click-didyoumean==0.3.1", "openedx-events==11.1.0", "attrs==26.1.0", - "asgiref==3.11.1", "tzlocal==5.3.1", "requests==2.33.1", "stevedore==5.7.0", - "elasticsearch==7.13.4", "pynacl==1.6.2", "fastavro==1.12.1", "edx-ccx-keys==2.0.2", - "typing-inspection==0.4.2", "click-plugins==1.1.1.2", "code-annotations==3.0.0", - "pyyaml==6.0.3", "django-waffle==5.0.0", "httpcore==1.0.9", "edx-opaque-keys[django]==4.0.0", - "h11==0.16.0", "annotated-types==0.7.0", "pydantic==2.12.5", "jinja2==3.1.6", - "python-dateutil==2.9.0.post0", "anyio==4.13.0", "edx-toggles==6.0.0", - "cffi==2.0.0"]' + list: '["camel-converter[pydantic]==5.1.0", "python-slugify==8.0.4", "meilisearch==0.40.0", + "click-repl==0.3.0", "django-crum==0.7.9", "prompt-toolkit==3.0.52", "billiard==4.2.4", + "six==1.17.0", "pyyaml==6.0.3", "wcwidth==0.6.0", "pycparser==3.0", "celery==5.6.3", + "markupsafe==3.0.3", "tzdata==2026.1", "idna==3.11", "amqp==5.3.1", "psutil==7.2.2", + "dnspython==2.8.0", "h11==0.16.0", "typesense==2.0.0", "charset-normalizer==3.4.7", + "edx-opaque-keys[django]==4.0.0", "edx-ccx-keys==2.0.2", "urllib3==1.26.20", + "attrs==26.1.0", "httpx==0.28.1", "click-plugins==1.1.1.2", "python-dateutil==2.9.0.post0", + "tzlocal==5.3.1", "edx-toggles==6.0.0", "httpcore==1.0.9", "elasticsearch==7.13.4", + "vine==5.1.0", "django-waffle==5.0.0", "asgiref==3.11.1", "django==5.2.13", + "pynacl==1.6.2", "typing-inspection==0.4.2", "pytz==2026.1.post1", "sqlparse==0.5.5", + "stevedore==5.7.0", "event-tracking==4.0.0", "click==8.3.2", "edx-django-utils==8.0.1", + "fastavro==1.12.1", "typing-extensions==4.15.0", "certifi==2026.2.25", + "jinja2==3.1.6", "click-didyoumean==0.3.1", "kombu==5.6.2", "openedx-events==11.1.0", + "pydantic-core==2.41.5", "pymongo==4.16.0", "code-annotations==3.0.0", + "anyio==4.13.0", "packaging==26.0", "pydantic==2.12.5", "cffi==2.0.0", + "requests==2.33.1", "text-unidecode==1.3", "annotated-types==0.7.0"]' pypi_all: count: 97 - list: '["click-repl==0.3.0", "billiard==4.2.4", "urllib3==1.26.20", "idna==3.11", - "filelock==3.25.2", "kombu==5.6.2", "httpx==0.28.1", "pymongo==4.16.0", - "camel-converter[pydantic]==5.1.0", "tomli-w==1.2.0", "pytest-cov==7.1.0", - "celery==5.6.3", "tomlkit==0.14.0", "click-plugins==1.1.1.2", "iniconfig==2.3.0", - "wheel==0.46.3", "django-waffle==5.0.0", "pydantic==2.12.5", "jinja2==3.1.6", - "pylint==4.0.5", "cffi==2.0.0", "pip==26.0.1", "ddt==1.3.1", "django-crum==0.7.9", - "typesense==2.0.0", "meilisearch==0.40.0", "mccabe==0.7.0", "six==1.17.0", - "platformdirs==4.9.4", "pyproject-api==1.10.0", "tox==4.52.0", "event-tracking==4.0.0", - "pip-tools==7.5.3", "psutil==7.2.2", "pycodestyle==2.14.0", "pylint-plugin-utils==0.9.0", - "certifi==2026.2.25", "pyproject-hooks==1.2.0", "click-didyoumean==0.3.1", - "attrs==26.1.0", "asgiref==3.11.1", "requests==2.33.1", "pynacl==1.6.2", - "code-annotations==3.0.0", "pylint-celery==0.3", "dill==0.4.1", "edx-opaque-keys[django]==4.0.0", - "python-dateutil==2.9.0.post0", "edx-toggles==6.0.0", "amqp==5.3.1", "click==8.3.2", - "charset-normalizer==3.4.7", "pycparser==3.0", "text-unidecode==1.3", - "pytz==2026.1.post1", "vine==5.1.0", "coverage[toml]==7.13.5", "tzdata==2026.1", - "wcwidth==0.6.0", "colorama==0.4.6", "typing-extensions==4.15.0", "mock==5.2.0", - "pluggy==1.6.0", "isort==8.0.1", "openedx-events==11.1.0", "elasticsearch==7.13.4", - "typing-inspection==0.4.2", "edx-ccx-keys==2.0.2", "build==1.4.2", "httpcore==1.0.9", - "virtualenv==21.2.0", "h11==0.16.0", "pylint-django==2.7.0", "setuptools==82.0.1", - "distlib==0.4.0", "edx-lint==6.0.0", "pygments==2.20.0", "dnspython==2.8.0", - "pydantic-core==2.41.5", "edx-django-utils==8.0.1", "django==5.2.13", - "markupsafe==3.0.3", "sqlparse==0.5.5", "python-slugify==8.0.4", "packaging==26.0", - "prompt-toolkit==3.0.52", "tzlocal==5.3.1", "cachetools==7.0.5", "stevedore==5.7.0", - "python-discovery==1.2.2", "pyyaml==6.0.3", "pytest==9.0.3", "click-log==0.4.0", - "annotated-types==0.7.0", "astroid==4.0.4", "anyio==4.13.0", "fastavro==1.12.1"]' + list: '["meilisearch==0.40.0", "click-repl==0.3.0", "tox==4.52.0", "celery==5.6.3", + "dill==0.4.1", "iniconfig==2.3.0", "tzdata==2026.1", "pyproject-api==1.10.0", + "amqp==5.3.1", "pluggy==1.6.0", "platformdirs==4.9.4", "charset-normalizer==3.4.7", + "edx-opaque-keys[django]==4.0.0", "python-dateutil==2.9.0.post0", "edx-toggles==6.0.0", + "typing-inspection==0.4.2", "django==5.2.13", "pynacl==1.6.2", "astroid==4.0.4", + "coverage[toml]==7.13.5", "sqlparse==0.5.5", "event-tracking==4.0.0", + "click-log==0.4.0", "fastavro==1.12.1", "typing-extensions==4.15.0", "certifi==2026.2.25", + "colorama==0.4.6", "edx-lint==6.0.0", "openedx-events==11.1.0", "packaging==26.0", + "build==1.4.2", "text-unidecode==1.3", "django-crum==0.7.9", "virtualenv==21.2.0", + "h11==0.16.0", "edx-ccx-keys==2.0.2", "urllib3==1.26.20", "tzlocal==5.3.1", + "httpcore==1.0.9", "ddt==1.3.1", "cachetools==7.0.5", "distlib==0.4.0", + "tomlkit==0.14.0", "pylint-celery==0.3", "cffi==2.0.0", "pytest==9.0.3", + "pyproject-hooks==1.2.0", "pygments==2.20.0", "annotated-types==0.7.0", + "camel-converter[pydantic]==5.1.0", "python-slugify==8.0.4", "pylint==4.0.5", + "billiard==4.2.4", "pyyaml==6.0.3", "wcwidth==0.6.0", "pycparser==3.0", + "markupsafe==3.0.3", "tomli-w==1.2.0", "mock==5.2.0", "filelock==3.25.2", + "python-discovery==1.2.2", "httpx==0.28.1", "click-plugins==1.1.1.2", + "elasticsearch==7.13.4", "django-waffle==5.0.0", "edx-django-utils==8.0.1", + "jinja2==3.1.6", "pylint-plugin-utils==0.9.0", "kombu==5.6.2", "code-annotations==3.0.0", + "pytest-cov==7.1.0", "pydantic==2.12.5", "prompt-toolkit==3.0.52", "six==1.17.0", + "pip==26.0.1", "idna==3.11", "psutil==7.2.2", "pycodestyle==2.14.0", "dnspython==2.8.0", + "typesense==2.0.0", "pylint-django==2.7.0", "attrs==26.1.0", "pip-tools==7.5.3", + "vine==5.1.0", "asgiref==3.11.1", "pytz==2026.1.post1", "stevedore==5.7.0", + "setuptools==82.0.1", "click==8.3.2", "mccabe==0.7.0", "click-didyoumean==0.3.1", + "isort==8.0.1", "pydantic-core==2.41.5", "pymongo==4.16.0", "wheel==0.46.3", + "anyio==4.13.0", "requests==2.33.1"]' django_packages: django_42: count: 6 - list: '["event-tracking", "code-annotations", "django-waffle", "edx-toggles", + list: '["event-tracking", "edx-toggles", "django-waffle", "code-annotations", "pylint-django", "edx-django-utils"]' total: count: 7 - list: '["event-tracking", "code-annotations", "django-waffle", "edx-toggles", - "django-crum", "pylint-django", "edx-django-utils"]' + list: '["event-tracking", "edx-toggles", "django-waffle", "code-annotations", + "pylint-django", "edx-django-utils", "django-crum"]' upgraded: count: 5 - list: '["event-tracking", "code-annotations", "django-waffle", "edx-toggles", + list: '["event-tracking", "edx-toggles", "django-waffle", "code-annotations", "edx-django-utils"]' docs: build_badge: false @@ -134,7 +134,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 01:05:21 + last_push: 2026-06-08 01:04:55 license: GNU AGPLv3 pulls_count: 5 github_actions: true diff --git a/individual_repo_data/openedx/edx-submissions_repo_health.yaml b/individual_repo_data/openedx/edx-submissions_repo_health.yaml index fd22cc61..11b01e9a 100644 --- a/individual_repo_data/openedx/edx-submissions_repo_health.yaml +++ b/individual_repo_data/openedx/edx-submissions_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,54 +22,53 @@ dependencies: list: '' pypi: count: 10 - list: '["asgiref==3.11.1", "jsonfield==3.2.0", "pyyaml==6.0.3", "django-model-utils==5.0.0", - "sqlparse==0.5.5", "six==1.17.0", "edx-django-release-util==1.5.0", "django==5.2.14", - "djangorestframework==3.17.1", "pytz==2026.2"]' + list: '["django==5.2.14", "django-model-utils==5.0.0", "jsonfield==3.2.0", + "djangorestframework==3.17.1", "pytz==2026.2", "pyyaml==6.0.3", "edx-django-release-util==1.5.0", + "asgiref==3.11.1", "six==1.17.0", "sqlparse==0.5.5"]' pypi_all: count: 106 - list: '["tox==4.53.1", "tomli-w==1.2.0", "pylint==4.0.5", "pylint-django==2.7.0", - "edx-django-release-util==1.5.0", "astroid==4.0.4", "edx-django-utils==8.0.1", - "faker==40.15.0", "pyproject-hooks==1.2.0", "coverage[toml]==7.14.0", - "dnspython==2.8.0", "colorama==0.4.6", "pluggy==1.6.0", "requests==2.34.0", - "mock==5.2.0", "soupsieve==2.8", "packaging==26.2", "filelock==3.29.0", - "urllib3==2.7.0", "edx-ccx-keys==2.0.2", "pytest-django==4.12.0", "annotated-doc==0.0.4", - "factory-boy==3.3.3", "ddt==1.7.2", "sphinxcontrib-devhelp==2.0.0", "babel==2.18.0", - "docutils==0.22.4", "wheel==0.47.0", "cachetools==7.1.1", "coveralls==4.1.0", - "djangorestframework==3.17.1", "freezegun==1.5.5", "dill==0.4.1", "sqlparse==0.5.5", - "click-log==0.4.0", "pycparser==3.0", "setuptools==82.0.1", "edx-lint==6.1.0", - "virtualenv==21.3.2", "distlib==0.4.0", "pyproject-api==1.10.0", "django==5.2.14", - "shellingham==1.5.4", "sphinxcontrib-qthelp==2.0.0", "edx-opaque-keys[django]==4.0.0", - "pytest==9.0.3", "build==1.5.0", "sphinx-book-theme==1.2.0", "markdown-it-py==4.2.0", - "pip-tools==7.5.3", "markupsafe==3.0.3", "psutil==7.2.2", "certifi==2026.4.22", - "django-crum==0.7.9", "six==1.17.0", "imagesize==2.0.0", "pymongo==4.17.0", - "iniconfig==2.3.0", "pip==26.1.1", "sphinx==9.1.0", "typing-extensions==4.15.0", - "roman-numerals==4.1.0", "python-discovery==1.3.0", "asgiref==3.11.1", - "fastavro==1.12.2", "pockets==0.9.1", "sphinxcontrib-htmlhelp==2.1.0", - "text-unidecode==1.3", "idna==3.15", "pylint-celery==0.3", "mccabe==0.7.0", - "pynacl==1.6.2", "accessible-pygments==0.0.5", "pydata-sphinx-theme==0.16.1", - "sphinxcontrib-applehelp==2.0.0", "django-waffle==5.0.0", "sphinxcontrib-jsmath==1.0.1", - "sphinxcontrib-napoleon==0.7", "openedx-events==10.2.0", "pygments==2.20.0", - "jinja2==3.1.6", "rich==15.0.0", "code-annotations==3.0.0", "pycodestyle==2.14.0", - "python-slugify==8.0.4", "isort==8.0.1", "tomlkit==0.15.0", "typer==0.25.1", - "charset-normalizer==3.4.7", "snowballstemmer==3.0.1", "pylint-plugin-utils==0.9.0", - "python-dateutil==2.9.0.post0", "beautifulsoup4==4.14.3", "stevedore==5.7.0", - "alabaster==1.0.0", "attrs==26.1.0", "platformdirs==4.9.6", "pytz==2026.2", - "sphinxcontrib-serializinghtml==2.0.0", "pytest-cov==7.1.0", "cffi==2.0.0", - "jsonfield==3.2.0", "mdurl==0.1.2", "pyyaml==6.0.3", "click==8.3.3", "django-model-utils==5.0.0"]' + list: '["pytest-cov==7.1.0", "pytest==9.0.3", "snowballstemmer==3.1.0", "six==1.17.0", + "coveralls==4.1.0", "jinja2==3.1.6", "pycodestyle==2.14.0", "isort==8.0.1", + "python-dateutil==2.9.0.post0", "filelock==3.29.0", "coverage[toml]==7.14.0", + "sphinxcontrib-htmlhelp==2.1.0", "typing-extensions==4.15.0", "factory-boy==3.3.3", + "djangorestframework==3.17.1", "attrs==26.1.0", "sphinxcontrib-jsmath==1.0.1", + "iniconfig==2.3.0", "sphinx-book-theme==1.2.0", "sqlparse==0.5.5", "markupsafe==3.0.3", + "edx-ccx-keys==2.0.2", "jsonfield==3.2.0", "django-waffle==5.0.0", "code-annotations==3.0.0", + "rich==15.0.0", "django-model-utils==5.0.0", "pymongo==4.17.0", "pockets==0.9.1", + "wheel==0.47.0", "pluggy==1.6.0", "platformdirs==4.9.6", "urllib3==2.7.0", + "stevedore==5.8.0", "pyproject-api==1.10.0", "setuptools==82.0.1", "sphinxcontrib-napoleon==0.7", + "dnspython==2.8.0", "sphinxcontrib-applehelp==2.0.0", "typer==0.26.0", + "markdown-it-py==4.2.0", "build==1.5.0", "dill==0.4.1", "pytz==2026.2", + "tomlkit==0.15.0", "pydata-sphinx-theme==0.16.1", "pylint-plugin-utils==0.9.0", + "accessible-pygments==0.0.5", "charset-normalizer==3.4.7", "babel==2.18.0", + "faker==40.19.1", "distlib==0.4.0", "python-slugify==8.0.4", "edx-django-release-util==1.5.0", + "cffi==2.0.0", "click-log==0.4.0", "pycparser==3.0", "mccabe==0.7.0", + "asgiref==3.11.1", "sphinxcontrib-devhelp==2.0.0", "text-unidecode==1.3", + "ddt==1.7.2", "pylint-celery==0.3", "edx-opaque-keys[django]==4.0.0", + "pytest-django==4.12.0", "soupsieve==2.8", "pip-tools==7.5.3", "pylint-django==2.7.0", + "edx-lint==6.1.0", "sphinxcontrib-qthelp==2.0.0", "edx-django-utils==8.0.1", + "docutils==0.22.4", "click==8.4.1", "idna==3.16", "fastavro==1.12.2", + "mdurl==0.1.2", "tomli-w==1.2.0", "django==5.2.14", "roman-numerals==4.1.0", + "pyproject-hooks==1.2.0", "virtualenv==21.3.3", "packaging==26.2", "sphinx==9.1.0", + "shellingham==1.5.4", "colorama==0.4.6", "annotated-doc==0.0.4", "openedx-events==10.2.0", + "beautifulsoup4==4.14.3", "tox==4.54.0", "imagesize==2.0.0", "pynacl==1.6.2", + "alabaster==1.0.0", "freezegun==1.5.5", "django-crum==0.7.9", "sphinxcontrib-serializinghtml==2.0.0", + "psutil==7.2.2", "astroid==4.0.4", "cachetools==7.1.4", "mock==5.2.0", + "python-discovery==1.3.1", "pylint==4.0.5", "requests==2.34.2", "certifi==2026.5.20", + "pygments==2.20.0", "pip==26.1.1", "pyyaml==6.0.3"]' django_packages: django_42: count: 8 - list: '["pytest-django", "factory-boy", "code-annotations", "django-waffle", - "pylint-django", "edx-django-release-util", "djangorestframework", "edx-django-utils"]' + list: '["django-waffle", "edx-django-utils", "factory-boy", "code-annotations", + "edx-django-release-util", "pylint-django", "pytest-django", "djangorestframework"]' total: count: 11 - list: '["pytest-django", "django-crum", "django-model-utils", "factory-boy", - "code-annotations", "django-waffle", "pylint-django", "edx-django-release-util", - "jsonfield", "djangorestframework", "edx-django-utils"]' + list: '["django-waffle", "edx-django-utils", "factory-boy", "django-crum", + "code-annotations", "edx-django-release-util", "pylint-django", "django-model-utils", + "jsonfield", "pytest-django", "djangorestframework"]' upgraded: count: 4 - list: '["code-annotations", "edx-django-utils", "edx-django-release-util", - "django-waffle"]' + list: '["edx-django-utils", "django-waffle", "edx-django-release-util", "code-annotations"]' docs: build_badge: true python_version: null @@ -96,27 +95,17 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 16 - build_details: '{"total_duration": "1 minutes 23 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, django52-drf315)", "duration": "1 minutes 23 - seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": - "1 minutes 17 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42-drf315)", - "duration": "1 minutes 9 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, - django42-drflatest)", "duration": "1 minutes 6 seconds"}, {"name": "Tests - (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 55 seconds"}, {"name": - "update-pip-graph", "duration": "0 minutes 51 seconds"}, {"name": "check migrations - (ubuntu-latest, 3.12)", "duration": "0 minutes 41 seconds"}, {"name": "Tests - (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 30 seconds"}, {"name": - "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": - "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": - "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": - "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": - "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes - 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 53 seconds"}]}' + branch_count: 15 + build_details: '{"total_duration": "1 minutes 20 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, django52-drflatest)", "duration": "1 minutes + 20 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42-drf315)", "duration": + "1 minutes 19 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52-drf315)", + "duration": "1 minutes 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + django42-drflatest)", "duration": "1 minutes 12 seconds"}, {"name": "Tests + (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 8 seconds"}, {"name": + "check migrations (ubuntu-latest, 3.12)", "duration": "0 minutes 56 seconds"}, + {"name": "update-pip-graph", "duration": "0 minutes 39 seconds"}, {"name": + "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 28 seconds"}]}' code_of_conduct: Other created_at: 2014-06-05 18:19:35 default_branch: master @@ -130,9 +119,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-26 17:26:36 + last_push: 2026-06-05 04:58:39 license: GNU AGPLv3 - pulls_count: 2 + pulls_count: 1 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/edx-toggles_repo_health.yaml b/individual_repo_data/openedx/edx-toggles_repo_health.yaml index f45ccbf4..f2f92dfc 100644 --- a/individual_repo_data/openedx/edx-toggles_repo_health.yaml +++ b/individual_repo_data/openedx/edx-toggles_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,56 +22,56 @@ dependencies: list: '' pypi: count: 18 - list: '["edx-django-utils==8.0.1", "jinja2==3.1.6", "django==5.2.13", "python-slugify==8.0.4", - "pycparser==3.0", "stevedore==5.7.0", "sqlparse==0.5.5", "pynacl==1.6.2", - "markupsafe==3.0.3", "cffi==2.0.0", "pyyaml==6.0.3", "click==8.3.2", "text-unidecode==1.3", - "code-annotations==3.0.0", "django-waffle==5.0.0", "django-crum==0.7.9", - "asgiref==3.11.1", "psutil==7.2.2"]' + list: '["edx-django-utils==8.0.1", "code-annotations==3.0.0", "django-crum==0.7.9", + "jinja2==3.1.6", "cffi==2.0.0", "asgiref==3.11.1", "python-slugify==8.0.4", + "django-waffle==5.0.0", "psutil==7.2.2", "stevedore==5.7.0", "text-unidecode==1.3", + "django==5.2.13", "pycparser==3.0", "pyyaml==6.0.3", "click==8.3.2", "pynacl==1.6.2", + "markupsafe==3.0.3", "sqlparse==0.5.5"]' pypi_all: count: 112 - list: '["pylint-django==2.7.0", "pygments==2.20.0", "markupsafe==3.0.3", "coverage[toml]==7.13.5", - "iniconfig==2.3.0", "sphinxcontrib-qthelp==2.0.0", "click-log==0.4.0", - "atlassian-python-api==4.0.7", "pyproject-api==1.10.0", "sphinxcontrib-devhelp==2.0.0", - "build==1.4.2", "babel==2.18.0", "charset-normalizer==3.4.7", "beautifulsoup4==4.14.3", - "django==5.2.13", "python-discovery==1.2.1", "polib==1.2.0", "cffi==2.0.0", - "mdurl==0.1.2", "code-annotations==3.0.0", "six==1.17.0", "colorama==0.4.6", - "pycodestyle==2.14.0", "jaraco-classes==3.4.0", "lxml[html-clean]==6.0.2", - "soupsieve==2.8.3", "twine==6.2.0", "pip==26.0.1", "sqlparse==0.5.5", - "lxml-html-clean==0.4.4", "pytest==9.0.2", "edx-lint==6.0.0", "pluggy==1.6.0", - "text-unidecode==1.3", "pyproject-hooks==1.2.0", "wheel==0.46.3", "python-slugify==8.0.4", - "platformdirs==4.9.4", "pydata-sphinx-theme==0.16.1", "pynacl==1.6.2", - "keyring==25.7.0", "docutils==0.21.2", "certifi==2026.2.25", "virtualenv==21.2.0", - "more-itertools==11.0.1", "packaging==26.0", "markdown-it-py==4.0.0", - "pytest-cov==7.1.0", "requests==2.33.1", "tox==4.52.0", "filelock==3.25.2", - "django-crum==0.7.9", "mccabe==0.7.0", "rfc3986==2.0.0", "django-waffle==5.0.0", - "snowballstemmer==3.0.1", "edx-i18n-tools==2.0.0", "setuptools==82.0.1", - "accessible-pygments==0.0.5", "jaraco-functools==4.4.0", "pip-tools==7.5.3", - "pytest-django==4.12.0", "chardet==7.4.0.post2", "roman-numerals==4.1.0", - "wrapt==2.1.2", "sphinxcontrib-jsmath==1.0.1", "cachetools==7.0.5", "rich==14.3.3", - "sphinxcontrib-serializinghtml==2.0.0", "pydocstyle==6.3.0", "isort==8.0.1", - "sphinxcontrib-htmlhelp==2.1.0", "idna==3.11", "edx-django-utils==8.0.1", - "jinja2==3.1.6", "nh3==0.3.4", "stevedore==5.7.0", "readme-renderer==44.0", - "diff-cover==10.2.0", "sphinx-book-theme==1.2.0", "sphinxcontrib-applehelp==2.0.0", - "jeepney==0.9.0", "urllib3==2.6.3", "alabaster==1.0.0", "requests-oauthlib==2.0.0", - "pylint-plugin-utils==0.9.0", "click==8.3.2", "tomlkit==0.14.0", "restructuredtext-lint==2.0.2", - "pylint-celery==0.3", "psutil==7.2.2", "pycparser==3.0", "id==1.6.1", - "tomli-w==1.2.0", "secretstorage==3.5.0", "deprecated==1.3.1", "asgiref==3.11.1", - "path==16.16.0", "pylint==4.0.5", "pyyaml==6.0.3", "sphinx==9.1.0", "astroid==4.0.4", - "imagesize==2.0.0", "oauthlib==3.3.1", "doc8==2.0.0", "cryptography==46.0.6", - "typing-extensions==4.15.0", "requests-toolbelt==1.0.0", "dill==0.4.1", - "jaraco-context==6.1.2", "jmespath==1.1.0", "distlib==0.4.0"]' + list: '["tomlkit==0.14.0", "imagesize==2.0.0", "filelock==3.25.2", "psutil==7.2.2", + "mccabe==0.7.0", "polib==1.2.0", "jinja2==3.1.6", "pyproject-hooks==1.2.0", + "idna==3.11", "virtualenv==21.2.0", "tox==4.52.0", "text-unidecode==1.3", + "snowballstemmer==3.0.1", "edx-lint==6.0.0", "typing-extensions==4.15.0", + "jaraco-context==6.1.2", "pyproject-api==1.10.0", "lxml-html-clean==0.4.4", + "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", "pylint==4.0.5", + "click==8.3.2", "build==1.4.2", "readme-renderer==44.0", "django-crum==0.7.9", + "pycparser==3.0", "cryptography==46.0.6", "sphinxcontrib-htmlhelp==2.1.0", + "click-log==0.4.0", "lxml[html-clean]==6.0.2", "django-waffle==5.0.0", + "sphinxcontrib-devhelp==2.0.0", "sphinx-book-theme==1.2.0", "jmespath==1.1.0", + "python-discovery==1.2.1", "wrapt==2.1.2", "jeepney==0.9.0", "atlassian-python-api==4.0.7", + "cffi==2.0.0", "asgiref==3.11.1", "pyyaml==6.0.3", "packaging==26.0", + "pluggy==1.6.0", "pydocstyle==6.3.0", "charset-normalizer==3.4.7", "deprecated==1.3.1", + "nh3==0.3.4", "distlib==0.4.0", "jaraco-classes==3.4.0", "oauthlib==3.3.1", + "rfc3986==2.0.0", "pylint-celery==0.3", "sphinx==9.1.0", "python-slugify==8.0.4", + "chardet==7.4.0.post2", "requests-toolbelt==1.0.0", "mdurl==0.1.2", "docutils==0.21.2", + "pytest-cov==7.1.0", "pydata-sphinx-theme==0.16.1", "pycodestyle==2.14.0", + "roman-numerals==4.1.0", "dill==0.4.1", "django==5.2.13", "pip==26.0.1", + "doc8==2.0.0", "setuptools==82.0.1", "jaraco-functools==4.4.0", "secretstorage==3.5.0", + "code-annotations==3.0.0", "platformdirs==4.9.4", "beautifulsoup4==4.14.3", + "urllib3==2.6.3", "certifi==2026.2.25", "keyring==25.7.0", "sphinxcontrib-applehelp==2.0.0", + "pylint-plugin-utils==0.9.0", "pynacl==1.6.2", "wheel==0.46.3", "colorama==0.4.6", + "isort==8.0.1", "coverage[toml]==7.13.5", "six==1.17.0", "stevedore==5.7.0", + "path==16.16.0", "soupsieve==2.8.3", "more-itertools==11.0.1", "id==1.6.1", + "iniconfig==2.3.0", "cachetools==7.0.5", "diff-cover==10.2.0", "sphinxcontrib-serializinghtml==2.0.0", + "tomli-w==1.2.0", "sqlparse==0.5.5", "pylint-django==2.7.0", "pygments==2.20.0", + "babel==2.18.0", "pytest-django==4.12.0", "edx-i18n-tools==2.0.0", "pip-tools==7.5.3", + "alabaster==1.0.0", "markupsafe==3.0.3", "accessible-pygments==0.0.5", + "edx-django-utils==8.0.1", "requests==2.33.1", "twine==6.2.0", "pytest==9.0.2", + "requests-oauthlib==2.0.0", "rich==14.3.3", "astroid==4.0.4", "restructuredtext-lint==2.0.2", + "markdown-it-py==4.0.0"]' django_packages: django_42: count: 6 - list: '["code-annotations", "edx-django-utils", "django-waffle", "edx-i18n-tools", - "pylint-django", "pytest-django"]' + list: '["edx-i18n-tools", "code-annotations", "pylint-django", "django-waffle", + "edx-django-utils", "pytest-django"]' total: count: 7 - list: '["code-annotations", "edx-django-utils", "django-waffle", "edx-i18n-tools", - "pylint-django", "django-crum", "pytest-django"]' + list: '["edx-i18n-tools", "code-annotations", "pylint-django", "django-waffle", + "edx-django-utils", "django-crum", "pytest-django"]' upgraded: count: 4 - list: '["code-annotations", "edx-django-utils", "edx-i18n-tools", "django-waffle"]' + list: '["edx-i18n-tools", "django-waffle", "edx-django-utils", "code-annotations"]' docs: build_badge: true python_version: null @@ -98,21 +98,30 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 9 - build_details: '{"total_duration": "0 minutes 40 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 35 seconds"}, - {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 33 - seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52)", "duration": "0 - minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, - {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 26 - seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check)", "duration": - "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 - seconds"}]}' + branch_count: 10 + build_details: '{"total_duration": "7991 minutes 57 seconds", "checks": [{"name": + "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": + "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, docs)", "duration": + "0 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality)", + "duration": "0 minutes 33 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + django52)", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": + "0 minutes 32 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", + "duration": "0 minutes 26 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + pii_check)", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": + "0 minutes 24 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 51 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2018-07-05 18:19:46 default_branch: master description: Library and utilities for feature toggles - disk_usage_kb: 735 + disk_usage_kb: 739 fork_count: 16 has_issues: true has_wiki: false @@ -121,9 +130,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:17:44 + last_push: 2026-06-06 08:52:10 license: GNU AGPLv3 - pulls_count: 1 + pulls_count: 2 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/edx-ui-toolkit_repo_health.yaml b/individual_repo_data/openedx/edx-ui-toolkit_repo_health.yaml index 8aee1ebf..ee162c12 100644 --- a/individual_repo_data/openedx/edx-ui-toolkit_repo_health.yaml +++ b/individual_repo_data/openedx/edx-ui-toolkit_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -86,7 +86,7 @@ github: created_at: 2015-08-13 07:28:13 default_branch: master description: A JavaScript toolkit for building edX user interfaces. - disk_usage_kb: 3782 + disk_usage_kb: 3781 fork_count: 14 has_issues: true has_wiki: false @@ -95,7 +95,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 18:31:30 + last_push: 2026-06-02 19:55:23 license: Apache License 2.0 pulls_count: 13 github_actions: true @@ -122,6 +122,7 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://badge.fury.io/gh/edx%2Fedx-ui-toolkit.svg: 503' - 'https://badge.fury.io/js/edx-ui-toolkit: 403' - 'http://ux.edx.org/: HTTPConnectionPool(host=''ux.edx.org'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=''ux.edx.org'', @@ -130,7 +131,6 @@ readme: - 'https://github.com/openedx/edx-ui-toolkit/blob/master/CONTRIBUTING.md: 404' getting-help: false good_links: - - https://badge.fury.io/gh/edx%2Fedx-ui-toolkit.svg - https://badge.fury.io/gh/edx%2Fedx-ui-toolkit - https://badge.fury.io/js/edx-ui-toolkit.svg - https://badge.fury.io/bo/edx-ui-toolkit.svg diff --git a/individual_repo_data/openedx/edx-val_repo_health.yaml b/individual_repo_data/openedx/edx-val_repo_health.yaml index 713834eb..03ac58fa 100644 --- a/individual_repo_data/openedx/edx-val_repo_health.yaml +++ b/individual_repo_data/openedx/edx-val_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,88 +22,89 @@ dependencies: list: '' pypi: count: 120 - list: '["isort==8.0.1", "jaraco-classes==3.4.0", "shellingham==1.5.4", "pylint-django==2.7.0", - "pytest-django==4.12.0", "psutil==7.2.2", "python-dateutil==2.9.0.post0", - "rich==14.3.3", "click-log==0.4.0", "responses==0.26.0", "chardet==7.1.0", - "edx-drf-extensions==10.6.0", "typing-extensions==4.15.0", "pyyaml==6.0.3", - "anyio==4.12.1", "markdown-it-py==4.0.0", "jmespath==1.1.0", "tox==4.49.1", - "cryptography==46.0.0", "distlib==0.4.0", "annotated-doc==0.0.4", "pluggy==1.6.0", - "mccabe==0.7.0", "python-discovery==1.1.3", "keyring==25.7.0", "django-storages==1.14.6", - "edx-lint==5.6.0", "propcache==0.4.1", "yarl==1.23.0", "cachetools==7.0.5", - "pylint-celery==0.3", "annotated-types==0.7.0", "starlette==0.52.1", "uvicorn==0.41.0", - "packaging==26.0", "pycodestyle==2.14.0", "semantic-version==2.10.0", - "mdurl==0.1.2", "platformdirs==4.9.4", "pycparser==3.0", "pytest-cov==7.0.0", - "rfc3986==2.0.0", "astroid==4.0.4", "filelock==3.25.2", "id==1.6.1", "certifi==2026.2.25", - "idna==3.11", "secretstorage==3.5.0", "pymongo==4.16.0", "dnspython==2.8.0", - "cffi==1.17.1", "snowballstemmer==3.0.1", "urllib3==2.6.3", "docutils==0.22.4", - "stevedore==5.7.0", "django-waffle==5.0.0", "djangorestframework==3.16.1", - "iniconfig==2.3.0", "code-annotations==2.3.2", "botocore==1.42.66", "pydantic==2.12.5", - "charset-normalizer==3.4.5", "multidict==6.7.1", "boto3==1.42.66", "virtualenv==21.2.0", - "django-crum==0.7.9", "edx-opaque-keys==3.1.0", "pydocstyle==6.3.0", "jeepney==0.9.0", - "fastapi==0.135.1", "more-itertools==10.8.0", "s3transfer==0.16.0", "markupsafe==3.0.3", - "pyjwt[crypto]==2.11.0", "asgiref==3.11.1", "edx-django-release-util==1.5.0", - "fs==2.4.16", "pact-python==2.3.3", "pylint-plugin-utils==0.9.0", "tomlkit==0.14.0", - "setuptools==81.0.0", "pysrt==1.1.2", "typer==0.24.1", "text-unidecode==1.3", - "python-slugify==8.0.4", "diff-cover==10.2.0", "jinja2==3.1.6", "coveralls==4.1.0", - "dill==0.4.1", "click==8.3.1", "pygments==2.19.2", "twine==6.2.0", "pylint==4.0.5", - "pyproject-api==1.10.0", "jaraco-functools==4.4.0", "appdirs==1.4.4", - "typing-inspection==0.4.2", "edx-toggles==5.4.1", "edx-django-utils==8.0.1", - "requests-toolbelt==1.0.0", "tomli-w==1.2.0", "nh3==0.3.3", "pillow==12.1.1", - "pynacl==1.6.0", "pytest==9.0.2", "coverage[toml]==7.13.4", "pydantic-core==2.41.5", - "h11==0.16.0", "mock==5.2.0", "django-model-utils==5.0.0", "requests==2.32.5", - "lxml==6.0.2", "drf-jwt==1.19.2", "ddt==1.7.2", "readme-renderer==44.0", - "six==1.17.0", "django==5.2.12", "colorama==0.4.6", "sqlparse==0.5.5", - "jaraco-context==6.1.1"]' + list: '["coveralls==4.1.0", "chardet==7.1.0", "propcache==0.4.1", "click-log==0.4.0", + "boto3==1.42.66", "cffi==1.17.1", "pylint-django==2.7.0", "code-annotations==2.3.2", + "requests-toolbelt==1.0.0", "pytest==9.0.2", "docutils==0.22.4", "typing-extensions==4.15.0", + "annotated-doc==0.0.4", "pillow==12.1.1", "tomlkit==0.14.0", "coverage[toml]==7.13.4", + "filelock==3.25.2", "pydocstyle==6.3.0", "readme-renderer==44.0", "jmespath==1.1.0", + "distlib==0.4.0", "diff-cover==10.2.0", "keyring==25.7.0", "pluggy==1.6.0", + "annotated-types==0.7.0", "pyproject-api==1.10.0", "multidict==6.7.1", + "certifi==2026.2.25", "pyyaml==6.0.3", "ddt==1.7.2", "platformdirs==4.9.4", + "colorama==0.4.6", "edx-opaque-keys==3.1.0", "pydantic-core==2.41.5", + "semantic-version==2.10.0", "edx-lint==5.6.0", "setuptools==81.0.0", "pact-python==2.3.3", + "python-discovery==1.1.3", "pycparser==3.0", "packaging==26.0", "jaraco-context==6.1.1", + "yarl==1.23.0", "pyjwt[crypto]==2.11.0", "typer==0.24.1", "rich==14.3.3", + "drf-jwt==1.19.2", "pygments==2.19.2", "psutil==7.2.2", "edx-django-utils==8.0.1", + "pylint==4.0.5", "pymongo==4.16.0", "urllib3==2.6.3", "iniconfig==2.3.0", + "pylint-celery==0.3", "astroid==4.0.4", "sqlparse==0.5.5", "mock==5.2.0", + "fastapi==0.135.1", "jaraco-classes==3.4.0", "pylint-plugin-utils==0.9.0", + "charset-normalizer==3.4.5", "markdown-it-py==4.0.0", "edx-drf-extensions==10.6.0", + "markupsafe==3.0.3", "djangorestframework==3.16.1", "nh3==0.3.3", "id==1.6.1", + "rfc3986==2.0.0", "python-slugify==8.0.4", "dill==0.4.1", "django==5.2.12", + "h11==0.16.0", "appdirs==1.4.4", "six==1.17.0", "botocore==1.42.66", "mccabe==0.7.0", + "typing-inspection==0.4.2", "django-model-utils==5.0.0", "virtualenv==21.2.0", + "jeepney==0.9.0", "jinja2==3.1.6", "edx-django-release-util==1.5.0", "asgiref==3.11.1", + "python-dateutil==2.9.0.post0", "twine==6.2.0", "more-itertools==10.8.0", + "lxml==6.0.2", "requests==2.32.5", "pydantic==2.12.5", "isort==8.0.1", + "cryptography==46.0.0", "stevedore==5.7.0", "pycodestyle==2.14.0", "text-unidecode==1.3", + "starlette==0.52.1", "cachetools==7.0.5", "anyio==4.12.1", "jaraco-functools==4.4.0", + "dnspython==2.8.0", "fs==2.4.16", "edx-toggles==5.4.1", "shellingham==1.5.4", + "mdurl==0.1.2", "snowballstemmer==3.0.1", "tox==4.49.1", "responses==0.26.0", + "uvicorn==0.41.0", "pytest-cov==7.0.0", "tomli-w==1.2.0", "django-waffle==5.0.0", + "django-crum==0.7.9", "s3transfer==0.16.0", "click==8.3.1", "django-storages==1.14.6", + "pysrt==1.1.2", "pytest-django==4.12.0", "secretstorage==3.5.0", "idna==3.11", + "pynacl==1.6.0"]' pypi_all: count: 125 - list: '["isort==8.0.1", "jaraco-classes==3.4.0", "shellingham==1.5.4", "pylint-django==2.7.0", - "pytest-django==4.12.0", "psutil==7.2.2", "python-dateutil==2.9.0.post0", - "rich==14.3.3", "click-log==0.4.0", "responses==0.26.0", "chardet==7.1.0", - "edx-drf-extensions==10.6.0", "typing-extensions==4.15.0", "pyyaml==6.0.3", - "anyio==4.12.1", "markdown-it-py==4.0.0", "jmespath==1.1.0", "tox==4.49.1", - "cryptography==46.0.0", "distlib==0.4.0", "annotated-doc==0.0.4", "pluggy==1.6.0", - "mccabe==0.7.0", "python-discovery==1.1.3", "keyring==25.7.0", "django-storages==1.14.6", - "edx-lint==5.6.0", "propcache==0.4.1", "yarl==1.23.0", "cachetools==7.0.5", - "pylint-celery==0.3", "annotated-types==0.7.0", "starlette==0.52.1", "uvicorn==0.41.0", - "build==1.4.0", "packaging==26.0", "pycodestyle==2.14.0", "semantic-version==2.10.0", - "mdurl==0.1.2", "platformdirs==4.9.4", "pycparser==3.0", "pytest-cov==7.0.0", - "rfc3986==2.0.0", "astroid==4.0.4", "filelock==3.25.2", "id==1.6.1", "certifi==2026.2.25", - "idna==3.11", "secretstorage==3.5.0", "pymongo==4.16.0", "dnspython==2.8.0", - "cffi==1.17.1", "snowballstemmer==3.0.1", "pip==26.0.1", "urllib3==2.6.3", - "docutils==0.22.4", "stevedore==5.7.0", "django-waffle==5.0.0", "djangorestframework==3.16.1", - "iniconfig==2.3.0", "code-annotations==2.3.2", "botocore==1.42.66", "pydantic==2.12.5", - "charset-normalizer==3.4.5", "multidict==6.7.1", "boto3==1.42.66", "virtualenv==21.2.0", - "django-crum==0.7.9", "edx-opaque-keys==3.1.0", "pydocstyle==6.3.0", "jeepney==0.9.0", - "fastapi==0.135.1", "more-itertools==10.8.0", "s3transfer==0.16.0", "markupsafe==3.0.3", - "pyjwt[crypto]==2.11.0", "asgiref==3.11.1", "edx-django-release-util==1.5.0", - "fs==2.4.16", "pact-python==2.3.3", "pylint-plugin-utils==0.9.0", "tomlkit==0.14.0", - "setuptools==81.0.0", "pysrt==1.1.2", "typer==0.24.1", "text-unidecode==1.3", - "python-slugify==8.0.4", "diff-cover==10.2.0", "jinja2==3.1.6", "coveralls==4.1.0", - "dill==0.4.1", "click==8.3.1", "pygments==2.19.2", "twine==6.2.0", "pylint==4.0.5", - "pyproject-api==1.10.0", "wheel==0.46.3", "jaraco-functools==4.4.0", "appdirs==1.4.4", - "typing-inspection==0.4.2", "edx-toggles==5.4.1", "edx-django-utils==8.0.1", - "requests-toolbelt==1.0.0", "tomli-w==1.2.0", "nh3==0.3.3", "pillow==12.1.1", - "pyproject-hooks==1.2.0", "pynacl==1.6.0", "pytest==9.0.2", "coverage[toml]==7.13.4", - "pydantic-core==2.41.5", "h11==0.16.0", "mock==5.2.0", "django-model-utils==5.0.0", - "requests==2.32.5", "lxml==6.0.2", "pip-tools==7.5.3", "drf-jwt==1.19.2", - "ddt==1.7.2", "readme-renderer==44.0", "six==1.17.0", "django==5.2.12", - "colorama==0.4.6", "sqlparse==0.5.5", "jaraco-context==6.1.1"]' + list: '["coveralls==4.1.0", "chardet==7.1.0", "propcache==0.4.1", "click-log==0.4.0", + "boto3==1.42.66", "cffi==1.17.1", "pylint-django==2.7.0", "code-annotations==2.3.2", + "requests-toolbelt==1.0.0", "pytest==9.0.2", "docutils==0.22.4", "typing-extensions==4.15.0", + "annotated-doc==0.0.4", "pillow==12.1.1", "wheel==0.46.3", "pyproject-hooks==1.2.0", + "tomlkit==0.14.0", "coverage[toml]==7.13.4", "filelock==3.25.2", "pydocstyle==6.3.0", + "readme-renderer==44.0", "jmespath==1.1.0", "distlib==0.4.0", "diff-cover==10.2.0", + "keyring==25.7.0", "pluggy==1.6.0", "pip==26.0.1", "annotated-types==0.7.0", + "pyproject-api==1.10.0", "multidict==6.7.1", "certifi==2026.2.25", "pyyaml==6.0.3", + "ddt==1.7.2", "platformdirs==4.9.4", "colorama==0.4.6", "edx-opaque-keys==3.1.0", + "pydantic-core==2.41.5", "semantic-version==2.10.0", "edx-lint==5.6.0", + "setuptools==81.0.0", "build==1.4.0", "pact-python==2.3.3", "python-discovery==1.1.3", + "pycparser==3.0", "packaging==26.0", "pip-tools==7.5.3", "jaraco-context==6.1.1", + "yarl==1.23.0", "pyjwt[crypto]==2.11.0", "typer==0.24.1", "rich==14.3.3", + "drf-jwt==1.19.2", "pygments==2.19.2", "psutil==7.2.2", "edx-django-utils==8.0.1", + "pylint==4.0.5", "pymongo==4.16.0", "urllib3==2.6.3", "iniconfig==2.3.0", + "pylint-celery==0.3", "astroid==4.0.4", "sqlparse==0.5.5", "mock==5.2.0", + "fastapi==0.135.1", "jaraco-classes==3.4.0", "pylint-plugin-utils==0.9.0", + "charset-normalizer==3.4.5", "markdown-it-py==4.0.0", "edx-drf-extensions==10.6.0", + "markupsafe==3.0.3", "djangorestframework==3.16.1", "nh3==0.3.3", "id==1.6.1", + "rfc3986==2.0.0", "python-slugify==8.0.4", "dill==0.4.1", "django==5.2.12", + "h11==0.16.0", "appdirs==1.4.4", "six==1.17.0", "botocore==1.42.66", "mccabe==0.7.0", + "typing-inspection==0.4.2", "django-model-utils==5.0.0", "virtualenv==21.2.0", + "jeepney==0.9.0", "jinja2==3.1.6", "edx-django-release-util==1.5.0", "asgiref==3.11.1", + "python-dateutil==2.9.0.post0", "twine==6.2.0", "more-itertools==10.8.0", + "lxml==6.0.2", "requests==2.32.5", "pydantic==2.12.5", "isort==8.0.1", + "cryptography==46.0.0", "stevedore==5.7.0", "pycodestyle==2.14.0", "text-unidecode==1.3", + "starlette==0.52.1", "cachetools==7.0.5", "anyio==4.12.1", "jaraco-functools==4.4.0", + "dnspython==2.8.0", "fs==2.4.16", "edx-toggles==5.4.1", "shellingham==1.5.4", + "mdurl==0.1.2", "snowballstemmer==3.0.1", "tox==4.49.1", "responses==0.26.0", + "uvicorn==0.41.0", "pytest-cov==7.0.0", "tomli-w==1.2.0", "django-waffle==5.0.0", + "django-crum==0.7.9", "s3transfer==0.16.0", "click==8.3.1", "django-storages==1.14.6", + "pysrt==1.1.2", "pytest-django==4.12.0", "secretstorage==3.5.0", "idna==3.11", + "pynacl==1.6.0"]' django_packages: django_42: count: 11 - list: '["djangorestframework", "edx-toggles", "edx-django-utils", "edx-opaque-keys", - "edx-django-release-util", "edx-drf-extensions", "django-waffle", "code-annotations", - "pylint-django", "pytest-django", "django-storages"]' + list: '["edx-toggles", "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", + "djangorestframework", "pytest-django", "django-storages", "pylint-django", + "edx-django-release-util", "django-waffle", "code-annotations"]' total: count: 14 - list: '["djangorestframework", "edx-toggles", "edx-django-utils", "edx-opaque-keys", - "edx-django-release-util", "edx-drf-extensions", "django-waffle", "django-model-utils", - "code-annotations", "drf-jwt", "pylint-django", "django-crum", "pytest-django", - "django-storages"]' + list: '["edx-toggles", "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", + "djangorestframework", "pytest-django", "django-model-utils", "django-crum", + "django-storages", "drf-jwt", "pylint-django", "edx-django-release-util", + "django-waffle", "code-annotations"]' upgraded: count: 7 - list: '["edx-toggles", "edx-django-utils", "edx-opaque-keys", "edx-django-release-util", - "edx-drf-extensions", "django-waffle", "code-annotations"]' + list: '["edx-toggles", "edx-drf-extensions", "edx-opaque-keys", "edx-django-utils", + "edx-django-release-util", "django-waffle", "code-annotations"]' docs: build_badge: false python_version: null @@ -131,28 +132,29 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 52 - build_details: '{"total_duration": "3323 minutes 6 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 57 seconds"}, + build_details: '{"total_duration": "2106 minutes 46 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 55 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes 30 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", - "duration": "1 minutes 19 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, - quality)", "duration": "1 minutes 5 seconds"}, {"name": "Pact Provider Verification", - "duration": "0 minutes 43 seconds"}, {"name": "push", "duration": "0 minutes - 22 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "1 minutes 20 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + quality)", "duration": "1 minutes 6 seconds"}, {"name": "Pact Provider Verification", + "duration": "0 minutes 41 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "-1 minutes 59 seconds"}]}' + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2014-07-08 20:11:27 default_branch: master description: '' - disk_usage_kb: 1720 + disk_usage_kb: 1670 fork_count: 37 has_issues: true has_wiki: false @@ -161,9 +163,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 03:27:45 + last_push: 2026-06-05 03:28:00 license: GNU AGPLv3 - pulls_count: 6 + pulls_count: 5 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/edx-when_repo_health.yaml b/individual_repo_data/openedx/edx-when_repo_health.yaml index bb16db5a..c744946d 100644 --- a/individual_repo_data/openedx/edx-when_repo_health.yaml +++ b/individual_repo_data/openedx/edx-when_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,72 +22,71 @@ dependencies: list: '' pypi: count: 41 - list: '["simplejson==3.20.2", "drf-jwt==1.19.2", "django==5.2.13", "cryptography==46.0.6", - "django-crum==0.7.9", "markupsafe==3.0.3", "pyjwt[crypto]==2.12.1", "dnspython==2.8.0", - "edx-opaque-keys==4.0.0", "pycparser==3.0", "djangorestframework==3.17.1", - "six==1.17.0", "typing-extensions==4.15.0", "charset-normalizer==3.4.7", - "edx-django-utils==8.0.1", "pytz==2026.1.post1", "django-waffle==5.0.0", - "psutil==7.2.2", "pymongo==4.16.0", "click==8.3.2", "django-model-utils==5.0.0", - "requests==2.33.1", "certifi==2026.2.25", "lxml==6.0.2", "appdirs==1.4.4", - "web-fragments==4.0.0", "fs==2.4.16", "python-dateutil==2.9.0.post0", - "asgiref==3.11.1", "xblock==6.0.0", "stevedore==5.7.0", "sqlparse==0.5.5", - "semantic-version==2.10.0", "idna==3.11", "cffi==2.0.0", "edx-drf-extensions==10.6.0", - "pynacl==1.6.2", "webob==1.8.9", "mako==1.3.10", "pyyaml==6.0.3", "urllib3==2.6.3"]' + list: '["pynacl==1.6.2", "django-crum==0.7.9", "pycparser==3.0", "charset-normalizer==3.4.7", + "requests==2.33.1", "web-fragments==4.0.0", "cryptography==46.0.6", "drf-jwt==1.19.2", + "psutil==7.2.2", "sqlparse==0.5.5", "djangorestframework==3.17.1", "asgiref==3.11.1", + "edx-opaque-keys==4.0.0", "django-waffle==5.0.0", "xblock==6.0.0", "pyjwt[crypto]==2.12.1", + "mako==1.3.10", "pymongo==4.16.0", "six==1.17.0", "edx-django-utils==8.0.1", + "simplejson==3.20.2", "markupsafe==3.0.3", "click==8.3.2", "lxml==6.0.2", + "typing-extensions==4.15.0", "pytz==2026.1.post1", "idna==3.11", "certifi==2026.2.25", + "django-model-utils==5.0.0", "webob==1.8.9", "python-dateutil==2.9.0.post0", + "appdirs==1.4.4", "django==5.2.13", "urllib3==2.6.3", "dnspython==2.8.0", + "edx-drf-extensions==10.6.0", "stevedore==5.7.0", "fs==2.4.16", "pyyaml==6.0.3", + "cffi==2.0.0", "semantic-version==2.10.0"]' pypi_all: count: 134 - list: '["simplejson==3.20.2", "pluggy==1.6.0", "snowballstemmer==3.0.1", "sphinxcontrib-devhelp==2.0.0", - "pyproject-api==1.10.0", "sphinxcontrib-qthelp==2.0.0", "django-crum==0.7.9", - "wheel==0.46.3", "edx-opaque-keys==4.0.0", "requests-toolbelt==1.0.0", - "pycparser==3.0", "djangorestframework==3.17.1", "path-py==11.5.0", "imagesize==2.0.0", - "pylint-django==2.7.0", "django-model-utils==5.0.0", "soupsieve==2.8.3", - "python-slugify==8.0.4", "lxml==6.0.2", "mdurl==0.1.2", "cachetools==7.0.5", - "python-dateutil==2.9.0.post0", "asgiref==3.11.1", "stevedore==5.7.0", - "packaging==26.0", "tox==4.52.0", "virtualenv==21.2.0", "platformdirs==4.9.4", - "secretstorage==3.5.0", "pylint==4.0.5", "lxml-html-clean==0.4.4", "mako==1.3.10", - "id==1.6.1", "markdown-it-py==4.0.0", "restructuredtext-lint==2.0.2", - "coverage==7.13.5", "rich==14.3.3", "pydata-sphinx-theme==0.16.1", "drf-jwt==1.19.2", - "keyring==25.7.0", "setuptools==69.5.1", "cryptography==46.0.6", "mccabe==0.7.0", - "colorama==0.4.6", "pylint-celery==0.3", "astroid==4.0.4", "ddt==1.7.2", - "pytest-django==4.12.0", "rfc3986==2.0.0", "jeepney==0.9.0", "lxml[html-clean]==6.0.2", - "pyproject-hooks==1.2.0", "sphinx-book-theme==1.2.0", "babel==2.18.0", - "pylint-plugin-utils==0.9.0", "psutil==7.2.2", "click==8.3.2", "roman-numerals==4.1.0", - "requests==2.33.1", "more-itertools==11.0.1", "iniconfig==2.3.0", "appdirs==1.4.4", - "pydocstyle==6.3.0", "jinja2==3.1.6", "pytest==9.0.2", "text-unidecode==1.3", - "filelock==3.25.2", "idna==3.11", "alabaster==1.0.0", "nh3==0.3.4", "edx-drf-extensions==10.6.0", - "pynacl==1.6.2", "jaraco-context==6.1.2", "codecov==2.1.13", "urllib3==2.6.3", - "tomli-w==1.2.0", "sphinxcontrib-jsmath==1.0.1", "markupsafe==3.0.3", - "pyjwt[crypto]==2.12.1", "distlib==0.4.0", "zipp==3.23.0", "inflect==7.5.0", - "coverage[toml]==7.13.5", "typing-extensions==4.15.0", "charset-normalizer==3.4.7", - "pytz==2026.1.post1", "django-waffle==5.0.0", "pycodestyle==2.14.0", "build==1.4.2", - "tomlkit==0.14.0", "edx-lint==6.0.0", "doc8==2.0.0", "sqlparse==0.5.5", - "semantic-version==2.10.0", "accessible-pygments==0.0.5", "webob==1.8.9", - "twine==6.2.0", "pip==26.0.1", "diff-cover==4.0.0", "path==16.16.0", "polib==1.2.0", - "pip-tools==7.5.3", "sphinxcontrib-applehelp==2.0.0", "django==5.2.13", - "docutils==0.21.2", "python-discovery==1.2.1", "beautifulsoup4==4.14.3", - "dnspython==2.8.0", "pytest-cov==7.1.0", "six==1.17.0", "importlib-metadata==9.0.0", - "typeguard==4.5.1", "jinja2-pluralize==0.3.0", "edx-i18n-tools==2.0.0", - "sphinxcontrib-serializinghtml==2.0.0", "edx-django-utils==8.0.1", "pymongo==4.16.0", - "dill==0.4.1", "jaraco-functools==4.4.0", "isort==8.0.1", "pygments==2.20.0", - "certifi==2026.2.25", "sphinxcontrib-htmlhelp==2.1.0", "sphinx==9.1.0", - "click-log==0.4.0", "web-fragments==4.0.0", "fs==2.4.16", "code-annotations==3.0.0", - "xblock==6.0.0", "cffi==2.0.0", "mock==5.2.0", "readme-renderer==44.0", - "pyyaml==6.0.3", "jaraco-classes==3.4.0"]' + list: '["mock==5.2.0", "secretstorage==3.5.0", "diff-cover==4.0.0", "pycparser==3.0", + "charset-normalizer==3.4.7", "text-unidecode==1.3", "web-fragments==4.0.0", + "readme-renderer==44.0", "coverage[toml]==7.13.5", "keyring==25.7.0", + "sqlparse==0.5.5", "colorama==0.4.6", "djangorestframework==3.17.1", "pydocstyle==6.3.0", + "jaraco-classes==3.4.0", "tomlkit==0.14.0", "edx-opaque-keys==4.0.0", + "astroid==4.0.4", "jinja2==3.1.6", "sphinx==9.1.0", "isort==8.0.1", "mako==1.3.10", + "six==1.17.0", "simplejson==3.20.2", "click==8.3.2", "lxml==6.0.2", "docutils==0.21.2", + "restructuredtext-lint==2.0.2", "platformdirs==4.9.4", "virtualenv==21.2.0", + "python-dateutil==2.9.0.post0", "django==5.2.13", "python-discovery==1.2.1", + "beautifulsoup4==4.14.3", "pip-tools==7.5.3", "path-py==11.5.0", "pytest-django==4.12.0", + "soupsieve==2.8.3", "pyproject-api==1.10.0", "coverage==7.13.5", "inflect==7.5.0", + "tox==4.52.0", "rfc3986==2.0.0", "setuptools==69.5.1", "mccabe==0.7.0", + "pygments==2.20.0", "tomli-w==1.2.0", "cachetools==7.0.5", "importlib-metadata==9.0.0", + "jaraco-functools==4.4.0", "packaging==26.0", "ddt==1.7.2", "accessible-pygments==0.0.5", + "pytz==2026.1.post1", "lxml-html-clean==0.4.4", "appdirs==1.4.4", "babel==2.18.0", + "urllib3==2.6.3", "dnspython==2.8.0", "wheel==0.46.3", "pytest-cov==7.1.0", + "code-annotations==3.0.0", "sphinxcontrib-qthelp==2.0.0", "fs==2.4.16", + "mdurl==0.1.2", "codecov==2.1.13", "pynacl==1.6.2", "typeguard==4.5.1", + "pycodestyle==2.14.0", "django-crum==0.7.9", "sphinxcontrib-devhelp==2.0.0", + "distlib==0.4.0", "psutil==7.2.2", "jaraco-context==6.1.2", "django-waffle==5.0.0", + "path==16.16.0", "roman-numerals==4.1.0", "filelock==3.25.2", "xblock==6.0.0", + "pymongo==4.16.0", "edx-django-utils==8.0.1", "pydata-sphinx-theme==0.16.1", + "id==1.6.1", "iniconfig==2.3.0", "markdown-it-py==4.0.0", "idna==3.11", + "alabaster==1.0.0", "pylint-celery==0.3", "sphinx-book-theme==1.2.0", + "requests-toolbelt==1.0.0", "webob==1.8.9", "pylint-django==2.7.0", "zipp==3.23.0", + "stevedore==5.7.0", "pyyaml==6.0.3", "build==1.4.2", "pip==26.0.1", "click-log==0.4.0", + "typing-extensions==4.15.0", "pylint-plugin-utils==0.9.0", "sphinxcontrib-jsmath==1.0.1", + "rich==14.3.3", "requests==2.33.1", "lxml[html-clean]==6.0.2", "cryptography==46.0.6", + "drf-jwt==1.19.2", "doc8==2.0.0", "polib==1.2.0", "sphinxcontrib-applehelp==2.0.0", + "imagesize==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "asgiref==3.11.1", + "edx-i18n-tools==2.0.0", "pyproject-hooks==1.2.0", "jeepney==0.9.0", "edx-lint==6.0.0", + "twine==6.2.0", "python-slugify==8.0.4", "pyjwt[crypto]==2.12.1", "markupsafe==3.0.3", + "snowballstemmer==3.0.1", "jinja2-pluralize==0.3.0", "sphinxcontrib-htmlhelp==2.1.0", + "pylint==4.0.5", "dill==0.4.1", "certifi==2026.2.25", "django-model-utils==5.0.0", + "nh3==0.3.4", "pluggy==1.6.0", "edx-drf-extensions==10.6.0", "cffi==2.0.0", + "pytest==9.0.2", "more-itertools==11.0.1", "semantic-version==2.10.0"]' django_packages: django_42: count: 11 - list: '["edx-django-utils", "edx-opaque-keys", "edx-drf-extensions", "edx-i18n-tools", - "djangorestframework", "web-fragments", "xblock", "pylint-django", "pytest-django", - "django-waffle", "code-annotations"]' + list: '["djangorestframework", "edx-opaque-keys", "code-annotations", "pytest-django", + "xblock", "edx-i18n-tools", "django-waffle", "web-fragments", "edx-django-utils", + "pylint-django", "edx-drf-extensions"]' total: count: 14 - list: '["edx-django-utils", "edx-opaque-keys", "django-model-utils", "edx-drf-extensions", - "edx-i18n-tools", "djangorestframework", "web-fragments", "django-crum", - "drf-jwt", "xblock", "pylint-django", "pytest-django", "django-waffle", - "code-annotations"]' + list: '["djangorestframework", "edx-opaque-keys", "code-annotations", "pytest-django", + "drf-jwt", "django-crum", "xblock", "edx-i18n-tools", "django-waffle", + "django-model-utils", "web-fragments", "edx-django-utils", "pylint-django", + "edx-drf-extensions"]' upgraded: count: 8 - list: '["edx-django-utils", "edx-opaque-keys", "edx-drf-extensions", "edx-i18n-tools", - "web-fragments", "xblock", "django-waffle", "code-annotations"]' + list: '["edx-opaque-keys", "code-annotations", "xblock", "edx-i18n-tools", + "django-waffle", "web-fragments", "edx-django-utils", "edx-drf-extensions"]' docs: build_badge: true python_version: null @@ -115,7 +114,7 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 24 - build_details: '{"total_duration": "1 minutes 35 seconds", "checks": [{"name": + build_details: '{"total_duration": "4410 minutes 5 seconds", "checks": [{"name": "Tests (ubuntu-latest, 3.12, django42, mysql)", "duration": "1 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, quality, postgres)", "duration": "1 minutes 30 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django42, postgres)", @@ -128,8 +127,18 @@ github: postgres)", "duration": "1 minutes 21 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, django52, mysql)", "duration": "1 minutes 18 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check, mysql)", "duration": "1 minutes 13 seconds"}, - {"name": "check migrations (ubuntu-latest, 3.12)", "duration": "0 minutes - 59 seconds"}]}' + {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", + "duration": "1 minutes 12 seconds"}, {"name": "check migrations (ubuntu-latest, + 3.12)", "duration": "0 minutes 59 seconds"}, {"name": "add_remove_labels / + add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2019-03-07 18:43:09 default_branch: master @@ -143,7 +152,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:21:03 + last_push: 2026-06-02 16:50:54 license: GNU AGPLv3 pulls_count: 9 github_actions: true diff --git a/individual_repo_data/openedx/enmerkar-underscore_repo_health.yaml b/individual_repo_data/openedx/enmerkar-underscore_repo_health.yaml index 50a755b3..c3f7a36c 100644 --- a/individual_repo_data/openedx/enmerkar-underscore_repo_health.yaml +++ b/individual_repo_data/openedx/enmerkar-underscore_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,23 +22,24 @@ dependencies: list: '' pypi: count: 5 - list: '["sqlparse==0.5.3", "asgiref==3.10.0", "babel==2.17.0", "django==4.2.25", + list: '["django==4.2.25", "babel==2.17.0", "sqlparse==0.5.3", "asgiref==3.10.0", "enmerkar==0.7.1"]' pypi_all: count: 50 - list: '["six==1.17.0", "setuptools==80.9.0", "sphinxcontrib-qthelp==2.0.0", - "pytest-pep8==1.0.6", "pyyaml==6.0.3", "imagesize==1.4.1", "jinja2==3.1.6", - "babel==2.17.0", "execnet==2.1.1", "requests==2.32.5", "sphinxcontrib-htmlhelp==2.1.0", - "mccabe==0.7.0", "sphinxcontrib-applehelp==2.0.0", "coverage[toml]==7.11.0", - "iniconfig==2.3.0", "sqlparse==0.5.3", "pytest-flakes==4.0.5", "asgiref==3.10.0", - "certifi==2025.10.5", "pip==25.2", "django==4.2.25", "enmerkar==0.7.1", - "urllib3==2.5.0", "build==1.3.0", "click==8.3.0", "packaging==25.0", "pycodestyle==2.14.0", - "wheel==0.45.1", "pip-tools==7.5.1", "sphinxcontrib-jsmath==1.0.1", "pytest-cache==1.0", - "pep8==1.7.1", "roman-numerals-py==3.1.0", "pyflakes==3.4.0", "sphinx==8.2.3", - "sphinxcontrib-devhelp==2.0.0", "python-coveralls==2.9.3", "flake8==7.3.0", - "pytest==8.4.2", "markupsafe==3.0.3", "charset-normalizer==3.4.4", "pluggy==1.6.0", - "alabaster==1.0.0", "docutils==0.21.2", "pytest-cov==7.0.0", "snowballstemmer==3.0.1", - "idna==3.11", "pygments==2.19.2", "pyproject-hooks==1.2.0", "sphinxcontrib-serializinghtml==2.0.0"]' + list: '["idna==3.11", "markupsafe==3.0.3", "pytest==8.4.2", "mccabe==0.7.0", + "six==1.17.0", "flake8==7.3.0", "pycodestyle==2.14.0", "sphinxcontrib-devhelp==2.0.0", + "pygments==2.19.2", "pip-tools==7.5.1", "execnet==2.1.1", "packaging==25.0", + "enmerkar==0.7.1", "pip==25.2", "pluggy==1.6.0", "setuptools==80.9.0", + "sphinxcontrib-serializinghtml==2.0.0", "django==4.2.25", "build==1.3.0", + "babel==2.17.0", "sphinxcontrib-applehelp==2.0.0", "click==8.3.0", "asgiref==3.10.0", + "pyflakes==3.4.0", "pyyaml==6.0.3", "requests==2.32.5", "iniconfig==2.3.0", + "sphinxcontrib-qthelp==2.0.0", "urllib3==2.5.0", "coverage[toml]==7.11.0", + "python-coveralls==2.9.3", "pytest-cov==7.0.0", "sphinxcontrib-jsmath==1.0.1", + "charset-normalizer==3.4.4", "wheel==0.45.1", "pep8==1.7.1", "sqlparse==0.5.3", + "docutils==0.21.2", "sphinx==8.2.3", "sphinxcontrib-htmlhelp==2.1.0", + "pytest-flakes==4.0.5", "pyproject-hooks==1.2.0", "jinja2==3.1.6", "roman-numerals-py==3.1.0", + "pytest-pep8==1.0.6", "snowballstemmer==3.0.1", "certifi==2025.10.5", + "imagesize==1.4.1", "alabaster==1.0.0", "pytest-cache==1.0"]' django_packages: django_42: count: 0 @@ -131,17 +132,18 @@ ownership: {} pinned_python_dependencies: 1 readme: bad_links: + - 'https://github.com/openedx/enmerkar-underscore/actions?query=workflow%3A%22Python+CI%22: + 504' - 'https://pypip.in/d/django-babel-underscore/badge.png: HTTPSConnectionPool(host=''pypip.in'', port=443): Max retries exceeded with url: /d/django-babel-underscore/badge.png (Caused by ConnectTimeoutError(, ''Connection to pypip.in timed out. (connect timeout=None)''))' - - 'http://django-babel-underscore.readthedocs.org: 404' + at 0x7ff810943ec0>, ''Connection to pypip.in timed out. (connect timeout=None)''))' + - 'http://django-babel-underscore.readthedocs.org: 429' getting-help: false good_links: - https://badge.fury.io/py/django-babel-underscore.png - http://badge.fury.io/py/django-babel-underscore - https://github.com/openedx/enmerkar-underscore/workflows/Python%20CI/badge.svg?branch=master - - https://github.com/openedx/enmerkar-underscore/actions?query=workflow%3A%22Python+CI%22 - https://pypi.python.org/pypi/django-babel-underscore irc-missing: true mailing-list-missing: true diff --git a/individual_repo_data/openedx/enterprise-access_repo_health.yaml b/individual_repo_data/openedx/enterprise-access_repo_health.yaml index fa94a991..7cee686b 100644 --- a/individual_repo_data/openedx/enterprise-access_repo_health.yaml +++ b/individual_repo_data/openedx/enterprise-access_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,127 +22,127 @@ dependencies: list: '' pypi: count: 117 - list: '["djangoql==0.18.1", "jinja2==3.1.6", "typing-extensions==4.15.0", - "drf-spectacular==0.29.0", "charset-normalizer==3.4.4", "requests-oauthlib==2.0.0", - "click==8.3.1", "mysqlclient==2.2.7", "stripe==14.1.0", "simplejson==3.20.2", - "jsonfield2==4.0.0.post0", "djangorestframework==3.16.1", "idna==3.11", - "semantic-version==2.10.0", "drf-jwt==1.19.2", "python-dateutil==2.9.0.post0", - "edx-django-release-util==1.5.0", "edx-rbac==2.1.0", "gunicorn==23.0.0", - "backoff==1.10.0", "edx-django-utils==8.0.1", "drf-yasg==1.21.11", "django==5.2.10", - "django-log-request-id==2.1.0", "edx-opaque-keys[django]==3.0.0", "django-model-utils==5.0.0", - "cffi==2.0.0", "cattrs==25.3.0", "certifi==2026.1.4", "gevent==25.9.1", - "coreapi==2.3.3", "edx-celeryutils==1.4.0", "django-celery-results==2.6.0", - "prompt-toolkit==3.0.52", "redis==7.1.0", "pymongo==4.16.0", "dnspython==2.8.0", - "edx-ccx-keys==2.0.2", "django-object-actions==5.0.0", "click-repl==0.3.0", - "oauthlib==3.3.1", "cryptography==46.0.3", "edx-event-bus-kafka==6.1.0", - "stevedore==5.6.0", "edx-auth-backends==4.6.2", "pycparser==2.23", "itypes==1.2.0", - "python-slugify==8.0.4", "click-plugins==1.1.1.2", "text-unidecode==1.3", - "social-auth-app-django==5.7.0", "djangorestframework-csv==3.0.2", "edx-drf-extensions==10.6.0", - "defusedxml==0.7.1", "pynacl==1.6.2", "python3-openid==3.2.0", "openedx-events==10.5.0", - "kombu==5.6.2", "asgiref==3.11.0", "pygments==2.19.2", "click-didyoumean==0.3.1", - "vine==5.1.0", "jsonschema==4.26.0", "markupsafe==3.0.3", "billiard==4.2.4", - "django-rest-swagger==2.2.0", "six==1.17.0", "greenlet==3.3.0", "celery==5.6.2", - "wcwidth==0.2.14", "django-filter==25.2", "tzdata==2025.3", "jsonschema-specifications==2025.9.1", - "psutil==7.2.1", "edx-braze-client==0.2.5", "pyyaml==6.0.3", "edx-rest-api-client==6.2.0", - "attrs==25.4.0", "ply==3.11", "sqlparse==0.5.5", "zope-event==6.1", "packaging==25.0", - "django-cors-headers==4.9.0", "inflection==0.5.1", "avro==1.12.1", "tzlocal==5.3.1", - "pymemcache==4.0.0", "django-extensions==4.1", "rpds-py==0.30.0", "django-waffle==5.0.0", - "openapi-codec==1.3.2", "zope-interface==8.2", "edx-api-doc-tools==2.1.0", - "rules==3.5", "social-auth-core==4.8.3", "django-simple-history==3.11.0", - "amqp==5.3.1", "uritemplate==4.2.0", "analytics-python==1.4.post1", "python-memcached==1.62", - "confluent-kafka[avro,schema-registry]==2.6.1", "referencing==0.37.0", - "django-crum==0.7.9", "edx-enterprise-subsidy-client==2.0.19", "edx-toggles==5.4.1", - "django-crispy-forms==2.5", "code-annotations==2.3.0", "pyjwt[crypto]==2.10.1", - "monotonic==1.6", "urllib3==2.6.3", "crispy-bootstrap5==2025.6", "requests==2.32.5", - "coreschema==0.0.4", "pytz==2025.2", "fastavro==1.12.1", "jsonfield==3.2.0", - "django-countries==8.2.0"]' + list: '["stevedore==5.6.0", "zope-event==6.1", "avro==1.12.1", "cattrs==25.3.0", + "greenlet==3.3.0", "charset-normalizer==3.4.4", "six==1.17.0", "gunicorn==23.0.0", + "uritemplate==4.2.0", "edx-celeryutils==1.4.0", "django-object-actions==5.0.0", + "cryptography==46.0.3", "edx-drf-extensions==10.6.0", "itypes==1.2.0", + "python-memcached==1.62", "djangorestframework==3.16.1", "code-annotations==2.3.0", + "jsonschema-specifications==2025.9.1", "click-didyoumean==0.3.1", "psutil==7.2.1", + "djangoql==0.18.1", "analytics-python==1.4.post1", "typing-extensions==4.15.0", + "django-crispy-forms==2.5", "pymemcache==4.0.0", "edx-enterprise-subsidy-client==2.0.19", + "markupsafe==3.0.3", "monotonic==1.6", "edx-django-utils==8.0.1", "celery==5.6.2", + "sqlparse==0.5.5", "django==5.2.10", "django-extensions==4.1", "gevent==25.9.1", + "django-crum==0.7.9", "social-auth-core==4.8.3", "coreapi==2.3.3", "backoff==1.10.0", + "pynacl==1.6.2", "edx-opaque-keys[django]==3.0.0", "pytz==2025.2", "semantic-version==2.10.0", + "pycparser==2.23", "python-dateutil==2.9.0.post0", "edx-toggles==5.4.1", + "urllib3==2.6.3", "openedx-events==10.5.0", "click==8.3.1", "dnspython==2.8.0", + "python3-openid==3.2.0", "kombu==5.6.2", "wcwidth==0.2.14", "jinja2==3.1.6", + "referencing==0.37.0", "coreschema==0.0.4", "certifi==2026.1.4", "tzlocal==5.3.1", + "redis==7.1.0", "pygments==2.19.2", "mysqlclient==2.2.7", "django-cors-headers==4.9.0", + "django-log-request-id==2.1.0", "attrs==25.4.0", "simplejson==3.20.2", + "edx-auth-backends==4.6.2", "requests-oauthlib==2.0.0", "jsonfield==3.2.0", + "idna==3.11", "zope-interface==8.2", "vine==5.1.0", "drf-jwt==1.19.2", + "drf-spectacular==0.29.0", "fastavro==1.12.1", "django-rest-swagger==2.2.0", + "requests==2.32.5", "oauthlib==3.3.1", "tzdata==2025.3", "django-model-utils==5.0.0", + "cffi==2.0.0", "prompt-toolkit==3.0.52", "edx-ccx-keys==2.0.2", "pymongo==4.16.0", + "django-waffle==5.0.0", "packaging==25.0", "edx-event-bus-kafka==6.1.0", + "inflection==0.5.1", "jsonschema==4.26.0", "asgiref==3.11.0", "openapi-codec==1.3.2", + "stripe==14.1.0", "text-unidecode==1.3", "confluent-kafka[avro,schema-registry]==2.6.1", + "crispy-bootstrap5==2025.6", "drf-yasg==1.21.11", "click-plugins==1.1.1.2", + "billiard==4.2.4", "edx-rest-api-client==6.2.0", "rpds-py==0.30.0", "social-auth-app-django==5.7.0", + "edx-braze-client==0.2.5", "defusedxml==0.7.1", "ply==3.11", "pyjwt[crypto]==2.10.1", + "django-celery-results==2.6.0", "django-countries==8.2.0", "djangorestframework-csv==3.0.2", + "edx-django-release-util==1.5.0", "amqp==5.3.1", "pyyaml==6.0.3", "click-repl==0.3.0", + "edx-rbac==2.1.0", "jsonfield2==4.0.0.post0", "python-slugify==8.0.4", + "django-simple-history==3.11.0", "django-filter==25.2", "edx-api-doc-tools==2.1.0", + "rules==3.5"]' pypi_all: count: 202 - list: '["jaraco-functools==4.4.0", "cachetools==6.2.4", "djangoql==0.18.1", - "jinja2==3.1.6", "pycodestyle==2.14.0", "pylint==4.0.4", "typing-extensions==4.15.0", - "requests-toolbelt==1.0.0", "distlib==0.4.0", "drf-spectacular==0.29.0", - "django-debug-toolbar==6.1.0", "charset-normalizer==3.4.4", "alabaster==1.0.0", - "pytest-cov==7.0.0", "requests-oauthlib==2.0.0", "click==8.3.1", "mysqlclient==2.2.7", - "stripe==14.1.0", "simplejson==3.20.2", "jsonfield2==4.0.0.post0", "djangorestframework==3.16.1", - "django-dynamic-fixture==4.0.1", "idna==3.11", "pydocstyle==6.3.0", "semantic-version==2.10.0", - "drf-jwt==1.19.2", "python-dateutil==2.9.0.post0", "faker==40.1.0", "colorama==0.4.6", - "edx-django-release-util==1.5.0", "edx-rbac==2.1.0", "tox==4.34.1", "gunicorn==23.0.0", - "dill==0.4.0", "docutils==0.21.2", "sphinx-book-theme==1.1.4", "backoff==1.10.0", - "edx-django-utils==8.0.1", "jeepney==0.9.0", "jaraco-context==6.0.2", - "beautifulsoup4==4.14.3", "drf-yasg==1.21.11", "mccabe==0.7.0", "django==5.2.10", - "sphinx==9.1.0", "django-log-request-id==2.1.0", "edx-opaque-keys[django]==3.0.0", - "astroid==4.0.3", "django-model-utils==5.0.0", "cffi==2.0.0", "cattrs==25.3.0", - "pylint-django==2.7.0", "edx-i18n-tools==1.9.0", "certifi==2026.1.4", - "filelock==3.20.3", "coreapi==2.3.3", "pip-tools==7.5.2", "gevent==25.9.1", - "edx-celeryutils==1.4.0", "django-celery-results==2.6.0", "prompt-toolkit==3.0.52", - "sphinxcontrib-jsmath==1.0.1", "redis==7.1.0", "pymongo==4.16.0", "dnspython==2.8.0", - "roman-numerals==4.1.0", "soupsieve==2.8.1", "platformdirs==4.5.1", "docutils==0.22.4", - "pluggy==1.6.0", "polib==1.2.0", "edx-ccx-keys==2.0.2", "django-object-actions==5.0.0", - "nh3==0.3.2", "click-repl==0.3.0", "oauthlib==3.3.1", "cryptography==46.0.3", - "edx-event-bus-kafka==6.1.0", "click-log==0.4.0", "secretstorage==3.5.0", - "stevedore==5.6.0", "imagesize==1.4.1", "sphinxcontrib-devhelp==2.0.0", - "edx-auth-backends==4.6.2", "pycparser==2.23", "itypes==1.2.0", "python-slugify==8.0.4", - "setuptools==80.9.0", "more-itertools==10.8.0", "click-plugins==1.1.1.2", - "factory-boy==3.3.3", "rich==14.2.0", "text-unidecode==1.3", "sphinxcontrib-qthelp==2.0.0", - "social-auth-app-django==5.7.0", "djangorestframework-csv==3.0.2", "path==16.16.0", - "edx-drf-extensions==10.6.0", "defusedxml==0.7.1", "pynacl==1.6.2", "python3-openid==3.2.0", - "openedx-events==10.5.0", "kombu==5.6.2", "asgiref==3.11.0", "pygments==2.19.2", - "click-didyoumean==0.3.1", "vine==5.1.0", "jsonschema==4.26.0", "markupsafe==3.0.3", - "billiard==4.2.4", "django-rest-swagger==2.2.0", "accessible-pygments==0.0.5", - "six==1.17.0", "greenlet==3.3.0", "celery==5.6.2", "jaraco-classes==3.4.0", - "wcwidth==0.2.14", "django-filter==25.2", "pyproject-api==1.10.0", "jsonschema-specifications==2025.9.1", - "tzdata==2025.3", "psutil==7.2.1", "edx-braze-client==0.2.5", "twine==6.2.0", - "pyyaml==6.0.3", "edx-rest-api-client==6.2.0", "rfc3986==2.0.0", "attrs==25.4.0", - "pydata-sphinx-theme==0.15.4", "ply==3.11", "wheel==0.45.1", "build==1.4.0", - "coverage[toml]==7.13.1", "edx-lint==5.6.0", "babel==2.17.0", "dictdiffer==0.9.0", - "isort==7.0.0", "lxml-html-clean==0.4.3", "sqlparse==0.5.5", "sphinxcontrib-serializinghtml==2.0.0", - "zope-event==6.1", "ddt==1.7.2", "packaging==25.0", "django-cors-headers==4.9.0", - "tomlkit==0.13.3", "inflection==0.5.1", "freezegun==1.5.5", "id==1.5.0", - "pytest-dictsdiff==0.5.8", "avro==1.12.1", "pytest-django==4.11.1", "tzlocal==5.3.1", - "sphinxcontrib-htmlhelp==2.1.0", "keyring==25.7.0", "pymemcache==4.0.0", - "django-extensions==4.1", "rpds-py==0.30.0", "pyproject-hooks==1.2.0", - "django-waffle==5.0.0", "diff-cover==10.2.0", "openapi-codec==1.3.2", - "pylint-celery==0.3", "pytest==9.0.2", "zope-interface==8.2", "edx-api-doc-tools==2.1.0", - "rules==3.5", "social-auth-core==4.8.3", "pylint-plugin-utils==0.9.0", - "django-simple-history==3.11.0", "amqp==5.3.1", "virtualenv==20.36.1", - "mdurl==0.1.2", "pip==25.3", "restructuredtext-lint==2.0.2", "chardet==5.2.0", - "uritemplate==4.2.0", "iniconfig==2.3.0", "sphinxcontrib-applehelp==2.0.0", - "analytics-python==1.4.post1", "python-memcached==1.62", "confluent-kafka[avro,schema-registry]==2.6.1", - "referencing==0.37.0", "django-crum==0.7.9", "edx-enterprise-subsidy-client==2.0.19", - "doc8==2.0.0", "edx-toggles==5.4.1", "snowballstemmer==3.0.1", "markdown-it-py==4.0.0", - "django-crispy-forms==2.5", "code-annotations==2.3.0", "pyjwt[crypto]==2.10.1", - "monotonic==1.6", "urllib3==2.6.3", "crispy-bootstrap5==2025.6", "requests==2.32.5", - "coreschema==0.0.4", "pytz==2025.2", "readme-renderer==44.0", "lxml[html-clean]==6.0.2", - "fastavro==1.12.1", "jsonfield==3.2.0", "django-countries==8.2.0"]' + list: '["stevedore==5.6.0", "alabaster==1.0.0", "markdown-it-py==4.0.0", "tomlkit==0.13.3", + "zope-event==6.1", "avro==1.12.1", "cattrs==25.3.0", "six==1.17.0", "charset-normalizer==3.4.4", + "requests-toolbelt==1.0.0", "greenlet==3.3.0", "doc8==2.0.0", "gunicorn==23.0.0", + "uritemplate==4.2.0", "polib==1.2.0", "edx-celeryutils==1.4.0", "django-object-actions==5.0.0", + "cryptography==46.0.3", "edx-drf-extensions==10.6.0", "itypes==1.2.0", + "jaraco-classes==3.4.0", "python-memcached==1.62", "djangorestframework==3.16.1", + "sphinxcontrib-htmlhelp==2.1.0", "lxml[html-clean]==6.0.2", "code-annotations==2.3.0", + "pydocstyle==6.3.0", "nh3==0.3.2", "jsonschema-specifications==2025.9.1", + "lxml-html-clean==0.4.3", "click-didyoumean==0.3.1", "path==16.16.0", + "sphinxcontrib-devhelp==2.0.0", "docutils==0.22.4", "psutil==7.2.1", "twine==6.2.0", + "dill==0.4.0", "pyproject-api==1.10.0", "djangoql==0.18.1", "analytics-python==1.4.post1", + "ddt==1.7.2", "typing-extensions==4.15.0", "django-crispy-forms==2.5", + "pymemcache==4.0.0", "edx-enterprise-subsidy-client==2.0.19", "markupsafe==3.0.3", + "freezegun==1.5.5", "django-debug-toolbar==6.1.0", "sphinx-book-theme==1.1.4", + "monotonic==1.6", "edx-django-utils==8.0.1", "roman-numerals==4.1.0", + "pydata-sphinx-theme==0.15.4", "mccabe==0.7.0", "celery==5.6.2", "sqlparse==0.5.5", + "django==5.2.10", "django-extensions==4.1", "jaraco-context==6.0.2", "gevent==25.9.1", + "django-crum==0.7.9", "social-auth-core==4.8.3", "coreapi==2.3.3", "backoff==1.10.0", + "pynacl==1.6.2", "edx-opaque-keys[django]==3.0.0", "pytz==2025.2", "cachetools==6.2.4", + "semantic-version==2.10.0", "diff-cover==10.2.0", "restructuredtext-lint==2.0.2", + "secretstorage==3.5.0", "pycparser==2.23", "rich==14.2.0", "docutils==0.21.2", + "pycodestyle==2.14.0", "python-dateutil==2.9.0.post0", "edx-toggles==5.4.1", + "urllib3==2.6.3", "beautifulsoup4==4.14.3", "openedx-events==10.5.0", + "click==8.3.1", "dnspython==2.8.0", "build==1.4.0", "python3-openid==3.2.0", + "chardet==5.2.0", "kombu==5.6.2", "wcwidth==0.2.14", "babel==2.17.0", + "iniconfig==2.3.0", "jinja2==3.1.6", "edx-lint==5.6.0", "jaraco-functools==4.4.0", + "referencing==0.37.0", "coreschema==0.0.4", "certifi==2026.1.4", "tzlocal==5.3.1", + "redis==7.1.0", "pygments==2.19.2", "sphinxcontrib-jsmath==1.0.1", "click-log==0.4.0", + "sphinxcontrib-applehelp==2.0.0", "mysqlclient==2.2.7", "django-cors-headers==4.9.0", + "faker==40.1.0", "dictdiffer==0.9.0", "django-log-request-id==2.1.0", + "attrs==25.4.0", "readme-renderer==44.0", "simplejson==3.20.2", "edx-auth-backends==4.6.2", + "mdurl==0.1.2", "accessible-pygments==0.0.5", "requests-oauthlib==2.0.0", + "isort==7.0.0", "jsonfield==3.2.0", "idna==3.11", "zope-interface==8.2", + "vine==5.1.0", "fastavro==1.12.1", "distlib==0.4.0", "drf-jwt==1.19.2", + "drf-spectacular==0.29.0", "django-rest-swagger==2.2.0", "setuptools==80.9.0", + "requests==2.32.5", "pip==25.3", "oauthlib==3.3.1", "pylint==4.0.4", "pylint-celery==0.3", + "tzdata==2025.3", "sphinxcontrib-qthelp==2.0.0", "sphinx==9.1.0", "pip-tools==7.5.2", + "virtualenv==20.36.1", "tox==4.34.1", "django-model-utils==5.0.0", "cffi==2.0.0", + "edx-i18n-tools==1.9.0", "soupsieve==2.8.1", "prompt-toolkit==3.0.52", + "django-dynamic-fixture==4.0.1", "edx-ccx-keys==2.0.2", "pylint-django==2.7.0", + "pymongo==4.16.0", "sphinxcontrib-serializinghtml==2.0.0", "django-waffle==5.0.0", + "rfc3986==2.0.0", "packaging==25.0", "platformdirs==4.5.1", "edx-event-bus-kafka==6.1.0", + "inflection==0.5.1", "jsonschema==4.26.0", "asgiref==3.11.0", "pytest-django==4.11.1", + "pytest-dictsdiff==0.5.8", "openapi-codec==1.3.2", "factory-boy==3.3.3", + "stripe==14.1.0", "text-unidecode==1.3", "confluent-kafka[avro,schema-registry]==2.6.1", + "pytest-cov==7.0.0", "crispy-bootstrap5==2025.6", "drf-yasg==1.21.11", + "click-plugins==1.1.1.2", "jeepney==0.9.0", "imagesize==1.4.1", "billiard==4.2.4", + "edx-rest-api-client==6.2.0", "keyring==25.7.0", "rpds-py==0.30.0", "social-auth-app-django==5.7.0", + "edx-braze-client==0.2.5", "defusedxml==0.7.1", "ply==3.11", "pyjwt[crypto]==2.10.1", + "pylint-plugin-utils==0.9.0", "django-celery-results==2.6.0", "django-countries==8.2.0", + "djangorestframework-csv==3.0.2", "edx-django-release-util==1.5.0", "id==1.5.0", + "amqp==5.3.1", "coverage[toml]==7.13.1", "pyyaml==6.0.3", "astroid==4.0.3", + "click-repl==0.3.0", "edx-rbac==2.1.0", "pluggy==1.6.0", "snowballstemmer==3.0.1", + "jsonfield2==4.0.0.post0", "colorama==0.4.6", "pyproject-hooks==1.2.0", + "python-slugify==8.0.4", "django-simple-history==3.11.0", "filelock==3.20.3", + "pytest==9.0.2", "more-itertools==10.8.0", "django-filter==25.2", "wheel==0.45.1", + "edx-api-doc-tools==2.1.0", "rules==3.5"]' django_packages: django_42: count: 25 - list: '["django-countries", "pylint-django", "edx-django-release-util", "pytest-django", - "django-cors-headers", "edx-drf-extensions", "django-extensions", "django-debug-toolbar", - "social-auth-app-django", "django-filter", "edx-auth-backends", "edx-rest-api-client", - "edx-i18n-tools", "django-waffle", "django-object-actions", "edx-rbac", - "factory-boy", "django-crispy-forms", "django-celery-results", "edx-toggles", - "edx-celeryutils", "edx-django-utils", "edx-api-doc-tools", "code-annotations", - "djangorestframework"]' + list: '["django-waffle", "pytest-django", "django-object-actions", "factory-boy", + "edx-drf-extensions", "django-crispy-forms", "edx-toggles", "django-celery-results", + "djangorestframework", "edx-celeryutils", "django-debug-toolbar", "edx-rest-api-client", + "edx-api-doc-tools", "code-annotations", "django-filter", "edx-django-utils", + "edx-auth-backends", "django-extensions", "edx-i18n-tools", "social-auth-app-django", + "django-cors-headers", "django-countries", "pylint-django", "edx-rbac", + "edx-django-release-util"]' total: count: 35 - list: '["django-countries", "pylint-django", "edx-django-release-util", "drf-jwt", - "pytest-django", "django-cors-headers", "edx-drf-extensions", "django-extensions", - "django-simple-history", "drf-yasg", "django-model-utils", "django-dynamic-fixture", - "django-debug-toolbar", "social-auth-app-django", "django-rest-swagger", - "djangorestframework-csv", "django-filter", "edx-auth-backends", "edx-rest-api-client", - "rules", "edx-i18n-tools", "django-waffle", "django-object-actions", "edx-rbac", - "factory-boy", "django-crispy-forms", "django-celery-results", "jsonfield", - "edx-toggles", "edx-celeryutils", "edx-django-utils", "django-crum", "edx-api-doc-tools", - "code-annotations", "djangorestframework"]' + list: '["django-waffle", "pytest-django", "django-rest-swagger", "django-object-actions", + "factory-boy", "django-model-utils", "edx-drf-extensions", "django-crispy-forms", + "django-dynamic-fixture", "django-crum", "edx-toggles", "djangorestframework-csv", + "django-celery-results", "djangorestframework", "edx-celeryutils", "django-debug-toolbar", + "edx-rest-api-client", "django-simple-history", "edx-api-doc-tools", "code-annotations", + "rules", "django-filter", "edx-django-utils", "jsonfield", "edx-auth-backends", + "django-extensions", "edx-i18n-tools", "social-auth-app-django", "django-cors-headers", + "django-countries", "drf-jwt", "drf-yasg", "pylint-django", "edx-rbac", + "edx-django-release-util"]' upgraded: count: 20 - list: '["django-countries", "edx-django-release-util", "django-cors-headers", - "edx-drf-extensions", "django-extensions", "django-debug-toolbar", "social-auth-app-django", - "django-filter", "edx-auth-backends", "edx-rest-api-client", "edx-i18n-tools", - "django-waffle", "edx-rbac", "django-crispy-forms", "django-celery-results", - "edx-toggles", "edx-celeryutils", "edx-django-utils", "edx-api-doc-tools", - "code-annotations"]' + list: '["django-waffle", "edx-drf-extensions", "django-crispy-forms", "edx-toggles", + "django-celery-results", "edx-celeryutils", "django-debug-toolbar", "edx-rest-api-client", + "edx-api-doc-tools", "code-annotations", "django-filter", "edx-django-utils", + "edx-auth-backends", "django-extensions", "edx-i18n-tools", "social-auth-app-django", + "django-cors-headers", "django-countries", "edx-rbac", "edx-django-release-util"]' docs: build_badge: true python_version: null @@ -170,10 +170,11 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 78 - build_details: '{"total_duration": "2156 minutes 14 seconds", "checks": [{"name": + build_details: '{"total_duration": "12235 minutes 39 seconds", "checks": [{"name": "tests (3.12, pinned)", "duration": "11 minutes 28 seconds"}, {"name": "tests (3.12, 5.2)", "duration": "11 minutes 27 seconds"}, {"name": "upgrade_requirements - (3.12)", "duration": "2 minutes 19 seconds"}, {"name": "self_assign_by_comment + (3.12)", "duration": "2 minutes 19 seconds"}, {"name": "upgrade_requirements + (3.12)", "duration": "2 minutes 5 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels @@ -196,7 +197,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:19:00 + last_push: 2026-06-08 03:18:24 license: GNU AGPLv3 pulls_count: 22 github_actions: true @@ -223,13 +224,13 @@ ownership: {} pinned_python_dependencies: 5 readme: bad_links: + - 'https://github.com/edx/devstack: 504' - 'https://openedx-slack-invite.herokuapp.com/: 404' - 'https://github.com/edx/enterprise-access/workflows/Python%20CI/badge.svg?branch=main: 404' - 'https://enterprise-access.readthedocs.io/en/latest/: 404' getting-help: true good_links: - - https://github.com/edx/devstack - https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://discuss.openedx.org diff --git a/individual_repo_data/openedx/enterprise-catalog_repo_health.yaml b/individual_repo_data/openedx/enterprise-catalog_repo_health.yaml index 5cbeef03..3e167b49 100644 --- a/individual_repo_data/openedx/enterprise-catalog_repo_health.yaml +++ b/individual_repo_data/openedx/enterprise-catalog_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,121 +22,123 @@ dependencies: list: '' pypi: count: 119 - list: '["semantic-version==2.10.0", "httpx==0.28.1", "pyyaml==6.0.3", "six==1.17.0", - "oauthlib==3.3.1", "httpcore==1.0.9", "billiard==4.2.4", "inflection==0.5.1", - "python-memcached==1.62", "asgiref==3.11.0", "jsonschema==4.26.0", "monotonic==1.6", - "simplejson==3.20.2", "python3-openid==3.2.0", "djangorestframework-xml==2.0.0", - "edx-drf-extensions==10.6.0", "threadpoolctl==3.6.0", "rules==3.5", "prompt-toolkit==3.0.52", - "edx-rbac==2.1.0", "requests-oauthlib==2.0.0", "django-crum==0.7.9", "social-auth-app-django==5.7.0", - "vine==5.1.0", "algoliasearch==3.0.0", "django-extensions==4.1", "django-import-export==4.4.0", - "charset-normalizer==3.4.4", "urllib3==2.6.3", "django-log-request-id==2.1.0", - "greenlet==3.3.0", "edx-auth-backends==4.6.2", "django==5.2.10", "markupsafe==3.0.3", - "tqdm==4.67.1", "django-clearcache==1.2.1", "pyjwt[crypto]==2.10.1", "djangoql==0.18.1", - "tablib==3.9.0", "typing-extensions==4.15.0", "pycparser==2.23", "defusedxml==0.7.1", - "text-unidecode==1.3", "edx-opaque-keys==3.0.0", "psutil==7.2.1", "celery==5.6.2", - "django-simple-history==3.11.0", "python-dateutil==2.9.0.post0", "pytz==2025.2", - "click==8.3.1", "edx-django-release-util==1.5.0", "h11==0.16.0", "wcwidth==0.2.14", - "cffi==2.0.0", "django-model-utils==5.0.0", "numpy==2.4.1", "zope-interface==8.2", - "requests==2.32.5", "django-celery-results==2.6.0", "jsonschema-specifications==2025.9.1", - "backoff==1.10.0", "dnspython==2.8.0", "edx-django-utils==8.0.1", "tzlocal==5.3.1", - "referencing==0.37.0", "anyio==4.12.1", "pynacl==1.6.2", "sniffio==1.3.1", - "rpds-py==0.30.0", "zope-event==6.1", "ply==3.11", "edx-toggles==5.4.1", - "gevent==25.9.1", "idna==3.11", "django-cors-headers==4.9.0", "django-waffle==5.0.0", - "pydantic-core==2.41.5", "scipy==1.17.0", "packaging==25.0", "code-annotations==2.3.0", - "analytics-python==1.4.post1", "drf-spectacular==0.29.0", "python-slugify==8.0.4", - "jsonfield==3.2.0", "openai==1.13.3", "joblib==1.5.3", "cryptography==46.0.3", - "annotated-types==0.7.0", "stevedore==5.6.0", "jsonfield2==4.0.0.post0", - "tzdata==2025.3", "distro==1.9.0", "sqlparse==0.5.5", "edx-celeryutils==1.4.0", - "social-auth-core==4.8.3", "drf-jwt==1.19.2", "gunicorn==23.0.0", "uritemplate==4.2.0", - "certifi==2026.1.4", "diff-match-patch==20241021", "edx-rest-api-client==6.2.0", - "scikit-learn==1.8.0", "django-config-models==2.9.0", "amqp==5.3.1", "pymongo==4.16.0", - "mysqlclient==2.2.7", "typing-inspection==0.4.2", "pydantic==2.12.5", - "click-plugins==1.1.1.2", "click-didyoumean==0.3.1", "attrs==25.4.0", - "jinja2==3.1.6", "xlsxwriter==3.2.9", "click-repl==0.3.0", "zipp==3.23.0", - "pymemcache==4.0.0", "redis==7.1.0", "kombu==5.6.2", "djangorestframework==3.16.1"]' + list: '["jsonfield2==4.0.0.post0", "tzdata==2025.3", "monotonic==1.6", "pytz==2025.2", + "cffi==2.0.0", "dnspython==2.8.0", "edx-drf-extensions==10.6.0", "django-cors-headers==4.9.0", + "simplejson==3.20.2", "numpy==2.4.1", "click-repl==0.3.0", "semantic-version==2.10.0", + "scikit-learn==1.8.0", "cryptography==46.0.3", "zope-interface==8.2", + "vine==5.1.0", "pyjwt[crypto]==2.10.1", "django-clearcache==1.2.1", "sqlparse==0.5.5", + "packaging==25.0", "jsonschema-specifications==2025.9.1", "psutil==7.2.1", + "tzlocal==5.3.1", "backoff==1.10.0", "attrs==25.4.0", "edx-toggles==5.4.1", + "algoliasearch==3.0.0", "httpcore==1.0.9", "asgiref==3.11.0", "edx-django-utils==8.0.1", + "django-celery-results==2.6.0", "stevedore==5.6.0", "social-auth-app-django==5.7.0", + "edx-django-release-util==1.5.0", "python3-openid==3.2.0", "django-simple-history==3.11.0", + "edx-rest-api-client==6.2.0", "amqp==5.3.1", "uritemplate==4.2.0", "drf-spectacular==0.29.0", + "certifi==2026.1.4", "mysqlclient==2.2.7", "edx-rbac==2.1.0", "edx-celeryutils==1.4.0", + "gunicorn==23.0.0", "jsonschema==4.26.0", "djangorestframework-xml==2.0.0", + "pymemcache==4.0.0", "redis==7.1.0", "requests-oauthlib==2.0.0", "gevent==25.9.1", + "kombu==5.6.2", "djangoql==0.18.1", "typing-extensions==4.15.0", "jsonfield==3.2.0", + "zipp==3.23.0", "referencing==0.37.0", "click-plugins==1.1.1.2", "charset-normalizer==3.4.4", + "pydantic-core==2.41.5", "httpx==0.28.1", "markupsafe==3.0.3", "python-slugify==8.0.4", + "idna==3.11", "jinja2==3.1.6", "ply==3.11", "django-model-utils==5.0.0", + "rpds-py==0.30.0", "zope-event==6.1", "edx-auth-backends==4.6.2", "analytics-python==1.4.post1", + "greenlet==3.3.0", "defusedxml==0.7.1", "xlsxwriter==3.2.9", "tqdm==4.67.1", + "annotated-types==0.7.0", "djangorestframework==3.16.1", "click==8.3.1", + "text-unidecode==1.3", "django==5.2.10", "distro==1.9.0", "django-import-export==4.4.0", + "pymongo==4.16.0", "django-extensions==4.1", "tablib==3.9.0", "anyio==4.12.1", + "openai==1.13.3", "code-annotations==2.3.0", "threadpoolctl==3.6.0", "drf-jwt==1.19.2", + "celery==5.6.2", "urllib3==2.6.3", "pycparser==2.23", "edx-opaque-keys==3.0.0", + "pynacl==1.6.2", "wcwidth==0.2.14", "click-didyoumean==0.3.1", "django-waffle==5.0.0", + "django-crum==0.7.9", "diff-match-patch==20241021", "h11==0.16.0", "rules==3.5", + "social-auth-core==4.8.3", "oauthlib==3.3.1", "python-memcached==1.62", + "sniffio==1.3.1", "six==1.17.0", "billiard==4.2.4", "scipy==1.17.0", "django-config-models==2.9.0", + "joblib==1.5.3", "prompt-toolkit==3.0.52", "typing-inspection==0.4.2", + "requests==2.32.5", "django-log-request-id==2.1.0", "inflection==0.5.1", + "pydantic==2.12.5", "pyyaml==6.0.3", "python-dateutil==2.9.0.post0"]' pypi_all: count: 204 - list: '["semantic-version==2.10.0", "httpx==0.28.1", "pyyaml==6.0.3", "six==1.17.0", - "filelock==3.20.3", "oauthlib==3.3.1", "httpcore==1.0.9", "billiard==4.2.4", - "inflection==0.5.1", "python-memcached==1.62", "asgiref==3.11.0", "accessible-pygments==0.0.5", - "roman-numerals==4.1.0", "jsonschema==4.26.0", "polib==1.2.0", "monotonic==1.6", - "simplejson==3.20.2", "python3-openid==3.2.0", "packaging==21.3", "tomlkit==0.13.3", - "djangorestframework-xml==2.0.0", "edx-drf-extensions==10.6.0", "edx-lint==5.6.0", - "threadpoolctl==3.6.0", "rules==3.5", "prompt-toolkit==3.0.52", "sphinxcontrib-htmlhelp==2.1.0", - "edx-rbac==2.1.0", "snowballstemmer==3.0.1", "django-dynamic-fixture==4.0.1", - "requests-oauthlib==2.0.0", "django-crum==0.7.9", "social-auth-app-django==5.7.0", - "vine==5.1.0", "iniconfig==2.3.0", "algoliasearch==3.0.0", "pylint==4.0.4", - "pytest-django==4.11.1", "django-extensions==4.1", "pluggy==1.6.0", "django-import-export==4.4.0", - "responses==0.25.8", "sphinx==9.1.0", "six==1.16.0", "charset-normalizer==3.4.4", - "urllib3==2.6.3", "pydocstyle==6.3.0", "pylint-plugin-utils==0.9.0", "django-log-request-id==2.1.0", - "greenlet==3.3.0", "edx-auth-backends==4.6.2", "doc8==2.0.0", "django==5.2.10", - "markupsafe==3.0.3", "tqdm==4.67.1", "django-clearcache==1.2.1", "pyjwt[crypto]==2.10.1", - "djangoql==0.18.1", "diff-cover==4.0.0", "tablib==3.9.0", "pip==25.2", - "django-debug-toolbar==6.1.0", "typing-extensions==4.15.0", "faker==40.1.0", - "sphinxcontrib-qthelp==2.0.0", "pycparser==2.23", "defusedxml==0.7.1", - "text-unidecode==1.3", "jinja2-pluralize==0.3.0", "soupsieve==2.8.1", - "beautifulsoup4==4.14.3", "edx-opaque-keys==3.0.0", "psutil==7.2.1", "celery==5.6.2", - "django-simple-history==3.11.0", "python-dateutil==2.9.0.post0", "pytz==2025.2", - "alabaster==1.0.0", "pydata-sphinx-theme==0.15.4", "click==8.3.1", "edx-django-release-util==1.5.0", - "h11==0.16.0", "wcwidth==0.2.14", "cffi==2.0.0", "django-model-utils==5.0.0", - "numpy==2.4.1", "pyproject-hooks==1.2.0", "zope-interface==8.2", "filelock==3.4.2", - "pytest==9.0.2", "requests==2.32.5", "platformdirs==2.4.1", "wheel==0.45.1", - "nh3==0.3.2", "django-celery-results==2.6.0", "jsonschema-specifications==2025.9.1", - "backoff==1.10.0", "dill==0.4.0", "dnspython==2.8.0", "pylint-django==2.7.0", - "tox==4.34.1", "pyparsing==3.0.7", "edx-django-utils==8.0.1", "tzlocal==5.3.1", - "virtualenv==20.36.1", "referencing==0.37.0", "py==1.11.0", "anyio==4.12.1", - "pynacl==1.6.2", "sniffio==1.3.1", "sphinxcontrib-applehelp==2.0.0", "distlib==0.3.4", - "rpds-py==0.30.0", "zope-event==6.1", "edx-toggles==5.4.1", "ply==3.11", - "isort==7.0.0", "distlib==0.4.0", "gevent==25.9.1", "virtualenv==20.13.1", - "idna==3.11", "django-cors-headers==4.9.0", "toml==0.10.2", "tox-battery==0.6.1", - "django-waffle==5.0.0", "factory-boy==3.3.3", "lxml-html-clean==0.4.3", - "sphinxcontrib-jsmath==1.0.1", "pydantic-core==2.41.5", "scipy==1.17.0", - "packaging==25.0", "pip-tools==7.5.2", "code-annotations==2.3.0", "analytics-python==1.4.post1", - "cachetools==6.2.4", "drf-spectacular==0.29.0", "python-slugify==8.0.4", - "build==1.4.0", "typeguard==4.4.4", "sphinx-book-theme==1.1.4", "jsonfield==3.2.0", - "openai==1.13.3", "joblib==1.5.3", "cryptography==46.0.3", "pluggy==1.0.0", - "mccabe==0.7.0", "annotated-types==0.7.0", "stevedore==5.6.0", "jsonfield2==4.0.0.post0", - "tzdata==2025.3", "distro==1.9.0", "sqlparse==0.5.5", "edx-celeryutils==1.4.0", - "docutils==0.21.2", "pytest-cov==7.0.0", "social-auth-core==4.8.3", "drf-jwt==1.19.2", - "gunicorn==23.0.0", "uritemplate==4.2.0", "pyproject-api==1.10.0", "certifi==2026.1.4", - "babel==2.17.0", "diff-match-patch==20241021", "path==16.16.0", "edx-rest-api-client==6.2.0", - "scikit-learn==1.8.0", "edx-i18n-tools==1.9.0", "django-config-models==2.9.0", - "amqp==5.3.1", "pymongo==4.16.0", "mysqlclient==2.2.7", "typing-inspection==0.4.2", - "astroid==4.0.3", "chardet==5.2.0", "restructuredtext-lint==2.0.2", "pydantic==2.12.5", - "ddt==1.7.2", "tox==3.24.5", "imagesize==1.4.1", "readme-renderer==44.0", - "click-plugins==1.1.1.2", "coverage[toml]==7.13.1", "click-didyoumean==0.3.1", - "attrs==25.4.0", "jinja2==3.1.6", "lxml[html-clean]==6.0.2", "xlsxwriter==3.2.9", - "click-repl==0.3.0", "zipp==3.23.0", "pygments==2.19.2", "click-log==0.4.0", - "colorama==0.4.6", "sphinxcontrib-serializinghtml==2.0.0", "more-itertools==10.8.0", - "pymemcache==4.0.0", "pylint-celery==0.3", "pycodestyle==2.14.0", "inflect==7.5.0", - "redis==7.1.0", "setuptools==80.9.0", "sphinxcontrib-devhelp==2.0.0", - "kombu==5.6.2", "djangorestframework==3.16.1", "platformdirs==4.5.1"]' + list: '["faker==40.1.0", "jsonfield2==4.0.0.post0", "mccabe==0.7.0", "tzdata==2025.3", + "monotonic==1.6", "pytz==2025.2", "pylint-plugin-utils==0.9.0", "imagesize==1.4.1", + "cffi==2.0.0", "dnspython==2.8.0", "alabaster==1.0.0", "coverage[toml]==7.13.1", + "edx-drf-extensions==10.6.0", "django-cors-headers==4.9.0", "simplejson==3.20.2", + "numpy==2.4.1", "click-repl==0.3.0", "pyparsing==3.0.7", "pygments==2.19.2", + "semantic-version==2.10.0", "scikit-learn==1.8.0", "cryptography==46.0.3", + "zope-interface==8.2", "vine==5.1.0", "platformdirs==2.4.1", "responses==0.25.8", + "pyjwt[crypto]==2.10.1", "django-clearcache==1.2.1", "sqlparse==0.5.5", + "packaging==25.0", "jsonschema-specifications==2025.9.1", "psutil==7.2.1", + "tzlocal==5.3.1", "backoff==1.10.0", "attrs==25.4.0", "edx-toggles==5.4.1", + "algoliasearch==3.0.0", "httpcore==1.0.9", "asgiref==3.11.0", "edx-django-utils==8.0.1", + "django-celery-results==2.6.0", "stevedore==5.6.0", "pytest-cov==7.0.0", + "social-auth-app-django==5.7.0", "edx-django-release-util==1.5.0", "python3-openid==3.2.0", + "pyproject-hooks==1.2.0", "pydata-sphinx-theme==0.15.4", "django-simple-history==3.11.0", + "click-log==0.4.0", "edx-rest-api-client==6.2.0", "amqp==5.3.1", "polib==1.2.0", + "uritemplate==4.2.0", "platformdirs==4.5.1", "inflect==7.5.0", "babel==2.17.0", + "drf-spectacular==0.29.0", "certifi==2026.1.4", "typeguard==4.4.4", "mysqlclient==2.2.7", + "pyproject-api==1.10.0", "django-debug-toolbar==6.1.0", "edx-rbac==2.1.0", + "edx-celeryutils==1.4.0", "build==1.4.0", "pylint-celery==0.3", "gunicorn==23.0.0", + "pluggy==1.6.0", "cachetools==6.2.4", "docutils==0.21.2", "jsonschema==4.26.0", + "filelock==3.4.2", "sphinxcontrib-devhelp==2.0.0", "djangorestframework-xml==2.0.0", + "pymemcache==4.0.0", "redis==7.1.0", "requests-oauthlib==2.0.0", "kombu==5.6.2", + "jinja2-pluralize==0.3.0", "pylint-django==2.7.0", "gevent==25.9.1", "djangoql==0.18.1", + "typing-extensions==4.15.0", "more-itertools==10.8.0", "toml==0.10.2", + "restructuredtext-lint==2.0.2", "jsonfield==3.2.0", "zipp==3.23.0", "referencing==0.37.0", + "diff-cover==4.0.0", "roman-numerals==4.1.0", "sphinxcontrib-jsmath==1.0.1", + "sphinxcontrib-serializinghtml==2.0.0", "sphinx==9.1.0", "click-plugins==1.1.1.2", + "charset-normalizer==3.4.4", "pydantic-core==2.41.5", "httpx==0.28.1", + "dill==0.4.0", "markupsafe==3.0.3", "pytest-django==4.11.1", "chardet==5.2.0", + "idna==3.11", "python-slugify==8.0.4", "isort==7.0.0", "jinja2==3.1.6", + "virtualenv==20.36.1", "packaging==21.3", "django-model-utils==5.0.0", + "ply==3.11", "edx-lint==5.6.0", "rpds-py==0.30.0", "doc8==2.0.0", "zope-event==6.1", + "edx-auth-backends==4.6.2", "analytics-python==1.4.post1", "greenlet==3.3.0", + "defusedxml==0.7.1", "xlsxwriter==3.2.9", "tox==4.34.1", "tqdm==4.67.1", + "accessible-pygments==0.0.5", "wheel==0.45.1", "annotated-types==0.7.0", + "djangorestframework==3.16.1", "edx-i18n-tools==1.9.0", "filelock==3.20.3", + "pip==25.2", "click==8.3.1", "text-unidecode==1.3", "pycodestyle==2.14.0", + "django==5.2.10", "pip-tools==7.5.2", "distlib==0.4.0", "distro==1.9.0", + "django-import-export==4.4.0", "pymongo==4.16.0", "sphinxcontrib-qthelp==2.0.0", + "django-extensions==4.1", "tablib==3.9.0", "readme-renderer==44.0", "anyio==4.12.1", + "openai==1.13.3", "path==16.16.0", "code-annotations==2.3.0", "threadpoolctl==3.6.0", + "setuptools==80.9.0", "soupsieve==2.8.1", "drf-jwt==1.19.2", "pluggy==1.0.0", + "celery==5.6.2", "urllib3==2.6.3", "tomlkit==0.13.3", "sphinxcontrib-htmlhelp==2.1.0", + "sphinxcontrib-applehelp==2.0.0", "pycparser==2.23", "edx-opaque-keys==3.0.0", + "pynacl==1.6.2", "pytest==9.0.2", "snowballstemmer==3.0.1", "wcwidth==0.2.14", + "click-didyoumean==0.3.1", "colorama==0.4.6", "tox==3.24.5", "django-waffle==5.0.0", + "django-crum==0.7.9", "diff-match-patch==20241021", "h11==0.16.0", "ddt==1.7.2", + "iniconfig==2.3.0", "rules==3.5", "pydocstyle==6.3.0", "social-auth-core==4.8.3", + "sphinx-book-theme==1.1.4", "virtualenv==20.13.1", "django-dynamic-fixture==4.0.1", + "oauthlib==3.3.1", "py==1.11.0", "python-memcached==1.62", "sniffio==1.3.1", + "six==1.17.0", "six==1.16.0", "distlib==0.3.4", "billiard==4.2.4", "scipy==1.17.0", + "pylint==4.0.4", "lxml-html-clean==0.4.3", "lxml[html-clean]==6.0.2", + "django-config-models==2.9.0", "tox-battery==0.6.1", "astroid==4.0.3", + "joblib==1.5.3", "nh3==0.3.2", "prompt-toolkit==3.0.52", "typing-inspection==0.4.2", + "requests==2.32.5", "factory-boy==3.3.3", "django-log-request-id==2.1.0", + "inflection==0.5.1", "beautifulsoup4==4.14.3", "pydantic==2.12.5", "pyyaml==6.0.3", + "python-dateutil==2.9.0.post0"]' django_packages: django_42: count: 22 - list: '["pylint-django", "django-celery-results", "edx-opaque-keys", "edx-rbac", - "edx-drf-extensions", "edx-rest-api-client", "edx-django-utils", "pytest-django", - "django-extensions", "factory-boy", "edx-auth-backends", "social-auth-app-django", - "djangorestframework", "django-debug-toolbar", "django-cors-headers", - "django-config-models", "code-annotations", "edx-django-release-util", - "edx-toggles", "edx-i18n-tools", "edx-celeryutils", "django-waffle"]' + list: '["django-cors-headers", "edx-celeryutils", "edx-rest-api-client", "djangorestframework", + "factory-boy", "django-config-models", "edx-toggles", "django-waffle", + "edx-i18n-tools", "edx-drf-extensions", "pytest-django", "edx-auth-backends", + "django-debug-toolbar", "code-annotations", "edx-django-utils", "edx-django-release-util", + "django-extensions", "django-celery-results", "edx-opaque-keys", "edx-rbac", + "social-auth-app-django", "pylint-django"]' total: count: 30 - list: '["pylint-django", "django-celery-results", "django-model-utils", "edx-opaque-keys", - "edx-rbac", "edx-drf-extensions", "edx-rest-api-client", "edx-django-utils", - "pytest-django", "django-simple-history", "django-extensions", "factory-boy", - "edx-auth-backends", "social-auth-app-django", "djangorestframework", - "django-debug-toolbar", "django-cors-headers", "django-config-models", - "jsonfield", "django-dynamic-fixture", "djangorestframework-xml", "code-annotations", - "edx-django-release-util", "edx-toggles", "drf-jwt", "edx-i18n-tools", - "edx-celeryutils", "rules", "django-waffle", "django-crum"]' + list: '["django-cors-headers", "edx-celeryutils", "edx-rest-api-client", "rules", + "djangorestframework", "factory-boy", "jsonfield", "django-config-models", + "edx-toggles", "django-waffle", "edx-i18n-tools", "edx-drf-extensions", + "django-model-utils", "pytest-django", "drf-jwt", "django-crum", "edx-auth-backends", + "django-debug-toolbar", "code-annotations", "edx-django-utils", "edx-django-release-util", + "django-extensions", "django-celery-results", "edx-opaque-keys", "edx-rbac", + "social-auth-app-django", "djangorestframework-xml", "django-simple-history", + "django-dynamic-fixture", "pylint-django"]' upgraded: count: 18 - list: '["django-cors-headers", "edx-django-release-util", "edx-toggles", "django-celery-results", - "edx-opaque-keys", "edx-i18n-tools", "edx-celeryutils", "edx-rbac", "django-config-models", - "edx-auth-backends", "django-extensions", "edx-drf-extensions", "edx-rest-api-client", - "edx-django-utils", "social-auth-app-django", "django-waffle", "code-annotations", - "django-debug-toolbar"]' + list: '["edx-toggles", "django-extensions", "django-cors-headers", "edx-drf-extensions", + "django-waffle", "edx-celeryutils", "django-config-models", "edx-rest-api-client", + "django-celery-results", "edx-auth-backends", "edx-opaque-keys", "django-debug-toolbar", + "code-annotations", "social-auth-app-django", "edx-django-utils", "edx-django-release-util", + "edx-rbac", "edx-i18n-tools"]' docs: build_badge: false python_version: null @@ -217,13 +219,13 @@ ownership: {} pinned_python_dependencies: 9 readme: bad_links: - - 'https://travis-ci.com/edx/enterprise-catalog: 404' + - 'https://travis-ci.com/edx/enterprise-catalog: 415' + - 'https://github.com/openedx/enterprise-catalog/blob/master/LICENSE: 504' getting-help: false good_links: - https://travis-ci.com/edx/enterprise-catalog.svg?branch=master - http://codecov.io/github/edx/enterprise-catalog/coverage.svg?branch=master - http://codecov.io/github/edx/enterprise-catalog?branch=master - - https://github.com/openedx/enterprise-catalog/blob/master/LICENSE - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://openedx.slack.com/messages/general/ - https://groups.google.com/forum/ diff --git a/individual_repo_data/openedx/enterprise-integrated-channels_repo_health.yaml b/individual_repo_data/openedx/enterprise-integrated-channels_repo_health.yaml index a10485a1..6160c62f 100644 --- a/individual_repo_data/openedx/enterprise-integrated-channels_repo_health.yaml +++ b/individual_repo_data/openedx/enterprise-integrated-channels_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,97 +22,95 @@ dependencies: list: '' pypi: count: 70 - list: '["jwcrypto==1.5.7", "slumber==0.7.1", "urllib3==2.7.0", "boto3==1.43.6", - "sqlparse==0.5.5", "click-plugins==1.1.1.2", "charset-normalizer==3.4.7", - "sortedcontainers==2.4.0", "edx-rest-api-client==7.0.0", "djangorestframework==3.17.1", - "edx-opaque-keys[django]==4.0.0", "filelock==3.29.0", "pycparser==3.0", - "jmespath==1.1.0", "openedx-atlas==0.7.0", "pyopenssl==26.2.0", "semantic-version==2.10.0", - "asn1crypto==1.5.1", "packaging==26.2", "jsonfield==3.2.0", "stevedore==5.7.0", - "edx-drf-extensions==10.6.0", "django==5.2.14", "django-crum==0.7.9", - "edx-django-utils==8.0.1", "requests==2.33.1", "django-fernet-fields-v2==0.9", - "tzdata==2026.2", "oauthlib==3.3.1", "click-didyoumean==0.3.1", "platformdirs==4.9.6", - "s3transfer==0.17.0", "wcwidth==0.7.0", "unicodecsv==0.14.1", "edx-rbac==3.0.0", - "asgiref==3.11.1", "certifi==2026.4.22", "celery==5.6.3", "django-model-utils==5.0.0", - "six==1.17.0", "psutil==7.2.2", "prompt-toolkit==3.0.52", "django-oauth-toolkit==3.2.0", - "snowflake-connector-python==4.4.0", "django-object-actions==5.0.1", "vine==5.1.0", - "cryptography==48.0.0", "python-dateutil==2.9.0.post0", "pytz==2026.2", - "kombu==5.6.2", "idna==3.14", "pymongo==4.17.0", "django-waffle==5.0.0", - "amqp==5.3.1", "cffi==2.0.0", "click-repl==0.3.0", "tomlkit==0.15.0", - "typing-extensions==4.15.0", "django-simple-history==3.11.0", "django-config-models==3.0.0", - "dnspython==2.8.0", "aniso8601==10.0.1", "billiard==4.2.4", "tzlocal==5.3.1", - "pynacl==1.6.2", "drf-jwt==1.19.2", "pyjwt[crypto]==2.12.1", "click==8.3.3", - "edx-tincan-py35==2.0.0", "botocore==1.43.6"]' + list: '["billiard==4.2.4", "celery==5.6.3", "click-didyoumean==0.3.1", "certifi==2026.4.22", + "jsonfield==3.2.0", "sqlparse==0.5.5", "unicodecsv==0.14.1", "django==5.2.14", + "tomlkit==0.15.0", "django-simple-history==3.11.0", "click-plugins==1.1.1.2", + "prompt-toolkit==3.0.52", "tzdata==2026.2", "snowflake-connector-python==4.4.0", + "pyjwt[crypto]==2.12.1", "pynacl==1.6.2", "vine==5.1.0", "slumber==0.7.1", + "cryptography==48.0.0", "djangorestframework==3.17.1", "pymongo==4.17.0", + "django-crum==0.7.9", "asn1crypto==1.5.1", "botocore==1.43.6", "django-model-utils==5.0.0", + "typing-extensions==4.15.0", "jmespath==1.1.0", "dnspython==2.8.0", "django-oauth-toolkit==3.2.0", + "charset-normalizer==3.4.7", "kombu==5.6.2", "requests==2.33.1", "edx-drf-extensions==10.6.0", + "cffi==2.0.0", "edx-rbac==3.0.0", "filelock==3.29.0", "platformdirs==4.9.6", + "pyopenssl==26.2.0", "wcwidth==0.7.0", "asgiref==3.11.1", "openedx-atlas==0.7.0", + "django-waffle==5.0.0", "jwcrypto==1.5.7", "amqp==5.3.1", "semantic-version==2.10.0", + "edx-tincan-py35==2.0.0", "edx-rest-api-client==7.0.0", "s3transfer==0.17.0", + "tzlocal==5.3.1", "django-fernet-fields-v2==0.9", "pycparser==3.0", "click==8.3.3", + "python-dateutil==2.9.0.post0", "stevedore==5.7.0", "idna==3.14", "django-object-actions==5.0.1", + "click-repl==0.3.0", "oauthlib==3.3.1", "psutil==7.2.2", "six==1.17.0", + "sortedcontainers==2.4.0", "boto3==1.43.6", "urllib3==2.7.0", "django-config-models==3.0.0", + "pytz==2026.2", "drf-jwt==1.19.2", "packaging==26.2", "edx-django-utils==8.0.1", + "edx-opaque-keys[django]==4.0.0", "aniso8601==10.0.1"]' pypi_all: count: 172 - list: '["pytest-cov==7.1.0", "pyproject-hooks==1.2.0", "build==1.5.0", "edx-lint==6.1.0", - "semantic-version==2.10.0", "defusedxml==0.7.1", "stevedore==5.7.0", "pylint-celery==0.3", - "zipp==3.23.1", "sphinxcontrib-qthelp==2.0.0", "freezegun==1.5.5", "pip==26.1.1", - "roman-numerals==4.1.0", "pyproject-api==1.10.0", "chardet==7.4.3", "s3transfer==0.17.0", - "pylint-plugin-utils==0.9.0", "markupsafe==3.0.3", "pydocstyle==6.3.0", - "six==1.17.0", "readme-renderer==44.0", "prompt-toolkit==3.0.52", "pluggy==1.6.0", - "snowflake-connector-python==4.4.0", "doc8==2.0.0", "restructuredtext-lint==2.0.2", - "vine==5.1.0", "edx-ccx-keys==2.0.2", "jeepney==0.9.0", "idna==3.14", - "sphinxcontrib-htmlhelp==2.1.0", "click-repl==0.3.0", "django-simple-history==3.11.0", - "lxml[html-clean]==6.1.0", "pytest-django==4.12.0", "tzlocal==5.3.1", - "virtualenv==21.3.1", "drf-jwt==1.19.2", "click==8.3.3", "polib==1.2.0", - "code-annotations==2.3.2", "rich==15.0.0", "accessible-pygments==0.0.5", - "pip-tools==7.5.3", "id==1.6.1", "requests-toolbelt==1.0.0", "filelock==3.29.0", - "pycparser==3.0", "pyopenssl==26.2.0", "asn1crypto==1.5.1", "packaging==26.2", - "social-auth-app-django==5.4.3", "edx-django-utils==8.0.1", "nh3==0.3.5", - "wheel==0.47.0", "testfixtures==11.0.0", "oauthlib==3.3.1", "wcwidth==0.7.0", - "fastavro==1.12.2", "keyring==25.7.0", "asgiref==3.11.1", "pygments==2.20.0", - "colorama==0.4.6", "certifi==2026.4.22", "celery==5.6.3", "python3-openid==3.2.0", - "django-oauth-toolkit==3.2.0", "factory-boy==3.3.3", "python-discovery==1.3.0", - "cryptography==48.0.0", "kombu==5.6.2", "astroid==4.0.4", "typing-extensions==4.15.0", - "dill==0.4.1", "sphinxcontrib-applehelp==2.0.0", "pycodestyle==2.14.0", - "social-auth-core==4.9.1", "jaraco-context==6.1.2", "distlib==0.4.0", - "edx-i18n-tools==2.0.0", "psutil==7.2.2", "urllib3==2.7.0", "pytest==9.0.3", - "importlib-metadata==9.0.0", "pyyaml==6.0.3", "boto3==1.43.6", "jwcrypto==1.5.7", - "botocore==1.43.6", "text-unidecode==1.3", "sqlparse==0.5.5", "click-plugins==1.1.1.2", - "charset-normalizer==3.4.7", "edx-rest-api-client==7.0.0", "djangorestframework==3.17.1", - "edx-opaque-keys[django]==4.0.0", "openedx-atlas==0.7.0", "jsonfield==3.2.0", - "edx-drf-extensions==10.6.0", "django-crum==0.7.9", "snowballstemmer==3.0.1", - "cachetools==7.1.1", "django-fernet-fields-v2==0.9", "click-log==0.4.0", - "rfc3986==2.0.0", "sphinxcontrib-devhelp==2.0.0", "mccabe==0.7.0", "platformdirs==4.9.6", - "alabaster==1.0.0", "python-slugify==8.0.4", "path==16.16.0", "django-model-utils==5.0.0", - "docutils==0.21.2", "imagesize==2.0.0", "sphinx==9.0.4", "sphinxcontrib-jsmath==1.0.1", - "django-object-actions==5.0.1", "diff-cover==10.2.0", "babel==2.18.0", - "twine==6.2.0", "ddt==1.3.1", "python-dateutil==2.9.0.post0", "beautifulsoup4==4.14.3", - "django-countries==8.2.0", "mdurl==0.1.2", "cffi==2.0.0", "tomlkit==0.15.0", - "django-config-models==3.0.0", "dnspython==2.8.0", "aniso8601==10.0.1", - "pylint==4.0.5", "backports-tarfile==1.2.0", "jaraco-functools==4.4.0", - "sphinx-book-theme==1.2.0", "slumber==0.7.1", "sortedcontainers==2.4.0", - "jmespath==1.1.0", "jinja2==3.1.6", "coverage[toml]==7.14.0", "jaraco-classes==3.4.0", - "lxml-html-clean==0.4.4", "django==5.2.14", "requests==2.33.1", "responses==0.26.0", - "faker==40.15.0", "more-itertools==11.0.2", "tzdata==2026.2", "requests-oauthlib==2.0.0", - "attrs==26.1.0", "click-didyoumean==0.3.1", "mock==5.2.0", "iniconfig==2.3.0", - "unicodecsv==0.14.1", "edx-rbac==3.0.0", "isort==8.0.1", "tomli-w==1.2.0", - "sphinxcontrib-serializinghtml==2.0.0", "pydata-sphinx-theme==0.16.1", - "soupsieve==2.8.3", "pytz==2026.2", "pymongo==4.17.0", "django-waffle==5.0.0", - "amqp==5.3.1", "openedx-events==10.5.0", "setuptools==82.0.1", "tox==4.53.1", - "pylint-django==2.7.0", "billiard==4.2.4", "pynacl==1.6.2", "secretstorage==3.5.0", - "markdown-it-py==4.2.0", "pyjwt[crypto]==2.12.1", "edx-tincan-py35==2.0.0"]' + list: '["importlib-metadata==9.0.0", "pydata-sphinx-theme==0.16.1", "celery==5.6.3", + "sqlparse==0.5.5", "pluggy==1.6.0", "tomlkit==0.15.0", "jeepney==0.9.0", + "tzdata==2026.2", "snowflake-connector-python==4.4.0", "pip-tools==7.5.3", + "pylint==4.0.5", "vine==5.1.0", "markdown-it-py==4.2.0", "django-crum==0.7.9", + "babel==2.18.0", "pycodestyle==2.14.0", "requests-toolbelt==1.0.0", "django-model-utils==5.0.0", + "wheel==0.47.0", "dnspython==2.8.0", "snowballstemmer==3.0.1", "beautifulsoup4==4.14.3", + "restructuredtext-lint==2.0.2", "charset-normalizer==3.4.7", "python-slugify==8.0.4", + "tox==4.53.1", "pylint-celery==0.3", "responses==0.26.0", "edx-drf-extensions==10.6.0", + "cffi==2.0.0", "platformdirs==4.9.6", "roman-numerals==4.1.0", "polib==1.2.0", + "social-auth-core==4.9.1", "fastavro==1.12.2", "jaraco-functools==4.4.0", + "django-fernet-fields-v2==0.9", "id==1.6.1", "pip==26.1.1", "pyproject-api==1.10.0", + "ddt==1.3.1", "colorama==0.4.6", "pytest-cov==7.1.0", "django-object-actions==5.0.1", + "build==1.5.0", "pytz==2026.2", "text-unidecode==1.3", "python-dateutil==2.9.0.post0", + "sphinxcontrib-htmlhelp==2.1.0", "isort==8.0.1", "jsonfield==3.2.0", "twine==6.2.0", + "django==5.2.14", "factory-boy==3.3.3", "click-plugins==1.1.1.2", "docutils==0.21.2", + "pygments==2.20.0", "code-annotations==2.3.2", "testfixtures==11.0.0", + "djangorestframework==3.17.1", "asn1crypto==1.5.1", "typing-extensions==4.15.0", + "jmespath==1.1.0", "django-oauth-toolkit==3.2.0", "rfc3986==2.0.0", "coverage[toml]==7.14.0", + "kombu==5.6.2", "dill==0.4.1", "freezegun==1.5.5", "python3-openid==3.2.0", + "sphinxcontrib-applehelp==2.0.0", "asgiref==3.11.1", "iniconfig==2.3.0", + "openedx-atlas==0.7.0", "amqp==5.3.1", "tomli-w==1.2.0", "click-log==0.4.0", + "pytest==9.0.3", "rich==15.0.0", "sphinxcontrib-devhelp==2.0.0", "click-repl==0.3.0", + "boto3==1.43.6", "django-config-models==3.0.0", "sphinxcontrib-jsmath==1.0.1", + "aniso8601==10.0.1", "sphinxcontrib-qthelp==2.0.0", "billiard==4.2.4", + "backports-tarfile==1.2.0", "unicodecsv==0.14.1", "django-simple-history==3.11.0", + "alabaster==1.0.0", "pyjwt[crypto]==2.12.1", "pynacl==1.6.2", "cachetools==7.1.1", + "edx-i18n-tools==2.0.0", "slumber==0.7.1", "cryptography==48.0.0", "imagesize==2.0.0", + "pylint-plugin-utils==0.9.0", "pymongo==4.17.0", "pydocstyle==6.3.0", + "chardet==7.4.3", "botocore==1.43.6", "django-countries==8.2.0", "sphinxcontrib-serializinghtml==2.0.0", + "requests==2.33.1", "pyopenssl==26.2.0", "edx-rbac==3.0.0", "jaraco-context==6.1.2", + "python-discovery==1.3.0", "jwcrypto==1.5.7", "semantic-version==2.10.0", + "edx-rest-api-client==7.0.0", "s3transfer==0.17.0", "attrs==26.1.0", "openedx-events==10.5.0", + "edx-ccx-keys==2.0.2", "jinja2==3.1.6", "diff-cover==10.2.0", "sphinx==9.0.4", + "secretstorage==3.5.0", "mccabe==0.7.0", "urllib3==2.7.0", "psutil==7.2.2", + "six==1.17.0", "markupsafe==3.0.3", "sphinx-book-theme==1.2.0", "keyring==25.7.0", + "zipp==3.23.1", "edx-django-utils==8.0.1", "readme-renderer==44.0", "edx-tincan-py35==2.0.0", + "lxml[html-clean]==6.1.0", "edx-opaque-keys[django]==4.0.0", "tzlocal==5.3.1", + "click-didyoumean==0.3.1", "certifi==2026.4.22", "prompt-toolkit==3.0.52", + "defusedxml==0.7.1", "faker==40.15.0", "soupsieve==2.8.3", "distlib==0.4.0", + "accessible-pygments==0.0.5", "nh3==0.3.5", "pytest-django==4.12.0", "pyyaml==6.0.3", + "doc8==2.0.0", "wcwidth==0.7.0", "filelock==3.29.0", "path==16.16.0", + "edx-lint==6.1.0", "django-waffle==5.0.0", "lxml-html-clean==0.4.4", "jaraco-classes==3.4.0", + "social-auth-app-django==5.4.3", "pycparser==3.0", "setuptools==82.0.1", + "pylint-django==2.7.0", "virtualenv==21.3.1", "click==8.3.3", "stevedore==5.7.0", + "mdurl==0.1.2", "idna==3.14", "mock==5.2.0", "oauthlib==3.3.1", "sortedcontainers==2.4.0", + "requests-oauthlib==2.0.0", "drf-jwt==1.19.2", "packaging==26.2", "pyproject-hooks==1.2.0", + "astroid==4.0.4", "more-itertools==11.0.2"]' django_packages: django_42: count: 16 - list: '["edx-django-utils", "django-oauth-toolkit", "django-object-actions", - "social-auth-app-django", "edx-rbac", "djangorestframework", "edx-rest-api-client", - "django-countries", "edx-i18n-tools", "django-config-models", "factory-boy", - "pytest-django", "edx-drf-extensions", "django-waffle", "pylint-django", - "code-annotations"]' + list: '["django-config-models", "django-countries", "django-oauth-toolkit", + "django-object-actions", "factory-boy", "edx-rbac", "edx-i18n-tools", + "social-auth-app-django", "edx-django-utils", "django-waffle", "pytest-django", + "edx-drf-extensions", "code-annotations", "edx-rest-api-client", "pylint-django", + "djangorestframework"]' total: count: 21 - list: '["edx-django-utils", "factory-boy", "pytest-django", "edx-drf-extensions", - "django-simple-history", "social-auth-app-django", "edx-rbac", "djangorestframework", - "django-countries", "code-annotations", "drf-jwt", "django-model-utils", - "edx-rest-api-client", "django-crum", "django-oauth-toolkit", "django-object-actions", - "jsonfield", "edx-i18n-tools", "django-config-models", "django-waffle", - "pylint-django"]' + list: '["django-countries", "pytest-django", "pylint-django", "django-oauth-toolkit", + "django-model-utils", "edx-django-utils", "django-waffle", "code-annotations", + "edx-rest-api-client", "django-object-actions", "django-crum", "drf-jwt", + "edx-rbac", "edx-i18n-tools", "edx-drf-extensions", "djangorestframework", + "django-simple-history", "django-config-models", "jsonfield", "factory-boy", + "social-auth-app-django"]' upgraded: count: 11 - list: '["edx-django-utils", "django-oauth-toolkit", "social-auth-app-django", - "edx-rbac", "edx-rest-api-client", "django-countries", "edx-i18n-tools", - "django-config-models", "edx-drf-extensions", "django-waffle", "code-annotations"]' + list: '["django-config-models", "django-countries", "django-oauth-toolkit", + "edx-rbac", "edx-i18n-tools", "social-auth-app-django", "edx-django-utils", + "django-waffle", "edx-drf-extensions", "code-annotations", "edx-rest-api-client"]' docs: build_badge: true python_version: null @@ -140,29 +138,28 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 7 - build_details: '{"total_duration": "13791 minutes 9 seconds", "checks": [{"name": - "tests (ubuntu-latest, 3.11, django52)", "duration": "4 minutes 11 seconds"}, - {"name": "tests (ubuntu-latest, 3.11, django42)", "duration": "3 minutes 42 - seconds"}, {"name": "tests (ubuntu-latest, 3.11, quality)", "duration": "1 - minutes 40 seconds"}, {"name": "call-upgrade-python-requirements-workflow - / upgrade_requirements", "duration": "1 minutes 37 seconds"}, {"name": "call-upgrade-python-requirements-workflow - / upgrade_requirements", "duration": "1 minutes 30 seconds"}, {"name": "tests - (ubuntu-latest, 3.11, pii_check)", "duration": "0 minutes 37 seconds"}, {"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 - seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 - minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "-1 minutes 53 seconds"}]}' + build_details: '{"total_duration": "7906 minutes 40 seconds", "checks": [{"name": + "tests (ubuntu-latest, 3.11, django52)", "duration": "4 minutes 15 seconds"}, + {"name": "tests (ubuntu-latest, 3.11, django42)", "duration": "3 minutes 47 + seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", + "duration": "1 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.11, + quality)", "duration": "1 minutes 42 seconds"}, {"name": "tests (ubuntu-latest, + 3.11, pii_check)", "duration": "0 minutes 37 seconds"}, {"name": "push", "duration": + "0 minutes 18 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 54 seconds"}]}' code_of_conduct: Other created_at: 2024-10-29 13:52:13 default_branch: main description: '' - disk_usage_kb: 1049 + disk_usage_kb: 1059 fork_count: 16 has_issues: true has_wiki: false @@ -171,9 +168,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:57:30 + last_push: 2026-06-08 00:57:30 license: GNU AGPLv3 - pulls_count: 8 + pulls_count: 7 github_actions: true language_bytes: css: 0 @@ -181,7 +178,7 @@ language_bytes: html: 39984 javascript: 0 makefile: 5134 - python: 2233500 + python: 2262307 shell: 0 makefile: pip-installed: true @@ -198,13 +195,16 @@ ownership: {} pinned_python_dependencies: 1 readme: bad_links: + - 'https://github.com/openedx/enterprise-integrated-channels/issues: 504' + - 'https://github.com/openedx/enterprise-integrated-channels/workflows/Python%20CI/badge.svg?branch=main: + 504' + - 'https://github.com/openedx/enterprise-integrated-channels/actions: 504' - 'https://docs.openedx.org/projects/enterprise-integrated-channels: 404' getting-help: true good_links: - https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html - https://github.com/openedx/enterprise-integrated-channels/blob/main/channel_integrations/README.md - https://discuss.openedx.org - - https://github.com/openedx/enterprise-integrated-channels/issues - https://openedx.org/getting-help - https://openedx.org/slack - https://openedx.slack.com/ @@ -213,8 +213,6 @@ readme: - https://backstage.openedx.org/catalog/default/component/enterprise-integrated-channels - https://img.shields.io/pypi/v/enterprise-integrated-channels.svg - https://pypi.python.org/pypi/enterprise-integrated-channels/ - - https://github.com/openedx/enterprise-integrated-channels/workflows/Python%20CI/badge.svg?branch=main - - https://github.com/openedx/enterprise-integrated-channels/actions - https://codecov.io/github/openedx/enterprise-integrated-channels/coverage.svg?branch=main - https://codecov.io/github/openedx/enterprise-integrated-channels?branch=main - https://readthedocs.org/projects/enterprise-integrated-channels/badge/?version=latest diff --git a/individual_repo_data/openedx/enterprise-subsidy_repo_health.yaml b/individual_repo_data/openedx/enterprise-subsidy_repo_health.yaml index bbb9ba63..2d1b67c8 100644 --- a/individual_repo_data/openedx/enterprise-subsidy_repo_health.yaml +++ b/individual_repo_data/openedx/enterprise-subsidy_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,108 +22,106 @@ dependencies: list: '' pypi: count: 92 - list: '["getsmarter-api-clients==0.6.3", "edx-toggles==5.4.1", "pyyaml==6.0.3", - "referencing==0.37.0", "idna==3.11", "sqlparse==0.5.5", "code-annotations==2.3.0", - "markupsafe==3.0.3", "typing-extensions==4.15.0", "h11==0.16.0", "jsonfield2==4.0.0.post0", - "openedx-events==10.5.0", "redis==7.1.0", "openedx-ledger==1.6.15", "requests-oauthlib==2.0.0", - "certifi==2026.1.4", "ply==3.11", "six==1.17.0", "edx-django-release-util==1.5.0", - "attrs==25.4.0", "django-log-request-id==2.1.0", "django-model-utils==5.0.0", - "pymongo==4.16.0", "django==5.2.10", "python-dateutil==2.9.0.post0", "text-unidecode==1.3", - "httpx==0.28.1", "rules==3.5", "social-auth-core==4.8.3", "edx-auth-backends==4.6.2", - "django-object-actions==5.0.0", "cryptography==46.0.3", "django-waffle==5.0.0", - "python-memcached==1.62", "urllib3==2.6.3", "packaging==25.0", "djangoql==0.18.1", - "django-clearcache==1.2.1", "jsonschema-specifications==2025.9.1", "greenlet==3.3.0", - "edx-opaque-keys[django]==3.0.0", "confluent-kafka[avro,schema-registry]==2.13.0", - "cffi==2.0.0", "avro==1.12.1", "dnspython==2.8.0", "oauthlib==3.3.1", - "drf-spectacular==0.29.0", "authlib==1.6.6", "pymemcache==4.0.0", "defusedxml==0.7.1", - "httpcore==1.0.9", "semantic-version==2.10.0", "djangorestframework==3.16.1", - "edx-ccx-keys==2.0.2", "jsonschema==4.26.0", "click==8.3.1", "rpds-py==0.30.0", - "django-crum==0.7.9", "cachetools==6.2.4", "edx-django-utils==8.0.1", - "edx-drf-extensions==10.6.0", "zope-interface==8.2", "drf-yasg==1.21.11", - "drf-jwt==1.19.2", "django-filter==25.2", "asgiref==3.11.0", "django-simple-history==3.4.0", - "stevedore==5.6.0", "mysqlclient==2.2.7", "gevent==25.9.1", "gunicorn==23.0.0", - "edx-rbac==2.1.0", "fastavro==1.12.1", "requests==2.32.5", "pyjwt[crypto]==2.10.1", - "python-slugify==8.0.4", "pycparser==2.23", "edx-rest-api-client==6.2.0", - "pynacl==1.6.2", "django-extensions==4.1", "zope-event==6.1", "jinja2==3.1.6", - "uritemplate==4.2.0", "python3-openid==3.2.0", "charset-normalizer==3.4.4", - "pytz==2025.2", "social-auth-app-django==5.7.0", "psutil==7.2.1", "edx-event-bus-kafka==6.1.0", - "anyio==4.12.1", "django-cors-headers==4.9.0", "inflection==0.5.1"]' + list: '["stevedore==5.6.0", "markupsafe==3.0.3", "pycparser==2.23", "text-unidecode==1.3", + "python-slugify==8.0.4", "zope-interface==8.2", "jinja2==3.1.6", "psutil==7.2.1", + "openedx-ledger==1.6.15", "edx-rbac==2.1.0", "getsmarter-api-clients==0.6.3", + "djangorestframework==3.16.1", "redis==7.1.0", "social-auth-core==4.8.3", + "drf-spectacular==0.29.0", "edx-toggles==5.4.1", "python-memcached==1.62", + "httpx==0.28.1", "pynacl==1.6.2", "pyyaml==6.0.3", "openedx-events==10.5.0", + "cachetools==6.2.4", "python-dateutil==2.9.0.post0", "packaging==25.0", + "pymemcache==4.0.0", "ply==3.11", "edx-django-utils==8.0.1", "gevent==25.9.1", + "cffi==2.0.0", "jsonfield2==4.0.0.post0", "drf-jwt==1.19.2", "cryptography==46.0.3", + "edx-ccx-keys==2.0.2", "sqlparse==0.5.5", "edx-django-release-util==1.5.0", + "django-extensions==4.1", "requests==2.32.5", "fastavro==1.12.1", "semantic-version==2.10.0", + "pymongo==4.16.0", "edx-event-bus-kafka==6.1.0", "django-log-request-id==2.1.0", + "confluent-kafka[avro,schema-registry]==2.13.0", "zope-event==6.1", "edx-rest-api-client==6.2.0", + "jsonschema-specifications==2025.9.1", "python3-openid==3.2.0", "edx-drf-extensions==10.6.0", + "defusedxml==0.7.1", "authlib==1.6.6", "uritemplate==4.2.0", "idna==3.11", + "pytz==2025.2", "certifi==2026.1.4", "dnspython==2.8.0", "httpcore==1.0.9", + "djangoql==0.18.1", "mysqlclient==2.2.7", "jsonschema==4.26.0", "requests-oauthlib==2.0.0", + "drf-yasg==1.21.11", "greenlet==3.3.0", "anyio==4.12.1", "social-auth-app-django==5.7.0", + "django-waffle==5.0.0", "django-object-actions==5.0.0", "django-crum==0.7.9", + "rpds-py==0.30.0", "django-cors-headers==4.9.0", "pyjwt[crypto]==2.10.1", + "six==1.17.0", "asgiref==3.11.0", "gunicorn==23.0.0", "rules==3.5", "h11==0.16.0", + "django==5.2.10", "avro==1.12.1", "charset-normalizer==3.4.4", "code-annotations==2.3.0", + "edx-auth-backends==4.6.2", "referencing==0.37.0", "urllib3==2.6.3", "click==8.3.1", + "django-clearcache==1.2.1", "oauthlib==3.3.1", "attrs==25.4.0", "django-model-utils==5.0.0", + "typing-extensions==4.15.0", "edx-opaque-keys[django]==3.0.0", "django-simple-history==3.4.0", + "inflection==0.5.1", "django-filter==25.2"]' pypi_all: count: 178 - list: '["django-test-migrations==1.5.0", "getsmarter-api-clients==0.6.3", - "soupsieve==2.8.1", "edx-toggles==5.4.1", "pyyaml==6.0.3", "pydata-sphinx-theme==0.15.4", - "roman-numerals==4.1.0", "referencing==0.37.0", "virtualenv==20.36.1", - "idna==3.11", "jaraco-functools==4.4.0", "sqlparse==0.5.5", "code-annotations==2.3.0", - "rfc3986==2.0.0", "factory-boy==3.3.3", "markupsafe==3.0.3", "setuptools==80.9.0", - "typing-extensions==4.15.0", "h11==0.16.0", "jsonfield2==4.0.0.post0", - "openedx-events==10.5.0", "path==16.16.0", "coverage[toml]==7.13.1", "polib==1.2.0", - "redis==7.1.0", "openedx-ledger==1.6.15", "requests-oauthlib==2.0.0", - "accessible-pygments==0.0.5", "certifi==2026.1.4", "ddt==1.7.2", "babel==2.17.0", - "ply==3.11", "six==1.17.0", "sphinxcontrib-qthelp==2.0.0", "astroid==4.0.3", - "edx-django-release-util==1.5.0", "pylint-plugin-utils==0.9.0", "tzdata==2025.3", - "attrs==25.4.0", "colorama==0.4.6", "sphinxcontrib-serializinghtml==2.0.0", - "more-itertools==10.8.0", "imagesize==1.4.1", "django-log-request-id==2.1.0", - "sphinx==9.1.0", "readme-renderer==44.0", "lxml-html-clean==0.4.3", "django-model-utils==5.0.0", - "pydocstyle==6.3.0", "rich==14.2.0", "lxml[html-clean]==6.0.2", "pluggy==1.6.0", - "pymongo==4.16.0", "django==5.2.10", "pyproject-api==1.10.0", "python-dateutil==2.9.0.post0", - "text-unidecode==1.3", "diff-cover==10.2.0", "httpx==0.28.1", "keyring==25.7.0", - "rules==3.5", "tox==4.34.1", "social-auth-core==4.8.3", "edx-auth-backends==4.6.2", - "docutils==0.21.2", "django-object-actions==5.0.0", "pylint-celery==0.3", - "cryptography==46.0.3", "alabaster==1.0.0", "django-waffle==5.0.0", "django-dynamic-fixture==4.0.1", - "wheel==0.45.1", "python-memcached==1.62", "urllib3==2.6.3", "packaging==25.0", - "djangoql==0.18.1", "django-clearcache==1.2.1", "iniconfig==2.3.0", "jsonschema-specifications==2025.9.1", - "mccabe==0.7.0", "doc8==2.0.0", "greenlet==3.3.0", "tomlkit==0.13.3", - "id==1.5.0", "platformdirs==4.5.1", "edx-opaque-keys[django]==3.0.0", - "confluent-kafka[avro,schema-registry]==2.13.0", "faker==40.1.0", "cffi==2.0.0", - "secretstorage==3.5.0", "avro==1.12.1", "dill==0.4.0", "pycodestyle==2.14.0", - "dnspython==2.8.0", "edx-lint==5.6.0", "oauthlib==3.3.1", "sphinxcontrib-devhelp==2.0.0", - "drf-spectacular==0.29.0", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", - "authlib==1.6.6", "pymemcache==4.0.0", "defusedxml==0.7.1", "httpcore==1.0.9", - "pygments==2.19.2", "pytest-django==4.11.1", "pylint==4.0.4", "semantic-version==2.10.0", - "snowballstemmer==3.0.1", "djangorestframework==3.16.1", "edx-ccx-keys==2.0.2", - "jsonschema==4.26.0", "click==8.3.1", "rpds-py==0.30.0", "mdurl==0.1.2", - "sphinx-book-theme==1.1.4", "pytest==9.0.2", "pyproject-hooks==1.2.0", - "django-crum==0.7.9", "cachetools==6.2.4", "edx-django-utils==8.0.1", - "edx-drf-extensions==10.6.0", "zope-interface==8.2", "drf-yasg==1.21.11", - "drf-jwt==1.19.2", "pylint-django==2.7.0", "django-filter==25.2", "asgiref==3.11.0", - "django-simple-history==3.4.0", "isort==7.0.0", "stevedore==5.6.0", "pip-tools==7.5.2", - "mysqlclient==2.2.7", "build==1.4.0", "chardet==5.2.0", "twine==6.2.0", - "sphinxcontrib-htmlhelp==2.1.0", "gevent==25.9.1", "gunicorn==23.0.0", - "requests-toolbelt==1.0.0", "edx-rbac==2.1.0", "fastavro==1.12.1", "requests==2.32.5", - "pyjwt[crypto]==2.10.1", "responses==0.25.8", "python-slugify==8.0.4", - "pycparser==2.23", "edx-rest-api-client==6.2.0", "docutils==0.22.4", "pytest-cov==7.0.0", - "filelock==3.20.3", "beautifulsoup4==4.14.3", "distlib==0.4.0", "pynacl==1.6.2", - "jaraco-context==6.0.2", "django-debug-toolbar==6.1.0", "jeepney==0.9.0", - "nh3==0.3.2", "django-extensions==4.1", "edx-i18n-tools==1.9.0", "zope-event==6.1", - "jinja2==3.1.6", "uritemplate==4.2.0", "mock==5.2.0", "python3-openid==3.2.0", - "charset-normalizer==3.4.4", "pytz==2025.2", "click-log==0.4.0", "jaraco-classes==3.4.0", - "social-auth-app-django==5.7.0", "psutil==7.2.1", "pip==25.3", "restructuredtext-lint==2.0.2", - "markdown-it-py==4.0.0", "edx-event-bus-kafka==6.1.0", "anyio==4.12.1", - "django-cors-headers==4.9.0", "inflection==0.5.1"]' + list: '["pylint-plugin-utils==0.9.0", "imagesize==1.4.1", "docutils==0.22.4", + "stevedore==5.6.0", "markupsafe==3.0.3", "pycparser==2.23", "text-unidecode==1.3", + "python-slugify==8.0.4", "zope-interface==8.2", "rich==14.2.0", "jinja2==3.1.6", + "colorama==0.4.6", "psutil==7.2.1", "django-dynamic-fixture==4.0.1", "openedx-ledger==1.6.15", + "pytest==9.0.2", "pydata-sphinx-theme==0.15.4", "pylint-celery==0.3", + "edx-rbac==2.1.0", "beautifulsoup4==4.14.3", "getsmarter-api-clients==0.6.3", + "djangorestframework==3.16.1", "redis==7.1.0", "social-auth-core==4.8.3", + "drf-spectacular==0.29.0", "sphinxcontrib-devhelp==2.0.0", "edx-toggles==5.4.1", + "python-memcached==1.62", "httpx==0.28.1", "pynacl==1.6.2", "accessible-pygments==0.0.5", + "pyyaml==6.0.3", "sphinxcontrib-applehelp==2.0.0", "django-debug-toolbar==6.1.0", + "openedx-events==10.5.0", "sphinxcontrib-jsmath==1.0.1", "cachetools==6.2.4", + "python-dateutil==2.9.0.post0", "jaraco-functools==4.4.0", "packaging==25.0", + "jaraco-context==6.0.2", "pyproject-hooks==1.2.0", "path==16.16.0", "pymemcache==4.0.0", + "sphinx-book-theme==1.1.4", "pylint-django==2.7.0", "ply==3.11", "edx-django-utils==8.0.1", + "edx-lint==5.6.0", "gevent==25.9.1", "secretstorage==3.5.0", "wheel==0.45.1", + "sphinxcontrib-htmlhelp==2.1.0", "cffi==2.0.0", "faker==40.1.0", "jsonfield2==4.0.0.post0", + "mccabe==0.7.0", "chardet==5.2.0", "id==1.5.0", "snowballstemmer==3.0.1", + "drf-jwt==1.19.2", "coverage[toml]==7.13.1", "cryptography==46.0.3", "pluggy==1.6.0", + "edx-ccx-keys==2.0.2", "sqlparse==0.5.5", "edx-django-release-util==1.5.0", + "sphinxcontrib-serializinghtml==2.0.0", "django-extensions==4.1", "sphinxcontrib-qthelp==2.0.0", + "babel==2.17.0", "requests==2.32.5", "nh3==0.3.2", "pytest-cov==7.0.0", + "polib==1.2.0", "tox==4.34.1", "distlib==0.4.0", "ddt==1.7.2", "isort==7.0.0", + "fastavro==1.12.1", "semantic-version==2.10.0", "pymongo==4.16.0", "edx-event-bus-kafka==6.1.0", + "django-log-request-id==2.1.0", "pygments==2.19.2", "confluent-kafka[avro,schema-registry]==2.13.0", + "zope-event==6.1", "edx-rest-api-client==6.2.0", "jsonschema-specifications==2025.9.1", + "python3-openid==3.2.0", "factory-boy==3.3.3", "edx-drf-extensions==10.6.0", + "pip==25.3", "defusedxml==0.7.1", "authlib==1.6.6", "pyproject-api==1.10.0", + "uritemplate==4.2.0", "idna==3.11", "twine==6.2.0", "alabaster==1.0.0", + "pytz==2025.2", "certifi==2026.1.4", "build==1.4.0", "dnspython==2.8.0", + "django-test-migrations==1.5.0", "setuptools==80.9.0", "httpcore==1.0.9", + "djangoql==0.18.1", "virtualenv==20.36.1", "more-itertools==10.8.0", "edx-i18n-tools==1.9.0", + "docutils==0.21.2", "mysqlclient==2.2.7", "jsonschema==4.26.0", "pydocstyle==6.3.0", + "click-log==0.4.0", "requests-oauthlib==2.0.0", "drf-yasg==1.21.11", "greenlet==3.3.0", + "anyio==4.12.1", "social-auth-app-django==5.7.0", "django-waffle==5.0.0", + "django-object-actions==5.0.0", "django-crum==0.7.9", "tzdata==2025.3", + "jaraco-classes==3.4.0", "rpds-py==0.30.0", "lxml[html-clean]==6.0.2", + "django-cors-headers==4.9.0", "pyjwt[crypto]==2.10.1", "six==1.17.0", + "asgiref==3.11.0", "iniconfig==2.3.0", "keyring==25.7.0", "astroid==4.0.3", + "gunicorn==23.0.0", "rules==3.5", "roman-numerals==4.1.0", "h11==0.16.0", + "rfc3986==2.0.0", "readme-renderer==44.0", "django==5.2.10", "avro==1.12.1", + "soupsieve==2.8.1", "charset-normalizer==3.4.4", "pylint==4.0.4", "code-annotations==2.3.0", + "responses==0.25.8", "requests-toolbelt==1.0.0", "sphinx==9.1.0", "edx-auth-backends==4.6.2", + "filelock==3.20.3", "pycodestyle==2.14.0", "markdown-it-py==4.0.0", "mdurl==0.1.2", + "referencing==0.37.0", "tomlkit==0.13.3", "lxml-html-clean==0.4.3", "doc8==2.0.0", + "urllib3==2.6.3", "restructuredtext-lint==2.0.2", "click==8.3.1", "django-clearcache==1.2.1", + "oauthlib==3.3.1", "diff-cover==10.2.0", "attrs==25.4.0", "django-model-utils==5.0.0", + "typing-extensions==4.15.0", "edx-opaque-keys[django]==3.0.0", "django-simple-history==3.4.0", + "inflection==0.5.1", "dill==0.4.0", "platformdirs==4.5.1", "pip-tools==7.5.2", + "pytest-django==4.11.1", "jeepney==0.9.0", "django-filter==25.2", "mock==5.2.0"]' django_packages: django_42: count: 20 - list: '["edx-drf-extensions", "edx-rest-api-client", "django-extensions", - "django-waffle", "djangorestframework", "django-debug-toolbar", "edx-toggles", - "edx-i18n-tools", "pytest-django", "edx-django-utils", "django-filter", - "factory-boy", "code-annotations", "edx-rbac", "django-object-actions", - "edx-auth-backends", "social-auth-app-django", "django-cors-headers", - "pylint-django", "edx-django-release-util"]' + list: '["edx-drf-extensions", "edx-django-release-util", "factory-boy", "django-object-actions", + "django-cors-headers", "code-annotations", "djangorestframework", "edx-toggles", + "social-auth-app-django", "edx-auth-backends", "edx-i18n-tools", "django-waffle", + "pylint-django", "edx-django-utils", "django-debug-toolbar", "edx-rest-api-client", + "edx-rbac", "django-extensions", "pytest-django", "django-filter"]' total: count: 28 - list: '["edx-drf-extensions", "edx-rest-api-client", "django-extensions", - "drf-jwt", "django-waffle", "djangorestframework", "django-debug-toolbar", - "rules", "edx-toggles", "edx-i18n-tools", "drf-yasg", "pytest-django", - "edx-django-utils", "django-filter", "factory-boy", "django-simple-history", - "code-annotations", "edx-rbac", "django-object-actions", "edx-auth-backends", - "social-auth-app-django", "django-dynamic-fixture", "django-crum", "django-model-utils", - "django-cors-headers", "pylint-django", "authlib", "edx-django-release-util"]' + list: '["edx-drf-extensions", "edx-django-release-util", "drf-jwt", "rules", + "factory-boy", "django-model-utils", "django-object-actions", "drf-yasg", + "django-cors-headers", "code-annotations", "djangorestframework", "edx-toggles", + "social-auth-app-django", "edx-auth-backends", "django-simple-history", + "edx-i18n-tools", "django-crum", "django-waffle", "authlib", "pylint-django", + "edx-django-utils", "django-debug-toolbar", "edx-rest-api-client", "django-dynamic-fixture", + "edx-rbac", "django-extensions", "pytest-django", "django-filter"]' upgraded: count: 15 - list: '["edx-drf-extensions", "edx-rest-api-client", "django-debug-toolbar", - "edx-toggles", "edx-i18n-tools", "django-extensions", "code-annotations", - "edx-rbac", "edx-django-utils", "django-waffle", "django-cors-headers", - "django-filter", "edx-auth-backends", "social-auth-app-django", "edx-django-release-util"]' + list: '["edx-toggles", "edx-drf-extensions", "django-debug-toolbar", "edx-rest-api-client", + "social-auth-app-django", "edx-django-release-util", "edx-auth-backends", + "edx-rbac", "django-extensions", "django-filter", "edx-i18n-tools", "django-waffle", + "edx-django-utils", "django-cors-headers", "code-annotations"]' docs: build_badge: false python_version: null @@ -151,7 +149,7 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 96 - build_details: '{"total_duration": "24014 minutes 25 seconds", "checks": [{"name": + build_details: '{"total_duration": "25787 minutes 5 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "360 minutes 14 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "3 minutes 44 seconds"}, {"name": "tests (ubuntu-latest, 3.12, @@ -160,10 +158,11 @@ github: "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "0 minutes 22 seconds"}, {"name": "call-upgrade-python-requirements-workflow - / upgrade_requirements", "duration": "0 minutes 21 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 52 seconds"}]}' + / upgrade_requirements", "duration": "0 minutes 21 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 21 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 52 seconds"}]}' code_of_conduct: Other created_at: 2022-12-21 21:18:24 default_branch: main @@ -179,7 +178,7 @@ github: is_private: false last_push: 2026-05-18 20:36:24 license: GNU AGPLv3 - pulls_count: 4 + pulls_count: 5 github_actions: true language_bytes: css: 0 @@ -206,6 +205,8 @@ readme: bad_links: - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/enterprise-subsidy: 404' + - 'https://github.com/openedx/enterprise-subsidy/workflows/Python%20CI/badge.svg?branch=main: + 504' getting-help: true good_links: - https://github.com/openedx/enterprise-subsidy/tree/main/docs/decisions @@ -217,7 +218,6 @@ readme: - https://openedx.org/getting-help - https://openedx.org/r/how-to-contribute - https://openedx.org/code-of-conduct/ - - https://github.com/openedx/enterprise-subsidy/workflows/Python%20CI/badge.svg?branch=main - https://github.com/openedx/enterprise-subsidy/actions - https://codecov.io/github/openedx/enterprise-subsidy/coverage.svg?branch=main - https://codecov.io/github/openedx/enterprise-subsidy?branch=main diff --git a/individual_repo_data/openedx/eslint-config_repo_health.yaml b/individual_repo_data/openedx/eslint-config_repo_health.yaml index fc505bf2..cd20ab85 100644 --- a/individual_repo_data/openedx/eslint-config_repo_health.yaml +++ b/individual_repo_data/openedx/eslint-config_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -84,7 +84,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 01:16:01 + last_push: 2026-06-02 19:45:28 license: GNU AGPLv3 pulls_count: 13 github_actions: true @@ -111,18 +111,18 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/eslint-config/actions/workflows/release.yml/: 504' - 'https://www.npmjs.com/package/@edx/eslint-config: 403' + - 'https://github.com/openedx/eslint-config/blob/master/LICENSE: 504' + - 'https://github.com/semantic-release/semantic-release: 504' - 'https://www.npmjs.com/package/eslint-config-airbnb-typescript: 403' getting-help: false good_links: - https://github.com/openedx/eslint-config/actions/workflows/release.yml/badge.svg - - https://github.com/openedx/eslint-config/actions/workflows/release.yml/ - https://img.shields.io/npm/v/@edx/eslint-config.svg - https://img.shields.io/npm/dt/@edx/eslint-config.svg - https://img.shields.io/npm/l/@edx/eslint-config.svg - - https://github.com/openedx/eslint-config/blob/master/LICENSE - https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg - - https://github.com/semantic-release/semantic-release irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/event-bus-kafka_repo_health.yaml b/individual_repo_data/openedx/event-bus-kafka_repo_health.yaml index 5f2be959..da6aa8de 100644 --- a/individual_repo_data/openedx/event-bus-kafka_repo_health.yaml +++ b/individual_repo_data/openedx/event-bus-kafka_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,64 +22,63 @@ dependencies: list: '' pypi: count: 28 - list: '["code-annotations==2.3.0", "markupsafe==3.0.3", "jinja2==3.1.6", "psutil==7.1.1", - "python-slugify==8.0.4", "text-unidecode==1.3", "edx-opaque-keys[django]==3.0.0", - "fastavro==1.12.1", "django-waffle==5.0.0", "pyyaml==6.0.3", "dnspython==2.8.0", - "django==4.2.25", "pycparser==2.23", "edx-ccx-keys==2.0.2", "attrs==25.4.0", - "typing-extensions==4.15.0", "pymongo==4.15.3", "pynacl==1.6.0", "openedx-events==10.5.0", - "asgiref==3.10.0", "edx-django-utils==8.0.1", "six==1.17.0", "stevedore==5.5.0", - "click==8.3.0", "sqlparse==0.5.3", "edx-toggles==5.4.1", "django-crum==0.7.9", - "cffi==2.0.0"]' + list: '["django==4.2.25", "six==1.17.0", "code-annotations==2.3.0", "pycparser==2.23", + "pynacl==1.6.0", "markupsafe==3.0.3", "pyyaml==6.0.3", "dnspython==2.8.0", + "psutil==7.1.1", "attrs==25.4.0", "openedx-events==10.5.0", "python-slugify==8.0.4", + "cffi==2.0.0", "edx-toggles==5.4.1", "edx-ccx-keys==2.0.2", "stevedore==5.5.0", + "sqlparse==0.5.3", "fastavro==1.12.1", "edx-opaque-keys[django]==3.0.0", + "pymongo==4.15.3", "django-crum==0.7.9", "edx-django-utils==8.0.1", "click==8.3.0", + "asgiref==3.10.0", "text-unidecode==1.3", "typing-extensions==4.15.0", + "django-waffle==5.0.0", "jinja2==3.1.6"]' pypi_all: count: 126 - list: '["dill==0.4.0", "tomli==2.3.0", "edx-i18n-tools==1.9.0", "pydocstyle==6.3.0", - "virtualenv==20.35.3", "psutil==7.1.1", "jeepney==0.9.0", "pylint-plugin-utils==0.9.0", - "platformdirs==4.5.0", "python-slugify==8.0.4", "text-unidecode==1.3", - "setuptools==80.9.0", "diff-cover==9.7.1", "pip==25.2", "avro==1.12.1", - "httpcore==1.0.9", "sphinxcontrib-applehelp==2.0.0", "colorama==0.4.6", - "confluent-kafka[avro,schema-registry]==2.12.0", "markdown-it-py==4.0.0", - "h11==0.16.0", "pynacl==1.6.0", "iniconfig==2.3.0", "openedx-events==10.5.0", - "alabaster==1.0.0", "stevedore==5.5.0", "click==8.3.0", "sqlparse==0.5.3", - "sphinxcontrib-jsmath==1.0.1", "tomlkit==0.13.3", "readme-renderer==44.0", - "pycodestyle==2.14.0", "requests-toolbelt==1.0.0", "backports-tarfile==1.2.0", - "docutils==0.21.2", "sphinxcontrib-serializinghtml==2.0.0", "sniffio==1.3.1", - "jaraco-functools==4.3.0", "pytest-cov==7.0.0", "chardet==5.2.0", "nh3==0.3.1", - "fastavro==1.12.1", "pyyaml==6.0.3", "distlib==0.4.0", "mdurl==0.1.2", - "tox==4.31.0", "authlib==1.6.5", "click-log==0.4.0", "typing-extensions==4.15.0", - "twine==6.2.0", "sphinxcontrib-qthelp==2.0.0", "asgiref==3.10.0", "sphinx==8.2.3", - "edx-django-utils==8.0.1", "snowballstemmer==3.0.1", "cryptography==46.0.3", - "six==1.17.0", "rfc3986==2.0.0", "lxml[html-clean]==6.0.2", "edx-toggles==5.4.1", - "secretstorage==3.4.0", "jaraco-classes==3.4.0", "mccabe==0.7.0", "pluggy==1.6.0", - "accessible-pygments==0.0.5", "pylint-django==2.6.1", "more-itertools==10.8.0", - "code-annotations==2.3.0", "path==16.16.0", "jinja2==3.1.6", "sphinxcontrib-htmlhelp==2.1.0", - "rich==14.2.0", "filelock==3.20.0", "wheel==0.45.1", "django-waffle==5.0.0", - "build==1.3.0", "dnspython==2.8.0", "django==4.2.25", "idna==3.11", "pycparser==2.23", - "edx-ccx-keys==2.0.2", "attrs==25.4.0", "pytest==8.4.2", "astroid==3.3.11", - "charset-normalizer==3.4.4", "sphinxcontrib-devhelp==2.0.0", "lxml-html-clean==0.4.3", - "zipp==3.23.0", "httpx==0.28.1", "importlib-metadata==8.7.0", "isort==6.1.0", - "packaging==25.0", "beautifulsoup4==4.14.2", "certifi==2025.10.5", "pylint-celery==0.3", - "roman-numerals-py==3.1.0", "pygments==2.19.2", "pyproject-hooks==1.2.0", - "cffi==2.0.0", "urllib3==2.5.0", "id==1.5.0", "coverage[toml]==7.11.0", - "edx-lint==5.6.0", "markupsafe==3.0.3", "keyring==25.6.0", "restructuredtext-lint==1.4.0", - "babel==2.17.0", "anyio==4.11.0", "docutils==0.22.2", "requests==2.32.5", - "polib==1.2.0", "edx-opaque-keys[django]==3.0.0", "jaraco-context==6.0.1", - "soupsieve==2.8", "pymongo==4.15.3", "pylint==3.3.9", "pytest-django==4.11.1", - "pip-tools==7.5.1", "imagesize==1.4.1", "sphinx-book-theme==1.1.4", "pydata-sphinx-theme==0.15.4", - "doc8==2.0.0", "django-crum==0.7.9", "ddt==1.7.2", "pyproject-api==1.10.0", - "cachetools==6.2.1"]' + list: '["django==4.2.25", "platformdirs==4.5.0", "pycparser==2.23", "alabaster==1.0.0", + "importlib-metadata==8.7.0", "sniffio==1.3.1", "charset-normalizer==3.4.4", + "confluent-kafka[avro,schema-registry]==2.12.0", "lxml-html-clean==0.4.3", + "openedx-events==10.5.0", "pyproject-hooks==1.2.0", "python-slugify==8.0.4", + "ddt==1.7.2", "stevedore==5.5.0", "sqlparse==0.5.3", "pymongo==4.15.3", + "chardet==5.2.0", "filelock==3.20.0", "soupsieve==2.8", "jaraco-classes==3.4.0", + "secretstorage==3.4.0", "backports-tarfile==1.2.0", "tox==4.31.0", "pylint==3.3.9", + "pydocstyle==6.3.0", "colorama==0.4.6", "edx-i18n-tools==1.9.0", "sphinxcontrib-applehelp==2.0.0", + "asgiref==3.10.0", "pycodestyle==2.14.0", "sphinxcontrib-devhelp==2.0.0", + "text-unidecode==1.3", "pyproject-api==1.10.0", "jeepney==0.9.0", "pygments==2.19.2", + "sphinxcontrib-htmlhelp==2.1.0", "pytest-django==4.11.1", "setuptools==80.9.0", + "path==16.16.0", "wheel==0.45.1", "dill==0.4.0", "rfc3986==2.0.0", "edx-lint==5.6.0", + "diff-cover==9.7.1", "jinja2==3.1.6", "tomli==2.3.0", "markupsafe==3.0.3", + "imagesize==1.4.1", "packaging==25.0", "attrs==25.4.0", "pylint-celery==0.3", + "cffi==2.0.0", "docutils==0.22.2", "cachetools==6.2.1", "lxml[html-clean]==6.0.2", + "authlib==1.6.5", "fastavro==1.12.1", "readme-renderer==44.0", "h11==0.16.0", + "cryptography==46.0.3", "pytest==8.4.2", "django-crum==0.7.9", "pylint-plugin-utils==0.9.0", + "sphinxcontrib-jsmath==1.0.1", "nh3==0.3.1", "avro==1.12.1", "tomlkit==0.13.3", + "httpcore==1.0.9", "markdown-it-py==4.0.0", "doc8==2.0.0", "pylint-django==2.6.1", + "rich==14.2.0", "build==1.3.0", "id==1.5.0", "roman-numerals-py==3.1.0", + "keyring==25.6.0", "psutil==7.1.1", "more-itertools==10.8.0", "pydata-sphinx-theme==0.15.4", + "mccabe==0.7.0", "jaraco-functools==4.3.0", "isort==6.1.0", "edx-toggles==5.4.1", + "docutils==0.21.2", "sphinx==8.2.3", "babel==2.17.0", "pytest-cov==7.0.0", + "urllib3==2.5.0", "sphinxcontrib-serializinghtml==2.0.0", "zipp==3.23.0", + "sphinx-book-theme==1.1.4", "anyio==4.11.0", "edx-django-utils==8.0.1", + "sphinxcontrib-qthelp==2.0.0", "distlib==0.4.0", "twine==6.2.0", "restructuredtext-lint==1.4.0", + "polib==1.2.0", "httpx==0.28.1", "jaraco-context==6.0.1", "typing-extensions==4.15.0", + "requests-toolbelt==1.0.0", "requests==2.32.5", "click-log==0.4.0", "six==1.17.0", + "code-annotations==2.3.0", "virtualenv==20.35.3", "mdurl==0.1.2", "idna==3.11", + "pyyaml==6.0.3", "dnspython==2.8.0", "astroid==3.3.11", "pip-tools==7.5.1", + "edx-ccx-keys==2.0.2", "beautifulsoup4==4.14.2", "snowballstemmer==3.0.1", + "accessible-pygments==0.0.5", "edx-opaque-keys[django]==3.0.0", "pip==25.2", + "iniconfig==2.3.0", "click==8.3.0", "certifi==2025.10.5", "coverage[toml]==7.11.0", + "django-waffle==5.0.0", "pluggy==1.6.0", "pynacl==1.6.0"]' django_packages: django_42: count: 7 - list: '["edx-toggles", "edx-django-utils", "pytest-django", "edx-i18n-tools", - "pylint-django", "django-waffle", "code-annotations"]' + list: '["edx-i18n-tools", "code-annotations", "edx-django-utils", "django-waffle", + "edx-toggles", "pytest-django", "pylint-django"]' total: count: 9 - list: '["edx-toggles", "edx-django-utils", "pytest-django", "django-crum", - "edx-i18n-tools", "pylint-django", "authlib", "django-waffle", "code-annotations"]' + list: '["edx-i18n-tools", "django-crum", "code-annotations", "edx-django-utils", + "django-waffle", "authlib", "edx-toggles", "pytest-django", "pylint-django"]' upgraded: count: 5 - list: '["edx-toggles", "edx-django-utils", "edx-i18n-tools", "django-waffle", - "code-annotations"]' + list: '["edx-i18n-tools", "code-annotations", "edx-django-utils", "django-waffle", + "edx-toggles"]' docs: build_badge: true python_version: null @@ -107,13 +106,15 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 12 - build_details: '{"total_duration": "0 minutes 50 seconds", "checks": [{"name": + build_details: '{"total_duration": "6242 minutes 59 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 50 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 48 seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 40 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", - "duration": "0 minutes 30 seconds"}]}' + "duration": "0 minutes 30 seconds"}, {"name": "routeissue / add_and_notify", + "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": + "-1 minutes 59 seconds"}]}' code_of_conduct: Other created_at: 2022-06-11 18:50:06 default_branch: main @@ -154,20 +155,22 @@ ownership: {} pinned_python_dependencies: 1 readme: bad_links: + - 'https://github.com/openedx/event-bus-kafka/blob/main/docs/decisions/0005-optional-import-of-confluent-kafka.rst: + 504' + - 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md: 504' - 'https://openedx-slack-invite.herokuapp.com/: 404' + - 'https://github.com/openedx/event-bus-kafka/workflows/Python%20CI/badge.svg?branch=main: + 504' - 'https://edx-event-bus-kafka.readthedocs.io/en/latest/: 404' getting-help: true good_links: - - https://github.com/openedx/event-bus-kafka/blob/main/docs/decisions/0005-optional-import-of-confluent-kafka.rst - https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0052-arch-event-bus-architecture.html - https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs - - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://discuss.openedx.org - https://openedx.slack.com/ - https://openedx.org/getting-help - https://img.shields.io/pypi/v/edx-event-bus-kafka.svg - https://pypi.python.org/pypi/edx-event-bus-kafka/ - - https://github.com/openedx/event-bus-kafka/workflows/Python%20CI/badge.svg?branch=main - https://github.com/openedx/event-bus-kafka/actions - https://codecov.io/github/openedx/event-bus-kafka/coverage.svg?branch=main - https://codecov.io/github/openedx/event-bus-kafka?branch=main diff --git a/individual_repo_data/openedx/event-bus-redis_repo_health.yaml b/individual_repo_data/openedx/event-bus-redis_repo_health.yaml index 4d8c2501..ea1197a5 100644 --- a/individual_repo_data/openedx/event-bus-redis_repo_health.yaml +++ b/individual_repo_data/openedx/event-bus-redis_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,61 +22,61 @@ dependencies: list: '' pypi: count: 30 - list: '["python-slugify==8.0.4", "code-annotations==3.0.0", "edx-ccx-keys==2.0.2", - "walrus==0.9.8", "django-waffle==5.0.0", "pycparser==3.0", "stevedore==5.8.0", - "attrs==26.1.0", "fastavro==1.12.2", "pymongo==4.17.0", "click==8.4.1", - "markupsafe==3.0.3", "edx-django-utils==8.0.1", "openedx-events==11.2.0", - "pyyaml==6.0.3", "text-unidecode==1.3", "asgiref==3.11.1", "jinja2==3.1.6", - "redis==7.4.0", "pynacl==1.6.2", "dnspython==2.8.0", "psutil==7.2.2", - "sqlparse==0.5.5", "edx-toggles==6.0.0", "cffi==2.0.0", "django==5.2.14", - "six==1.17.0", "typing-extensions==4.15.0", "edx-opaque-keys[django]==4.0.0", - "django-crum==0.7.9"]' + list: '["text-unidecode==1.3", "edx-django-utils==8.0.1", "pyyaml==6.0.3", + "fastavro==1.12.2", "attrs==26.1.0", "psutil==7.2.2", "python-slugify==8.0.4", + "sqlparse==0.5.5", "django-waffle==5.0.0", "pymongo==4.17.0", "typing-extensions==4.15.0", + "markupsafe==3.0.3", "openedx-events==11.2.0", "cffi==2.0.0", "jinja2==3.1.6", + "walrus==0.9.8", "django==5.2.14", "edx-opaque-keys[django]==4.0.0", "edx-ccx-keys==2.0.2", + "six==1.17.0", "django-crum==0.7.9", "dnspython==2.8.0", "redis==8.0.0", + "code-annotations==3.0.0", "pycparser==3.0", "pynacl==1.6.2", "click==8.4.1", + "stevedore==5.8.0", "asgiref==3.11.1", "edx-toggles==6.0.0"]' pypi_all: count: 115 - list: '["code-annotations==3.0.0", "sphinxcontrib-qthelp==2.0.0", "coverage[toml]==7.14.0", - "django-waffle==5.0.0", "pycparser==3.0", "stevedore==5.8.0", "attrs==26.1.0", - "pycodestyle==2.14.0", "tomlkit==0.15.0", "markupsafe==3.0.3", "python-discovery==1.3.1", - "sphinxcontrib-jsmath==1.0.1", "requests==2.34.2", "babel==2.18.0", "more-itertools==11.1.0", - "build==1.5.0", "pip==26.1.1", "astroid==4.0.4", "pylint-django==2.7.0", - "accessible-pygments==0.0.5", "idna==3.16", "psutil==7.2.2", "sqlparse==0.5.5", - "snowballstemmer==3.1.0", "cffi==2.0.0", "alabaster==1.0.0", "soupsieve==2.8.4", - "tomli-w==1.2.0", "id==1.6.1", "edx-ccx-keys==2.0.2", "walrus==0.9.8", - "mccabe==0.7.0", "iniconfig==2.3.0", "pytest-cov==7.1.0", "certifi==2026.5.20", - "ddt==1.7.2", "pyproject-hooks==1.2.0", "sphinxcontrib-applehelp==2.0.0", - "urllib3==2.7.0", "packaging==26.2", "pymongo==4.17.0", "cryptography==48.0.0", - "tox==4.54.0", "edx-django-utils==8.0.1", "pyyaml==6.0.3", "pluggy==1.6.0", - "virtualenv==21.3.3", "text-unidecode==1.3", "polib==1.2.0", "jaraco-context==6.1.2", - "jaraco-classes==3.4.0", "jinja2==3.1.6", "markdown-it-py==4.2.0", "readme-renderer==44.0", - "redis==7.4.0", "wheel==0.47.0", "pynacl==1.6.2", "docutils==0.22.4", - "dnspython==2.8.0", "platformdirs==4.9.6", "beautifulsoup4==4.14.3", "keyring==25.7.0", - "pydocstyle==6.3.0", "jeepney==0.9.0", "pytest-django==4.12.0", "pytest==9.0.3", - "pylint==4.0.5", "django-crum==0.7.9", "sphinxcontrib-htmlhelp==2.1.0", - "rich==15.0.0", "pip-tools==7.5.3", "cachetools==7.1.4", "click-log==0.4.0", - "lxml[html-clean]==6.1.1", "fastavro==1.12.2", "click==8.4.1", "requests-toolbelt==1.0.0", - "roman-numerals==4.1.0", "nh3==0.3.5", "filelock==3.29.0", "asgiref==3.11.1", - "sphinx==9.1.0", "mdurl==0.1.2", "twine==6.2.0", "pyproject-api==1.10.0", - "django==5.2.14", "sphinx-book-theme==1.2.0", "typing-extensions==4.15.0", - "path==16.16.0", "charset-normalizer==3.4.7", "python-slugify==8.0.4", - "secretstorage==3.5.0", "pylint-plugin-utils==0.9.0", "dill==0.4.1", "pygments==2.20.0", - "imagesize==2.0.0", "distlib==0.4.0", "jaraco-functools==4.5.0", "pylint-celery==0.3", - "lxml-html-clean==0.4.5", "isort==8.0.1", "openedx-events==11.2.0", "diff-cover==10.2.1", - "rfc3986==2.0.0", "pydata-sphinx-theme==0.16.1", "sphinxcontrib-devhelp==2.0.0", - "sphinxcontrib-serializinghtml==2.0.0", "chardet==7.4.3", "edx-i18n-tools==2.0.0", - "edx-lint==6.1.0", "edx-toggles==6.0.0", "setuptools==82.0.1", "six==1.17.0", - "edx-opaque-keys[django]==4.0.0", "colorama==0.4.6"]' + list: '["pydata-sphinx-theme==0.16.1", "sphinx==9.1.0", "diff-cover==10.3.0", + "packaging==26.2", "attrs==26.1.0", "iniconfig==2.3.0", "psutil==7.2.2", + "django-waffle==5.0.0", "chardet==7.4.3", "filelock==3.29.0", "requests==2.34.2", + "jaraco-classes==3.4.0", "colorama==0.4.6", "typing-extensions==4.15.0", + "pylint-django==2.7.0", "markupsafe==3.0.3", "roman-numerals==4.1.0", + "openedx-events==11.2.0", "certifi==2026.5.20", "docutils==0.22.4", "walrus==0.9.8", + "dill==0.4.1", "imagesize==2.0.0", "alabaster==1.0.0", "more-itertools==11.1.0", + "redis==8.0.0", "beautifulsoup4==4.14.3", "accessible-pygments==0.0.5", + "lxml[html-clean]==6.1.1", "pycparser==3.0", "pylint-plugin-utils==0.9.0", + "asgiref==3.11.1", "edx-toggles==6.0.0", "tox==4.55.0", "sphinxcontrib-qthelp==2.0.0", + "build==1.5.0", "urllib3==2.7.0", "id==1.6.1", "edx-i18n-tools==2.0.0", + "sphinxcontrib-devhelp==2.0.0", "lxml-html-clean==0.4.5", "pygments==2.20.0", + "keyring==25.7.0", "tomlkit==0.15.0", "click-log==0.4.0", "twine==6.2.0", + "nh3==0.3.5", "cffi==2.0.0", "platformdirs==4.10.0", "edx-opaque-keys[django]==4.0.0", + "rich==15.0.0", "tomli-w==1.2.0", "django-crum==0.7.9", "dnspython==2.8.0", + "jaraco-functools==4.5.0", "sphinxcontrib-htmlhelp==2.1.0", "click==8.4.1", + "virtualenv==21.4.2", "text-unidecode==1.3", "babel==2.18.0", "edx-django-utils==8.0.1", + "sphinx-book-theme==1.2.0", "snowballstemmer==3.1.0", "pyyaml==6.0.3", + "fastavro==1.12.2", "pip==26.1.2", "polib==1.2.0", "python-slugify==8.0.4", + "sqlparse==0.5.5", "distlib==0.4.0", "pymongo==4.17.0", "sphinxcontrib-applehelp==2.0.0", + "mdurl==0.1.2", "path==16.16.0", "pylint==4.0.5", "coverage[toml]==7.14.1", + "setuptools==82.0.1", "mccabe==0.7.0", "python-discovery==1.4.0", "markdown-it-py==4.2.0", + "idna==3.17", "pluggy==1.6.0", "wheel==0.47.0", "charset-normalizer==3.4.7", + "edx-ccx-keys==2.0.2", "isort==8.0.1", "six==1.17.0", "pycodestyle==2.14.0", + "astroid==4.0.4", "cachetools==7.1.4", "pytest==9.0.3", "pynacl==1.6.2", + "stevedore==5.8.0", "rfc3986==2.0.0", "pydocstyle==6.3.0", "requests-toolbelt==1.0.0", + "pyproject-api==1.10.1", "pytest-cov==7.1.0", "soupsieve==2.8.4", "readme-renderer==44.0", + "pylint-celery==0.3", "jaraco-context==6.1.2", "pyproject-hooks==1.2.0", + "sphinxcontrib-serializinghtml==2.0.0", "jinja2==3.1.6", "sphinxcontrib-jsmath==1.0.1", + "django==5.2.14", "cryptography==48.0.0", "ddt==1.7.2", "code-annotations==3.0.0", + "secretstorage==3.5.0", "jeepney==0.9.0", "pytest-django==4.12.0", "pip-tools==7.5.3", + "edx-lint==6.1.0"]' django_packages: django_42: count: 7 - list: '["django-waffle", "edx-toggles", "edx-django-utils", "pytest-django", - "edx-i18n-tools", "code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations", "edx-i18n-tools", "edx-django-utils", + "pytest-django", "edx-toggles", "django-waffle"]' total: count: 8 - list: '["django-waffle", "edx-toggles", "edx-django-utils", "django-crum", - "pytest-django", "edx-i18n-tools", "code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations", "edx-i18n-tools", "edx-django-utils", + "django-crum", "pytest-django", "edx-toggles", "django-waffle"]' upgraded: count: 5 - list: '["django-waffle", "edx-toggles", "edx-django-utils", "edx-i18n-tools", - "code-annotations"]' + list: '["code-annotations", "edx-i18n-tools", "edx-django-utils", "edx-toggles", + "django-waffle"]' docs: build_badge: true python_version: null @@ -104,26 +104,23 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 12 - build_details: '{"total_duration": "9808 minutes 49 seconds", "checks": [{"name": + build_details: '{"total_duration": "9781 minutes 54 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 10 seconds"}, {"name": "tests (3.12, docs)", "duration": "0 minutes - 40 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 36 seconds"}, - {"name": "tests (3.12, quality)", "duration": "0 minutes 35 seconds"}, {"name": - "tests (3.12, django42)", "duration": "0 minutes 34 seconds"}, {"name": "tests - (3.12, django52)", "duration": "0 minutes 30 seconds"}, {"name": "tests (3.12, - pii_check)", "duration": "0 minutes 29 seconds"}, {"name": "Dependabot", "duration": - "0 minutes 24 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "1 minutes 16 seconds"}, {"name": "tests (3.12, docs)", "duration": "0 minutes + 48 seconds"}, {"name": "tests (3.12, quality)", "duration": "0 minutes 41 + seconds"}, {"name": "tests (3.12, django42)", "duration": "0 minutes 32 seconds"}, + {"name": "tests (3.12, django52)", "duration": "0 minutes 32 seconds"}, {"name": + "tests (3.12, pii_check)", "duration": "0 minutes 29 seconds"}, {"name": "update-pip-graph", + "duration": "0 minutes 24 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 19 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}]}' + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2023-02-22 16:22:16 default_branch: main description: Redis Streams implementation for the Open edX event bus. - disk_usage_kb: 578 + disk_usage_kb: 585 fork_count: 11 has_issues: true has_wiki: false @@ -132,7 +129,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:21:12 + last_push: 2026-06-08 07:06:15 license: GNU AGPLv3 pulls_count: 2 github_actions: true diff --git a/individual_repo_data/openedx/event-routing-backends_repo_health.yaml b/individual_repo_data/openedx/event-routing-backends_repo_health.yaml index 36612526..7ebcdc02 100644 --- a/individual_repo_data/openedx/event-routing-backends_repo_health.yaml +++ b/individual_repo_data/openedx/event-routing-backends_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,80 +22,81 @@ dependencies: list: '' pypi: count: 64 - list: '["django-fernet-fields-v2==0.9", "pynacl==1.6.2", "edx-django-utils==8.0.1", - "click==8.4.1", "django-model-utils==5.0.0", "django-crum==0.7.9", "amqp==5.3.1", - "python-dateutil==2.9.0.post0", "tzdata==2026.2", "certifi==2026.5.20", - "pyyaml==6.0.3", "click-didyoumean==0.3.1", "aniso8601==10.0.1", "djangorestframework==3.17.1", - "six==1.17.0", "billiard==4.2.4", "openedx-events==11.2.0", "openedx-filters==3.4.0", - "fasteners==0.20", "tzlocal==5.3.1", "urllib3==2.7.0", "packaging==26.2", - "python-slugify==8.0.4", "tincan==1.0.0", "jinja2==3.1.6", "vine==5.1.0", - "edx-ccx-keys==2.0.2", "psutil==7.2.2", "dnspython==2.8.0", "kombu==5.6.2", - "charset-normalizer==3.4.7", "sqlparse==0.5.5", "django-waffle==5.0.0", - "markupsafe==3.0.3", "click-repl==0.3.0", "attrs==26.1.0", "edx-celeryutils==2.0.0", - "requests==2.34.2", "edx-opaque-keys[django]==4.0.0", "click-plugins==1.1.1.2", - "pymongo==4.17.0", "django-config-models==3.0.0", "pytz==2026.2", "celery==5.6.3", - "text-unidecode==1.3", "asgiref==3.11.1", "jsonfield==3.2.0", "cryptography==48.0.0", - "idna==3.16", "typing-extensions==4.15.0", "event-tracking==4.0.0", "isodate==0.7.2", - "cffi==2.0.0", "stevedore==5.8.0", "wcwidth==0.7.0", "code-annotations==3.0.0", - "prompt-toolkit==3.0.52", "redis==7.4.0", "django==5.2.14", "apache-libcloud==3.9.1", - "fastavro==1.12.2", "pycparser==3.0", "edx-toggles==6.0.0", "django-redis==6.0.0"]' + list: '["event-tracking==4.0.2", "click-didyoumean==0.3.1", "packaging==26.2", + "tzlocal==5.3.1", "django-config-models==3.0.0", "apache-libcloud==3.9.1", + "django-fernet-fields-v2==0.9", "vine==5.1.0", "tincan==1.0.0", "cryptography==48.0.0", + "idna==3.18", "stevedore==5.8.0", "tzdata==2026.2", "prompt-toolkit==3.0.52", + "edx-celeryutils==2.0.0", "dnspython==2.8.0", "redis==7.4.0", "requests==2.34.2", + "charset-normalizer==3.4.7", "fasteners==0.20", "psutil==7.2.2", "openedx-events==11.2.0", + "edx-ccx-keys==2.0.2", "djangorestframework==3.17.1", "isodate==0.7.2", + "click==8.4.1", "django-redis==6.0.0", "django-waffle==5.0.0", "edx-opaque-keys[django]==4.0.0", + "pynacl==1.6.2", "pyyaml==6.0.3", "markupsafe==3.0.3", "amqp==5.3.1", + "fastavro==1.12.2", "python-dateutil==2.9.0.post0", "six==1.17.0", "wcwidth==0.7.0", + "attrs==26.1.0", "text-unidecode==1.3", "python-slugify==8.0.4", "django-model-utils==5.0.0", + "celery==5.6.3", "certifi==2026.5.20", "typing-extensions==4.15.0", "urllib3==2.7.0", + "asgiref==3.11.1", "jinja2==3.1.6", "pycparser==3.0", "billiard==4.2.4", + "pymongo==4.17.0", "edx-toggles==6.0.0", "jsonfield==3.2.0", "cffi==2.0.0", + "edx-django-utils==8.0.1", "click-repl==0.3.0", "kombu==5.6.2", "sqlparse==0.5.5", + "aniso8601==10.0.1", "django-crum==0.7.9", "click-plugins==1.1.1.2", "pytz==2026.2", + "code-annotations==3.0.0", "django==5.2.14", "openedx-filters==3.4.1"]' pypi_all: count: 147 - list: '["pluggy==1.6.0", "python-dateutil==2.9.0.post0", "django-crum==0.7.9", - "tzdata==2026.2", "astroid==4.0.4", "polib==1.2.0", "tox==4.54.0", "factory-boy==3.3.3", - "six==1.17.0", "platformdirs==4.9.6", "pylint-django==2.7.0", "python-slugify==8.0.4", - "tincan==1.0.0", "sphinx-book-theme==1.2.0", "doc8==2.0.0", "sphinxcontrib-htmlhelp==2.1.0", - "tomli-w==1.2.0", "soupsieve==2.8.4", "accessible-pygments==0.0.5", "edx-i18n-tools==2.0.0", - "keyring==25.7.0", "faker==40.19.1", "mock==5.2.0", "wcwidth==0.7.0", - "babel==2.18.0", "redis==7.4.0", "sphinxcontrib-jsmath==1.0.1", "pylint-celery==0.3", - "iniconfig==2.3.0", "requests==2.34.2", "dill==0.4.1", "build==1.5.0", - "wheel==0.47.0", "edx-django-utils==8.0.1", "rfc3986==2.0.0", "markdown-it-py==4.2.0", - "certifi==2026.5.20", "click-didyoumean==0.3.1", "jaraco-classes==3.4.0", - "sphinxcontrib-applehelp==2.0.0", "billiard==4.2.4", "openedx-filters==3.4.0", - "pyproject-api==1.10.0", "fasteners==0.20", "sphinx==9.1.0", "tzlocal==5.3.1", - "pylint-plugin-utils==0.9.0", "docutils==0.21.2", "colorama==0.4.6", "pip-tools==7.5.3", - "jinja2==3.1.6", "edx-ccx-keys==2.0.2", "pygments==2.20.0", "pylint==4.0.5", - "django-waffle==5.0.0", "django-config-models==3.0.0", "lxml-html-clean==0.4.5", - "pytz==2026.2", "typing-extensions==4.15.0", "isodate==0.7.2", "cffi==2.0.0", - "click-log==0.4.0", "rich==15.0.0", "readme-renderer==44.0", "cachetools==7.1.4", - "pytest-django==4.12.0", "python-discovery==1.3.1", "apache-libcloud==3.9.1", - "virtualenv==21.3.3", "filelock==3.29.0", "pydata-sphinx-theme==0.16.1", - "requests-toolbelt==1.0.0", "jeepney==0.9.0", "kombu==5.6.2", "path==16.16.0", - "amqp==5.3.1", "snowballstemmer==3.1.0", "imagesize==2.0.0", "djangorestframework==3.17.1", - "pyproject-hooks==1.2.0", "ddt==1.7.2", "restructuredtext-lint==2.0.2", - "edx-lint==6.1.0", "more-itertools==11.1.0", "mccabe==0.7.0", "sphinxcontrib-devhelp==2.0.0", - "vine==5.1.0", "psutil==7.2.2", "sphinxcontrib-qthelp==2.0.0", "pycodestyle==2.14.0", - "charset-normalizer==3.4.7", "nh3==0.3.5", "attrs==26.1.0", "edx-opaque-keys[django]==4.0.0", - "click-plugins==1.1.1.2", "pymongo==4.17.0", "setuptools==82.0.1", "asgiref==3.11.1", - "chardet==7.4.3", "event-tracking==4.0.0", "diff-cover==10.2.1", "distlib==0.4.0", - "django==5.2.14", "lxml[html-clean]==6.1.1", "edx-toggles==6.0.0", "pytest==9.0.3", - "roman-numerals==4.1.0", "jaraco-context==6.1.2", "django-fernet-fields-v2==0.9", - "pynacl==1.6.2", "click==8.4.1", "django-model-utils==5.0.0", "pyyaml==6.0.3", - "twine==6.2.0", "aniso8601==10.0.1", "alabaster==1.0.0", "secretstorage==3.5.0", - "openedx-events==11.2.0", "tomlkit==0.15.0", "mdurl==0.1.2", "urllib3==2.7.0", - "pip==26.1.1", "packaging==26.2", "sphinxcontrib-serializinghtml==2.0.0", - "coverage[toml]==7.14.1", "pytest-cov==7.1.0", "dnspython==2.8.0", "isort==8.0.1", - "sqlparse==0.5.5", "markupsafe==3.0.3", "click-repl==0.3.0", "beautifulsoup4==4.14.3", - "edx-celeryutils==2.0.0", "id==1.6.1", "celery==5.6.3", "text-unidecode==1.3", - "jsonfield==3.2.0", "cryptography==48.0.0", "idna==3.16", "stevedore==5.8.0", - "code-annotations==3.0.0", "prompt-toolkit==3.0.52", "pydocstyle==6.3.0", - "fastavro==1.12.2", "pycparser==3.0", "jaraco-functools==4.5.0", "django-redis==6.0.0"]' + list: '["tzlocal==5.3.1", "apache-libcloud==3.9.1", "dill==0.4.1", "jaraco-classes==3.4.0", + "accessible-pygments==0.0.5", "charset-normalizer==3.4.7", "djangorestframework==3.17.1", + "ddt==1.7.2", "edx-opaque-keys[django]==4.0.0", "pygments==2.20.0", "click-log==0.4.0", + "amqp==5.3.1", "cachetools==7.1.4", "doc8==2.0.0", "colorama==0.4.6", + "pycodestyle==2.14.0", "restructuredtext-lint==2.0.2", "mccabe==0.7.0", + "lxml[html-clean]==6.1.1", "secretstorage==3.5.0", "soupsieve==2.8.4", + "text-unidecode==1.3", "beautifulsoup4==4.14.3", "sphinxcontrib-serializinghtml==2.0.0", + "certifi==2026.5.20", "pytest==9.0.3", "python-discovery==1.4.0", "babel==2.18.0", + "requests-toolbelt==1.0.0", "platformdirs==4.10.0", "click-repl==0.3.0", + "kombu==5.6.2", "aniso8601==10.0.1", "pytz==2026.2", "filelock==3.29.0", + "django==5.2.14", "openedx-filters==3.4.1", "event-tracking==4.0.2", "nh3==0.3.5", + "django-fernet-fields-v2==0.9", "tincan==1.0.0", "build==1.5.0", "cryptography==48.0.0", + "pyproject-hooks==1.2.0", "faker==40.21.0", "dnspython==2.8.0", "requests==2.34.2", + "wheel==0.47.0", "python-dateutil==2.9.0.post0", "fasteners==0.20", "factory-boy==3.3.3", + "distlib==0.4.1", "pytest-django==4.12.0", "click==8.4.1", "django-redis==6.0.0", + "django-waffle==5.0.0", "jaraco-functools==4.5.0", "more-itertools==11.1.0", + "pyyaml==6.0.3", "markupsafe==3.0.3", "sphinxcontrib-qthelp==2.0.0", "isort==8.0.1", + "wcwidth==0.7.0", "sphinxcontrib-htmlhelp==2.1.0", "tomlkit==0.15.0", + "keyring==25.7.0", "rich==15.0.0", "pydocstyle==6.3.0", "iniconfig==2.3.0", + "sphinx-book-theme==1.2.0", "asgiref==3.11.1", "edx-lint==6.1.0", "pylint-plugin-utils==0.9.0", + "pyproject-api==1.10.1", "astroid==4.0.4", "django-crum==0.7.9", "click-plugins==1.1.1.2", + "polib==1.2.0", "pydata-sphinx-theme==0.16.1", "diff-cover==10.3.0", "chardet==7.4.3", + "edx-ccx-keys==2.0.2", "code-annotations==3.0.0", "id==1.6.1", "packaging==26.2", + "sphinxcontrib-applehelp==2.0.0", "coverage[toml]==7.14.1", "idna==3.18", + "setuptools==82.0.1", "tzdata==2026.2", "path==16.16.0", "pip-tools==7.5.3", + "docutils==0.21.2", "redis==7.4.0", "openedx-events==11.2.0", "pluggy==1.6.0", + "mdurl==0.1.2", "alabaster==1.0.0", "rfc3986==2.0.0", "six==1.17.0", "sphinx==9.1.0", + "twine==6.2.0", "sphinxcontrib-jsmath==1.0.1", "markdown-it-py==4.2.0", + "django-model-utils==5.0.0", "urllib3==2.7.0", "tomli-w==1.2.0", "roman-numerals==4.1.0", + "pymongo==4.17.0", "pylint-django==2.7.0", "pip==26.1.2", "edx-toggles==6.0.0", + "pylint-celery==0.3", "sphinxcontrib-devhelp==2.0.0", "edx-django-utils==8.0.1", + "imagesize==2.0.0", "jaraco-context==6.1.2", "virtualenv==21.4.2", "click-didyoumean==0.3.1", + "django-config-models==3.0.0", "pytest-cov==7.1.0", "stevedore==5.8.0", + "edx-i18n-tools==2.0.0", "prompt-toolkit==3.0.52", "edx-celeryutils==2.0.0", + "psutil==7.2.2", "vine==5.1.0", "isodate==0.7.2", "pynacl==1.6.2", "fastavro==1.12.2", + "pylint==4.0.5", "mock==5.2.0", "attrs==26.1.0", "python-slugify==8.0.4", + "typing-extensions==4.15.0", "celery==5.6.3", "readme-renderer==44.0", + "jinja2==3.1.6", "pycparser==3.0", "billiard==4.2.4", "jsonfield==3.2.0", + "snowballstemmer==3.1.1", "lxml-html-clean==0.4.5", "cffi==2.0.0", "sqlparse==0.5.5", + "tox==4.55.0", "jeepney==0.9.0"]' django_packages: django_42: count: 12 - list: '["event-tracking", "pytest-django", "pylint-django", "django-waffle", - "djangorestframework", "edx-toggles", "edx-django-utils", "django-config-models", - "edx-i18n-tools", "factory-boy", "code-annotations", "edx-celeryutils"]' + list: '["edx-django-utils", "edx-celeryutils", "pytest-django", "event-tracking", + "djangorestframework", "factory-boy", "django-config-models", "django-waffle", + "code-annotations", "edx-i18n-tools", "edx-toggles", "pylint-django"]' total: count: 15 - list: '["event-tracking", "pytest-django", "jsonfield", "pylint-django", "django-waffle", - "djangorestframework", "edx-toggles", "edx-django-utils", "django-config-models", - "django-crum", "edx-i18n-tools", "factory-boy", "django-model-utils", - "code-annotations", "edx-celeryutils"]' + list: '["edx-django-utils", "edx-celeryutils", "pytest-django", "event-tracking", + "djangorestframework", "factory-boy", "jsonfield", "django-config-models", + "django-model-utils", "django-waffle", "code-annotations", "edx-i18n-tools", + "django-crum", "edx-toggles", "pylint-django"]' upgraded: count: 8 - list: '["event-tracking", "django-waffle", "edx-toggles", "edx-django-utils", - "django-config-models", "edx-i18n-tools", "code-annotations", "edx-celeryutils"]' + list: '["edx-django-utils", "edx-celeryutils", "event-tracking", "django-config-models", + "django-waffle", "code-annotations", "edx-i18n-tools", "edx-toggles"]' docs: build_badge: true python_version: null @@ -123,19 +124,19 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 19 - build_details: '{"total_duration": "0 minutes 56 seconds", "checks": [{"name": - "tests (3.12, quality, ubuntu-24.04)", "duration": "0 minutes 54 seconds"}, - {"name": "tests (3.12, docs, ubuntu-24.04)", "duration": "0 minutes 49 seconds"}, - {"name": "tests (ubuntu-24.04, 3.12, django42)", "duration": "0 minutes 45 - seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django52)", "duration": "0 - minutes 41 seconds"}, {"name": "tests (3.12, pii_check, ubuntu-24.04)", "duration": - "0 minutes 35 seconds"}]}' + build_details: '{"total_duration": "1 minutes 5 seconds", "checks": [{"name": + "tests (3.12, quality, ubuntu-24.04)", "duration": "1 minutes 5 seconds"}, + {"name": "tests (3.12, docs, ubuntu-24.04)", "duration": "1 minutes 1 seconds"}, + {"name": "tests (ubuntu-24.04, 3.12, django52)", "duration": "0 minutes 49 + seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django42)", "duration": "0 + minutes 44 seconds"}, {"name": "tests (3.12, pii_check, ubuntu-24.04)", "duration": + "0 minutes 31 seconds"}]}' code_of_conduct: Other created_at: 2020-09-22 20:33:20 default_branch: master description: Consume edx tracking events and transform/transmit them to other LRSs. - disk_usage_kb: 1160 + disk_usage_kb: 1193 fork_count: 23 has_issues: true has_wiki: false @@ -144,7 +145,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 14:38:49 + last_push: 2026-06-03 14:48:53 license: GNU AGPLv3 pulls_count: 1 github_actions: true diff --git a/individual_repo_data/openedx/event-tracking_repo_health.yaml b/individual_repo_data/openedx/event-tracking_repo_health.yaml index fc96a59a..63a81fa3 100644 --- a/individual_repo_data/openedx/event-tracking_repo_health.yaml +++ b/individual_repo_data/openedx/event-tracking_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,57 +22,57 @@ dependencies: list: '' pypi: count: 43 - list: '["pytz==2026.2", "typing-extensions==4.15.0", "attrs==26.1.0", "edx-opaque-keys[django]==4.0.0", - "python-dateutil==2.9.0.post0", "sqlparse==0.5.5", "click-plugins==1.1.1.2", - "pyyaml==6.0.3", "edx-ccx-keys==2.0.2", "tzlocal==5.3.1", "click-repl==0.3.0", - "code-annotations==3.0.0", "text-unidecode==1.3", "edx-django-utils==8.0.1", - "psutil==7.2.2", "celery==5.6.3", "fastavro==1.12.2", "markupsafe==3.0.3", - "kombu==5.6.2", "pynacl==1.6.2", "vine==5.1.0", "asgiref==3.11.1", "django==5.2.14", - "django-waffle==5.0.0", "billiard==4.2.4", "stevedore==5.8.0", "wcwidth==0.7.0", - "click-didyoumean==0.3.1", "edx-toggles==6.0.0", "openedx-events==11.2.0", - "pycparser==3.0", "cffi==2.0.0", "django-crum==0.7.9", "jinja2==3.1.6", - "prompt-toolkit==3.0.52", "packaging==26.2", "six==1.17.0", "python-slugify==8.0.4", - "dnspython==2.8.0", "tzdata==2026.2", "amqp==5.3.1", "click==8.4.1", "pymongo==4.17.0"]' + list: '["asgiref==3.11.1", "billiard==4.2.4", "django-waffle==5.0.0", "kombu==5.6.2", + "pycparser==3.0", "dnspython==2.8.0", "pyyaml==6.0.3", "cffi==2.0.0", + "fastavro==1.12.2", "click-didyoumean==0.3.1", "packaging==26.2", "click==8.4.1", + "tzdata==2026.2", "edx-ccx-keys==2.0.2", "django==5.2.14", "wcwidth==0.7.0", + "celery==5.6.3", "jinja2==3.1.6", "django-crum==0.7.9", "pymongo==4.17.0", + "amqp==5.3.1", "python-slugify==8.0.4", "typing-extensions==4.15.0", "vine==5.1.0", + "markupsafe==3.0.3", "pynacl==1.6.2", "sqlparse==0.5.5", "text-unidecode==1.3", + "tzlocal==5.3.1", "six==1.17.0", "python-dateutil==2.9.0.post0", "prompt-toolkit==3.0.52", + "edx-django-utils==8.0.1", "stevedore==5.8.0", "pytz==2026.2", "openedx-events==11.2.0", + "attrs==26.1.0", "edx-opaque-keys[django]==4.0.0", "code-annotations==3.0.0", + "click-repl==0.3.0", "click-plugins==1.1.1.2", "psutil==7.2.2", "edx-toggles==6.0.0"]' pypi_all: count: 98 - list: '["idna==3.16", "pluggy==1.6.0", "urllib3==2.7.0", "platformdirs==4.9.6", - "sqlparse==0.5.5", "docutils==0.22.4", "ddt==1.7.2", "tox==4.54.0", "tzlocal==5.3.1", - "alabaster==1.0.0", "click-repl==0.3.0", "dill==0.4.1", "kombu==5.6.2", - "sphinxcontrib-devhelp==2.0.0", "tomlkit==0.15.0", "django==5.2.14", "sphinxcontrib-htmlhelp==2.1.0", - "mock==5.2.0", "click-didyoumean==0.3.1", "edx-toggles==6.0.0", "coverage==7.14.0", - "pycparser==3.0", "cffi==2.0.0", "packaging==26.2", "python-slugify==8.0.4", - "amqp==5.3.1", "pymongo==4.17.0", "pylint==4.0.5", "pyproject-api==1.10.0", - "roman-numerals==4.1.0", "click-plugins==1.1.1.2", "pytest==9.0.3", "edx-ccx-keys==2.0.2", - "filelock==3.29.0", "pylint-plugin-utils==0.9.0", "edx-django-utils==8.0.1", - "pyproject-hooks==1.2.0", "markupsafe==3.0.3", "astroid==4.0.4", "certifi==2026.5.20", - "wheel==0.47.0", "prompt-toolkit==3.0.52", "pylint-django==2.7.0", "tzdata==2026.2", - "sphinxcontrib-jsmath==1.0.1", "isort==8.0.1", "sphinxcontrib-serializinghtml==2.0.0", - "click-log==0.4.0", "python-dateutil==2.9.0.post0", "pip==26.1.1", "pycodestyle==2.14.0", - "distlib==0.4.0", "code-annotations==3.0.0", "celery==5.6.3", "mccabe==0.7.0", - "cachetools==7.1.4", "vine==5.1.0", "pynacl==1.6.2", "asgiref==3.11.1", - "sphinxcontrib-qthelp==2.0.0", "django-waffle==5.0.0", "billiard==4.2.4", - "python-discovery==1.3.1", "tomli-w==1.2.0", "django-crum==0.7.9", "jinja2==3.1.6", - "six==1.17.0", "babel==2.18.0", "requests==2.34.2", "charset-normalizer==3.4.7", - "pygments==2.20.0", "edx-lint==6.1.0", "pytz==2026.2", "typing-extensions==4.15.0", - "attrs==26.1.0", "edx-opaque-keys[django]==4.0.0", "sphinx==9.1.0", "sphinxcontrib-applehelp==2.0.0", - "setuptools==82.0.1", "imagesize==2.0.0", "pyyaml==6.0.3", "pylint-celery==0.3", - "text-unidecode==1.3", "psutil==7.2.2", "fastavro==1.12.2", "virtualenv==21.3.3", - "wcwidth==0.7.0", "openedx-events==11.2.0", "coverage[toml]==7.14.0", - "iniconfig==2.3.0", "build==1.5.0", "dnspython==2.8.0", "pytest-cov==7.1.0", - "snowballstemmer==3.1.0", "pip-tools==7.5.3", "click==8.4.1", "stevedore==5.8.0", - "colorama==0.4.6"]' + list: '["docutils==0.22.4", "tzdata==2026.2", "pyproject-api==1.10.1", "jinja2==3.1.6", + "pip-tools==7.5.3", "django-crum==0.7.9", "pymongo==4.17.0", "python-slugify==8.0.4", + "setuptools==82.0.1", "pynacl==1.6.2", "pylint-plugin-utils==0.9.0", "text-unidecode==1.3", + "six==1.17.0", "python-dateutil==2.9.0.post0", "pylint==4.0.5", "pytest==9.0.3", + "sphinxcontrib-htmlhelp==2.1.0", "pygments==2.20.0", "pytz==2026.2", "openedx-events==11.2.0", + "edx-opaque-keys[django]==4.0.0", "requests==2.34.2", "colorama==0.4.6", + "charset-normalizer==3.4.7", "roman-numerals==4.1.0", "tomlkit==0.15.0", + "click-log==0.4.0", "snowballstemmer==3.1.0", "pip==26.1.2", "pylint-django==2.7.0", + "sphinxcontrib-qthelp==2.0.0", "django-waffle==5.0.0", "pycparser==3.0", + "ddt==1.7.2", "coverage[toml]==7.14.1", "click==8.4.1", "certifi==2026.5.20", + "wcwidth==0.7.0", "imagesize==2.0.0", "mccabe==0.7.0", "babel==2.18.0", + "urllib3==2.7.0", "cachetools==7.1.4", "tzlocal==5.3.1", "alabaster==1.0.0", + "pylint-celery==0.3", "pyproject-hooks==1.2.0", "sphinxcontrib-jsmath==1.0.1", + "idna==3.17", "platformdirs==4.10.0", "sphinxcontrib-devhelp==2.0.0", + "pycodestyle==2.14.0", "sphinx==9.1.0", "asgiref==3.11.1", "billiard==4.2.4", + "dill==0.4.1", "fastavro==1.12.2", "click-didyoumean==0.3.1", "packaging==26.2", + "django==5.2.14", "distlib==0.4.0", "astroid==4.0.4", "virtualenv==21.4.2", + "sqlparse==0.5.5", "mock==5.2.0", "wheel==0.47.0", "tomli-w==1.2.0", "sphinxcontrib-applehelp==2.0.0", + "filelock==3.29.0", "coverage==7.14.1", "prompt-toolkit==3.0.52", "stevedore==5.8.0", + "iniconfig==2.3.0", "attrs==26.1.0", "python-discovery==1.4.0", "click-repl==0.3.0", + "click-plugins==1.1.1.2", "edx-toggles==6.0.0", "build==1.5.0", "kombu==5.6.2", + "pyyaml==6.0.3", "dnspython==2.8.0", "cffi==2.0.0", "pluggy==1.6.0", "edx-ccx-keys==2.0.2", + "celery==5.6.3", "isort==8.0.1", "amqp==5.3.1", "typing-extensions==4.15.0", + "edx-lint==6.1.0", "vine==5.1.0", "markupsafe==3.0.3", "pytest-cov==7.1.0", + "edx-django-utils==8.0.1", "code-annotations==3.0.0", "tox==4.55.0", "sphinxcontrib-serializinghtml==2.0.0", + "psutil==7.2.2"]' django_packages: django_42: count: 5 - list: '["pylint-django", "code-annotations", "edx-django-utils", "edx-toggles", - "django-waffle"]' + list: '["edx-django-utils", "pylint-django", "django-waffle", "edx-toggles", + "code-annotations"]' total: count: 6 - list: '["pylint-django", "code-annotations", "edx-django-utils", "edx-toggles", - "django-waffle", "django-crum"]' + list: '["edx-django-utils", "pylint-django", "django-waffle", "edx-toggles", + "code-annotations", "django-crum"]' upgraded: count: 4 - list: '["django-waffle", "code-annotations", "edx-django-utils", "edx-toggles"]' + list: '["django-waffle", "edx-django-utils", "edx-toggles", "code-annotations"]' docs: build_badge: false python_version: null @@ -99,16 +99,18 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 14 - build_details: '{"total_duration": "4835 minutes 2 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, celery54-django52)", "duration": "1 minutes 4 - seconds"}, {"name": "Dependabot", "duration": "0 minutes 17 seconds"}, {"name": - "push", "duration": "0 minutes 15 seconds"}]}' + branch_count: 15 + build_details: '{"total_duration": "7919 minutes 42 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, celery54-django52)", "duration": "1 minutes 8 + seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 39 seconds"}, + {"name": "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "routeissue + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", + "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2013-09-16 17:57:22 default_branch: master description: a system for tracking events - disk_usage_kb: 559 + disk_usage_kb: 568 fork_count: 39 has_issues: true has_wiki: false @@ -117,9 +119,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 20:25:57 + last_push: 2026-06-08 02:53:47 license: GNU AGPLv3 - pulls_count: 0 + pulls_count: 1 github_actions: true language_bytes: css: 0 @@ -146,10 +148,10 @@ readme: bad_links: - 'http://www.edx.org/some/path/1: 404' - 'http://www.edx.org/some/path/2: 404' + - 'http://event-tracking.readthedocs.org/en/latest/: 429' getting-help: false good_links: - http://code.edx.org/ - - http://event-tracking.readthedocs.org/en/latest/ - https://github.com/openedx/edx-platform/wiki/How-To-Contribute - https://groups.google.com/forum/ - https://github.com/openedx/event-tracking/workflows/Python%20CI/badge.svg?branch=master diff --git a/individual_repo_data/openedx/forum_repo_health.yaml b/individual_repo_data/openedx/forum_repo_health.yaml index a7d1dcf4..62439be8 100644 --- a/individual_repo_data/openedx/forum_repo_health.yaml +++ b/individual_repo_data/openedx/forum_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,87 +22,85 @@ dependencies: list: '' pypi: count: 67 - list: '["httpx==0.28.1", "sqlparse==0.5.5", "wcwidth==0.6.0", "annotated-types==0.7.0", - "cffi==2.0.0", "elasticsearch==7.13.4", "python-dateutil==2.9.0.post0", - "pymongo==4.16.0", "urllib3==1.26.20", "billiard==4.2.4", "idna==3.11", - "edx-toggles==5.4.1", "kombu==5.6.2", "stevedore==5.7.0", "celery==5.6.2", - "attrs==25.4.0", "typesense==2.0.0", "amqp==5.3.1", "edx-opaque-keys[django]==3.1.0", - "text-unidecode==1.3", "markupsafe==3.0.3", "event-tracking==3.3.0", "camel-converter[pydantic]==5.1.0", - "pytz==2026.1.post1", "edx-search==4.4.0", "charset-normalizer==3.4.5", - "certifi==2026.2.25", "django-crum==0.7.9", "django-waffle==5.0.0", "anyio==4.12.1", - "djangorestframework==3.16.1", "fastavro==1.12.1", "jinja2==3.1.6", "mysqlclient==2.2.8", - "openedx-atlas==0.7.0", "typing-extensions==4.15.0", "click-didyoumean==0.3.1", - "pydantic==2.12.5", "click==8.3.1", "tzdata==2025.3", "tzlocal==5.3.1", - "meilisearch==0.40.0", "vine==5.1.0", "edx-django-utils==8.0.1", "beautifulsoup4==4.14.3", - "click-plugins==1.1.1.2", "six==1.17.0", "h11==0.16.0", "httpcore==1.0.9", - "django==5.2.12", "openedx-events==10.5.0", "psutil==7.2.2", "typing-inspection==0.4.2", - "pycparser==3.0", "requests==2.32.5", "edx-ccx-keys==2.0.2", "pynacl==1.6.2", - "dnspython==2.8.0", "pyyaml==6.0.3", "prompt-toolkit==3.0.52", "pydantic-core==2.41.5", - "python-slugify==8.0.4", "packaging==26.0", "code-annotations==2.3.2", - "soupsieve==2.8.3", "click-repl==0.3.0", "asgiref==3.11.1"]' + list: '["anyio==4.12.1", "asgiref==3.11.1", "psutil==7.2.2", "dnspython==2.8.0", + "tzlocal==5.3.1", "sqlparse==0.5.5", "meilisearch==0.40.0", "python-slugify==8.0.4", + "typing-extensions==4.15.0", "h11==0.16.0", "tzdata==2025.3", "pyyaml==6.0.3", + "beautifulsoup4==4.14.3", "httpx==0.28.1", "camel-converter[pydantic]==5.1.0", + "celery==5.6.2", "edx-django-utils==8.0.1", "fastavro==1.12.1", "pytz==2026.1.post1", + "openedx-events==10.5.0", "soupsieve==2.8.3", "python-dateutil==2.9.0.post0", + "amqp==5.3.1", "text-unidecode==1.3", "charset-normalizer==3.4.5", "idna==3.11", + "pydantic==2.12.5", "djangorestframework==3.16.1", "attrs==25.4.0", "pymongo==4.16.0", + "stevedore==5.7.0", "django-waffle==5.0.0", "requests==2.32.5", "typing-inspection==0.4.2", + "edx-search==4.4.0", "click==8.3.1", "edx-toggles==5.4.1", "jinja2==3.1.6", + "pycparser==3.0", "markupsafe==3.0.3", "pynacl==1.6.2", "edx-opaque-keys[django]==3.1.0", + "prompt-toolkit==3.0.52", "six==1.17.0", "wcwidth==0.6.0", "django==5.2.12", + "annotated-types==0.7.0", "click-repl==0.3.0", "elasticsearch==7.13.4", + "packaging==26.0", "code-annotations==2.3.2", "kombu==5.6.2", "typesense==2.0.0", + "cffi==2.0.0", "click-plugins==1.1.1.2", "django-crum==0.7.9", "pydantic-core==2.41.5", + "urllib3==1.26.20", "certifi==2026.2.25", "vine==5.1.0", "openedx-atlas==0.7.0", + "event-tracking==3.3.0", "edx-ccx-keys==2.0.2", "mysqlclient==2.2.8", + "billiard==4.2.4", "click-didyoumean==0.3.1", "httpcore==1.0.9"]' pypi_all: count: 163 - list: '["faker==40.8.0", "markdown-it-py==4.0.0", "django-stubs==5.2.9", "cffi==2.0.0", - "pymongo==4.16.0", "coverage[toml]==7.13.4", "billiard==4.2.4", "typesense==2.0.0", - "sphinxcontrib-qthelp==2.0.0", "types-pyyaml==6.0.12.20250915", "event-tracking==3.3.0", - "edx-search==4.4.0", "pytest==9.0.2", "soupsieve==2.8.3", "certifi==2026.2.25", - "openedx-atlas==0.7.0", "pygments==2.19.2", "python-discovery==1.1.0", - "sphinxcontrib-applehelp==2.0.0", "types-requests==2.31.0.6", "sphinx==9.1.0", - "meilisearch==0.40.0", "doc8==0.11.2", "pydata-sphinx-theme==0.15.4", - "six==1.17.0", "sphinxcontrib-serializinghtml==2.0.0", "django==5.2.12", - "openedx-events==10.5.0", "pytest-cov==7.0.0", "edx-i18n-tools==1.9.0", - "mdurl==0.1.2", "sentinels==1.1.1", "tomli-w==1.2.0", "edx-ccx-keys==2.0.2", - "more-itertools==10.8.0", "pynacl==1.6.2", "pylint==4.0.5", "alabaster==1.0.0", - "click-log==0.4.0", "pathspec==1.0.4", "mongomock==4.3.0", "colorama==0.4.6", - "click-repl==0.3.0", "typing-extensions==4.15.0", "rich==14.3.3", "secretstorage==3.5.0", - "dill==0.4.1", "diff-cover==10.2.0", "python-dateutil==2.9.0.post0", "jaraco-functools==4.4.0", - "build==1.4.0", "kombu==5.6.2", "pytest-django==4.12.0", "amqp==5.3.1", - "text-unidecode==1.3", "pluggy==1.6.0", "mypy-extensions==1.1.0", "pytz==2026.1.post1", - "chardet==7.0.1", "charset-normalizer==3.4.5", "anyio==4.12.1", "platformdirs==4.9.4", - "id==1.5.0", "click-didyoumean==0.3.1", "path==16.16.0", "pydantic==2.12.5", - "tzdata==2025.3", "tzlocal==5.3.1", "astroid==4.0.4", "distlib==0.4.0", - "pylint-plugin-utils==0.9.0", "rfc3986==2.0.0", "setuptools==82.0.0", - "psutil==7.2.2", "django-stubs-ext==5.2.9", "roman-numerals==4.1.0", "dnspython==2.8.0", - "prompt-toolkit==3.0.52", "sphinxcontrib-jsmath==1.0.1", "pylint-celery==0.3", - "httpx==0.28.1", "jaraco-classes==3.4.0", "librt==0.8.1", "sqlparse==0.5.5", - "annotated-types==0.7.0", "elasticsearch==7.13.4", "sphinxcontrib-devhelp==2.0.0", - "tox==4.49.0", "edx-toggles==5.4.1", "sphinx-book-theme==1.1.4", "celery==5.6.2", - "attrs==25.4.0", "polib==1.2.0", "wheel==0.46.3", "types-beautifulsoup4==4.12.0.20250516", - "mysqlclient==2.2.8", "vine==5.1.0", "wcwidth==0.6.0", "click==8.3.1", - "jaraco-context==6.1.0", "babel==2.18.0", "requests-toolbelt==1.0.0", - "click-plugins==1.1.1.2", "djangorestframework-stubs==3.16.8", "h11==0.16.0", - "pytokens==0.4.1", "pycparser==3.0", "requests==2.32.5", "imagesize==2.0.0", - "pyyaml==6.0.3", "cryptography==46.0.5", "pydantic-core==2.41.5", "python-slugify==8.0.4", - "sphinxcontrib-htmlhelp==2.1.0", "pip==26.0.1", "code-annotations==2.3.2", - "twine==6.2.0", "asgiref==3.11.1", "keyring==25.7.0", "mypy==1.19.1", - "urllib3==1.26.20", "edx-lint==5.6.0", "idna==3.11", "lxml[html-clean]==6.0.2", - "stevedore==5.7.0", "virtualenv==21.1.0", "lxml-html-clean==0.4.4", "black==26.3.0", - "pycodestyle==2.14.0", "readme-renderer==44.0", "edx-opaque-keys[django]==3.1.0", - "markupsafe==3.0.3", "types-html5lib==1.1.11.20251117", "camel-converter[pydantic]==5.1.0", - "types-urllib3==1.26.25.14", "docutils==0.22.4", "django-crum==0.7.9", - "django-waffle==5.0.0", "fastavro==1.12.1", "jinja2==3.1.6", "mccabe==0.7.0", - "djangorestframework==3.16.1", "pydocstyle==6.3.0", "pyproject-api==1.10.0", - "tomlkit==0.14.0", "accessible-pygments==0.0.5", "jeepney==0.9.0", "nh3==0.3.3", - "edx-django-utils==8.0.1", "isort==8.0.1", "restructuredtext-lint==2.0.2", - "beautifulsoup4==4.14.3", "httpcore==1.0.9", "pylint-django==2.7.0", "filelock==3.25.0", - "pyproject-hooks==1.2.0", "snowballstemmer==3.0.1", "cachetools==7.0.3", - "packaging==26.0", "types-webencodings==0.5.0.20251108", "pip-tools==7.5.3", - "iniconfig==2.3.0", "typing-inspection==0.4.2"]' + list: '["docutils==0.22.4", "pycodestyle==2.14.0", "rich==14.3.3", "restructuredtext-lint==2.0.2", + "sqlparse==0.5.5", "rfc3986==2.0.0", "django-stubs==5.2.9", "alabaster==1.0.0", + "fastavro==1.12.1", "edx-django-utils==8.0.1", "text-unidecode==1.3", + "tomli-w==1.2.0", "python-discovery==1.1.0", "polib==1.2.0", "pymongo==4.16.0", + "requests==2.32.5", "jinja2==3.1.6", "pylint-django==2.7.0", "snowballstemmer==3.0.1", + "wcwidth==0.6.0", "distlib==0.4.0", "isort==8.0.1", "build==1.4.0", "jaraco-classes==3.4.0", + "packaging==26.0", "setuptools==82.0.0", "vine==5.1.0", "cffi==2.0.0", + "tomlkit==0.14.0", "django-crum==0.7.9", "sphinx==9.1.0", "openedx-atlas==0.7.0", + "event-tracking==3.3.0", "jaraco-functools==4.4.0", "accessible-pygments==0.0.5", + "billiard==4.2.4", "sentinels==1.1.1", "pylint-plugin-utils==0.9.0", "roman-numerals==4.1.0", + "sphinxcontrib-jsmath==1.0.1", "more-itertools==10.8.0", "mypy-extensions==1.1.0", + "jaraco-context==6.1.0", "faker==40.8.0", "httpcore==1.0.9", "typing-extensions==4.15.0", + "tzdata==2025.3", "pyproject-hooks==1.2.0", "pylint==4.0.5", "wheel==0.46.3", + "camel-converter[pydantic]==5.1.0", "cryptography==46.0.5", "pytz==2026.1.post1", + "types-beautifulsoup4==4.12.0.20250516", "keyring==25.7.0", "soupsieve==2.8.3", + "charset-normalizer==3.4.5", "pydantic==2.12.5", "djangorestframework==3.16.1", + "diff-cover==10.2.0", "filelock==3.25.0", "edx-lint==5.6.0", "types-requests==2.31.0.6", + "django-waffle==5.0.0", "pytokens==0.4.1", "path==16.16.0", "pip-tools==7.5.3", + "click==8.3.1", "pycparser==3.0", "sphinxcontrib-serializinghtml==2.0.0", + "edx-opaque-keys[django]==3.1.0", "django==5.2.12", "types-pyyaml==6.0.12.20250915", + "markdown-it-py==4.0.0", "annotated-types==0.7.0", "mdurl==0.1.2", "elasticsearch==7.13.4", + "platformdirs==4.9.4", "click-plugins==1.1.1.2", "pathspec==1.0.4", "edx-ccx-keys==2.0.2", + "edx-i18n-tools==1.9.0", "click-didyoumean==0.3.1", "lxml[html-clean]==6.0.2", + "nh3==0.3.3", "anyio==4.12.1", "requests-toolbelt==1.0.0", "asgiref==3.11.1", + "mccabe==0.7.0", "dnspython==2.8.0", "click-log==0.4.0", "babel==2.18.0", + "pylint-celery==0.3", "mypy==1.19.1", "types-webencodings==0.5.0.20251108", + "sphinx-book-theme==1.1.4", "celery==5.6.2", "twine==6.2.0", "imagesize==2.0.0", + "openedx-events==10.5.0", "pyproject-api==1.10.0", "iniconfig==2.3.0", + "attrs==25.4.0", "sphinxcontrib-htmlhelp==2.1.0", "doc8==0.11.2", "typing-inspection==0.4.2", + "edx-search==4.4.0", "pynacl==1.6.2", "six==1.17.0", "markupsafe==3.0.3", + "prompt-toolkit==3.0.52", "jeepney==0.9.0", "chardet==7.0.1", "django-stubs-ext==5.2.9", + "readme-renderer==44.0", "kombu==5.6.2", "pip==26.0.1", "certifi==2026.2.25", + "colorama==0.4.6", "pytest==9.0.2", "sphinxcontrib-qthelp==2.0.0", "cachetools==7.0.3", + "pydata-sphinx-theme==0.15.4", "h11==0.16.0", "astroid==4.0.4", "pytest-django==4.12.0", + "psutil==7.2.2", "pluggy==1.6.0", "tzlocal==5.3.1", "black==26.3.0", "sphinxcontrib-devhelp==2.0.0", + "meilisearch==0.40.0", "python-slugify==8.0.4", "librt==0.8.1", "dill==0.4.1", + "pyyaml==6.0.3", "beautifulsoup4==4.14.3", "httpx==0.28.1", "pydocstyle==6.3.0", + "lxml-html-clean==0.4.4", "python-dateutil==2.9.0.post0", "amqp==5.3.1", + "idna==3.11", "pytest-cov==7.0.0", "stevedore==5.7.0", "edx-toggles==5.4.1", + "djangorestframework-stubs==3.16.8", "coverage[toml]==7.13.4", "types-urllib3==1.26.25.14", + "types-html5lib==1.1.11.20251117", "virtualenv==21.1.0", "sphinxcontrib-applehelp==2.0.0", + "click-repl==0.3.0", "pygments==2.19.2", "code-annotations==2.3.2", "typesense==2.0.0", + "secretstorage==3.5.0", "pydantic-core==2.41.5", "urllib3==1.26.20", "mongomock==4.3.0", + "tox==4.49.0", "mysqlclient==2.2.8", "id==1.5.0"]' django_packages: django_42: count: 10 - list: '["edx-search", "django-waffle", "event-tracking", "pylint-django", - "edx-django-utils", "pytest-django", "djangorestframework", "code-annotations", - "edx-i18n-tools", "edx-toggles"]' + list: '["edx-django-utils", "edx-toggles", "edx-i18n-tools", "pytest-django", + "djangorestframework", "django-waffle", "pylint-django", "edx-search", + "code-annotations", "event-tracking"]' total: count: 11 - list: '["edx-search", "django-waffle", "event-tracking", "pylint-django", - "edx-django-utils", "pytest-django", "djangorestframework", "code-annotations", - "django-crum", "edx-i18n-tools", "edx-toggles"]' + list: '["edx-django-utils", "edx-toggles", "edx-i18n-tools", "pytest-django", + "djangorestframework", "django-waffle", "pylint-django", "django-crum", + "edx-search", "code-annotations", "event-tracking"]' upgraded: count: 7 - list: '["edx-search", "django-waffle", "event-tracking", "edx-django-utils", - "code-annotations", "edx-i18n-tools", "edx-toggles"]' + list: '["edx-django-utils", "edx-toggles", "edx-i18n-tools", "django-waffle", + "edx-search", "code-annotations", "event-tracking"]' docs: build_badge: false python_version: null @@ -129,8 +127,8 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 13 - build_details: '{"total_duration": "1985 minutes 42 seconds", "checks": [{"name": + branch_count: 14 + build_details: '{"total_duration": "11760 minutes 40 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, e2e)", "duration": "3 minutes 10 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "2 minutes 1 seconds"}, {"name": "tests (ubuntu-latest, 3.12, py)", "duration": "1 minutes 19 seconds"}, @@ -138,12 +136,23 @@ github: seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 18 seconds"}, {"name": "tests (ubuntu-latest, 3.12, package)", "duration": "1 minutes 4 seconds"}, {"name": "call-upgrade-python-requirements-workflow - / upgrade_requirements", "duration": "0 minutes 45 seconds"}]}' + / upgrade_requirements", "duration": "0 minutes 45 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 53 seconds"}]}' code_of_conduct: Other created_at: 2024-07-25 08:43:29 default_branch: master description: Python rewrite of the legacy Open edX Ruby forum - disk_usage_kb: 834 + disk_usage_kb: 777 fork_count: 22 has_issues: true has_wiki: false @@ -152,9 +161,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:24:47 + last_push: 2026-06-07 19:24:47 license: GNU AGPLv3 - pulls_count: 5 + pulls_count: 4 github_actions: true language_bytes: css: 0 @@ -179,6 +188,7 @@ ownership: {} pinned_python_dependencies: 1 readme: bad_links: + - 'https://github.com/openedx/cs_comments_service: 504' - 'https://docs.openedx.org/projects/forum/how-tos/how-to-deploy-this-component.html: 404' - 'https://docs.openedx.org/projects/forum: 404' @@ -186,7 +196,6 @@ readme: good_links: - https://openedx.org - https://github.com/openedx/frontend-app-discussions - - https://github.com/openedx/cs_comments_service - https://discuss.openedx.org/t/axim-funded-contribution-proposal-forum-rewrite-from-ruby-mongodb-to-python-mysql/12788 - https://github.com/overhangio/tutor-forum - https://docs.tutor.edly.io/ diff --git a/individual_repo_data/openedx/frontend-app-account_repo_health.yaml b/individual_repo_data/openedx/frontend-app-account_repo_health.yaml index eb90f669..e11ad6e6 100644 --- a/individual_repo_data/openedx/frontend-app-account_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-account_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -85,18 +85,16 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 79 - build_details: '{"total_duration": "20166 minutes 22 seconds", "checks": [{"name": - "update-browserslist / update-dep", "duration": "1 minutes 1 seconds"}, {"name": - "update-browserslist / update-dep", "duration": "0 minutes 56 seconds"}, {"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}]}' + branch_count: 78 + build_details: '{"total_duration": "0 minutes 0 seconds", "checks": [{"name": + "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": + "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": + "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2019-04-23 15:40:26 default_branch: master description: Open edX micro-frontend application for managing user account information. - disk_usage_kb: 20886 + disk_usage_kb: 21157 fork_count: 182 has_issues: true has_wiki: false @@ -105,9 +103,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-18 20:05:19 + last_push: 2026-06-08 01:21:05 license: GNU AGPLv3 - pulls_count: 22 + pulls_count: 21 github_actions: true language_bytes: css: 0 @@ -175,7 +173,7 @@ renovate: configured: true last_pr: '2026-04-06' oldest_open_pr_date: '2025-11-03' - total_open_prs: 6 + total_open_prs: 5 requires: boto: false django: false diff --git a/individual_repo_data/openedx/frontend-app-admin-console_repo_health.yaml b/individual_repo_data/openedx/frontend-app-admin-console_repo_health.yaml index 557bcd0b..90ee511e 100644 --- a/individual_repo_data/openedx/frontend-app-admin-console_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-admin-console_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -72,21 +72,14 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 6 - build_details: '{"total_duration": "7165 minutes 10 seconds", "checks": [{"name": - "Dependabot", "duration": "1 minutes 8 seconds"}, {"name": "Dependabot", "duration": - "1 minutes 4 seconds"}, {"name": "Dependabot", "duration": "0 minutes 53 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 44 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / - add_label", "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", - "duration": "-1 minutes 50 seconds"}]}' + build_details: '{"total_duration": "0 minutes 56 seconds", "checks": [{"name": + "Dependabot", "duration": "0 minutes 56 seconds"}]}' code_of_conduct: Other created_at: 2025-09-23 11:32:49 default_branch: master description: Administrator console for the Open edX application - disk_usage_kb: 1412 - fork_count: 8 + disk_usage_kb: 1657 + fork_count: 9 has_issues: true has_wiki: false is_archived: false @@ -94,9 +87,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-18 00:39:44 + last_push: 2026-06-08 00:47:12 license: GNU AGPLv3 - pulls_count: 5 + pulls_count: 6 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/frontend-app-admin-portal_repo_health.yaml b/individual_repo_data/openedx/frontend-app-admin-portal_repo_health.yaml index 553e37c9..14eca4e6 100644 --- a/individual_repo_data/openedx/frontend-app-admin-portal_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-admin-portal_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -91,21 +91,18 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 196 - build_details: '{"total_duration": "2745 minutes 57 seconds", "checks": [{"name": - "tests", "duration": "5 minutes 3 seconds"}, {"name": "build", "duration": - "2 minutes 57 seconds"}, {"name": "lint", "duration": "1 minutes 55 seconds"}, - {"name": "extract_translations", "duration": "1 minutes 14 seconds"}, {"name": - "Dependabot", "duration": "1 minutes 5 seconds"}, {"name": "Dependabot", "duration": - "1 minutes 4 seconds"}, {"name": "Dependabot", "duration": "1 minutes 1 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 54 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 41 seconds"}, {"name": "version-check / version-check", - "duration": "0 minutes 6 seconds"}]}' + build_details: '{"total_duration": "4 minutes 12 seconds", "checks": [{"name": + "Dependabot", "duration": "1 minutes 8 seconds"}, {"name": "Dependabot", "duration": + "0 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2018-05-10 13:44:58 default_branch: master description: edx-portal is a frontend that provides branded learning experiences. - disk_usage_kb: 25155 - fork_count: 44 + disk_usage_kb: 25154 + fork_count: 45 has_issues: true has_wiki: false is_archived: false @@ -113,9 +110,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 22:50:02 + last_push: 2026-06-08 01:14:20 license: GNU AGPLv3 - pulls_count: 54 + pulls_count: 55 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/frontend-app-aspects_repo_health.yaml b/individual_repo_data/openedx/frontend-app-aspects_repo_health.yaml index 1b0bb688..4394336c 100644 --- a/individual_repo_data/openedx/frontend-app-aspects_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-aspects_repo_health.yaml @@ -1,25 +1,30 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: - exists: false + exists: true has_ecosystem: - github-actions: false + github-actions: true npm: false pip: false dependabot_alerts: {} dependencies: - count: 0 + count: 14 github: count: 0 list: '' js: - count: 0 - list: '' + count: 3 + list: '{"@edx/openedx-atlas": "^0.7.0", "@superset-ui/embedded-sdk": "^0.3.0", + "react-helmet": "^6.1.0"}' js.all: count: 0 - list: '' + list: '{}' js.dev: - count: 0 - list: '' + count: 11 + list: '{"@edx/browserslist-config": "^1.5.0", "@testing-library/jest-dom": + "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": + "^14.6.1", "@types/jest": "^29.5.14", "@types/react": "^18", "@types/react-dom": + "^18", "jest": "^29", "nodemon": "^3.1.14", "tsc-alias": "^1.8.16", "turbo": + "^2.9.2"}' pypi: count: 0 list: '' @@ -42,16 +47,16 @@ docs: exists: .coveragerc: false .editorconfig: false - .gitignore: false + .gitignore: true .pii_annotations.yml: false .travis.yml: false CHANGELOG.rst: false - Makefile: false + Makefile: true README: true commitlint.yml: true - dependabot.yml: false + dependabot.yml: true openedx.yaml: false - package.json: false + package.json: true pylintrc: false requirements: false setup.cfg: false @@ -62,20 +67,18 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 2 - build_details: '{"total_duration": "39 minutes 11 seconds", "checks": [{"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 - seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes - 52 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes - 52 seconds"}]}' + branch_count: 5 + build_details: '{"total_duration": "6117 minutes 19 seconds", "checks": [{"name": + "Release", "duration": "0 minutes 40 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "0 minutes 37 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2026-05-28 13:40:16 default_branch: main description: '' - disk_usage_kb: 7 + disk_usage_kb: 397 fork_count: 1 has_issues: true has_wiki: false @@ -84,16 +87,16 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 15:06:37 - license: null - pulls_count: 1 + last_push: 2026-06-03 18:35:55 + license: GNU AGPLv3 + pulls_count: 3 github_actions: true language_bytes: css: 0 dockerfile: 0 - html: 0 - javascript: 0 - makefile: 0 + html: 243 + javascript: 1300 + makefile: 1830 python: 0 shell: 0 makefile: @@ -110,9 +113,29 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] - getting-help: false - good_links: [] + bad_links: + - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-aspects: + 404' + getting-help: true + good_links: + - https://github.com/openedx/frontend-app-aspects.git + - https://discuss.openedx.org + - https://github.com/openedx/frontend-app-aspects/issues + - https://github.com/openedx/frontend-base + - https://github.com/overhangio/tutor-mfe + - https://github.com/openedx/frontend-base/blob/main/docs/how_tos/i18n.rst + - https://openedx.org/slack + - https://openedx.slack.com/archives/C04BM6YC7A6 + - https://openedx.org/getting-help + - https://openedx.org/r/how-to-contribute + - https://openedx.org/code-of-conduct/ + - https://img.shields.io/github/license/openedx/frontend-app-aspects.svg + - https://github.com/openedx/frontend-app-aspects/blob/main/LICENSE + - https://img.shields.io/badge/Status-Maintained-brightgreen + - https://github.com/openedx/frontend-app-aspects/actions/workflows/ci.yml/badge.svg + - https://github.com/openedx/frontend-app-aspects/actions/workflows/ci.yml + - https://codecov.io/github/openedx/frontend-app-aspects/coverage.svg?branch=main + - https://codecov.io/github/openedx/frontend-app-aspects?branch=main irc-missing: true mailing-list-missing: true security: false @@ -121,10 +144,10 @@ readthedocs_config: file_name: '' version: '' renovate: - configured: false + configured: true last_pr: null oldest_open_pr_date: null - total_open_prs: null + total_open_prs: 0 requires: boto: false django: false diff --git a/individual_repo_data/openedx/frontend-app-authn_repo_health.yaml b/individual_repo_data/openedx/frontend-app-authn_repo_health.yaml index 195f712b..cad1126e 100644 --- a/individual_repo_data/openedx/frontend-app-authn_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-authn_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -78,7 +78,7 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 51 + branch_count: 50 build_details: '{"total_duration": "2 minutes 31 seconds", "checks": [{"name": "tests", "duration": "2 minutes 31 seconds"}, {"name": "autoupdate", "duration": "0 minutes 20 seconds"}, {"name": "version-check / version-check", "duration": @@ -88,7 +88,7 @@ github: default_branch: master description: Open edX micro-frontend application for new login and registration experience. - disk_usage_kb: 17267 + disk_usage_kb: 17283 fork_count: 261 has_issues: true has_wiki: false @@ -97,9 +97,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-27 21:32:31 + last_push: 2026-06-07 05:15:47 license: GNU AGPLv3 - pulls_count: 20 + pulls_count: 19 github_actions: true language_bytes: css: 0 @@ -128,7 +128,10 @@ readme: port=443): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPSConnection(host=''support.example.com'', port=443): Failed to resolve ''support.example.com'' ([Errno -5] No address associated with hostname)"))' - - 'https://travis-ci.com/edx/frontend-app-authn: 404' + - 'https://github.com/openedx/frontend-app-authn/blob/master/LICENSE: 504' + - 'https://travis-ci.com/edx/frontend-app-authn: 415' + - 'https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml: 504' + - 'https://github.com/semantic-release/semantic-release: 504' getting-help: false good_links: - https://github.com/overhangio/tutor @@ -145,14 +148,11 @@ readme: - https://openedx.org/community/connect - https://openedx.org/code-of-conduct/ - https://backstage.openedx.org/catalog/default/group/2u-infinity - - https://github.com/openedx/frontend-app-authn/blob/master/LICENSE - https://api.travis-ci.com/edx/frontend-app-authn.svg?branch=master - https://img.shields.io/codecov/c/github/edx/frontend-app-authn - https://codecov.io/gh/edx/frontend-app-authn - https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml/badge.svg - - https://github.com/openedx/edx-developer-docs/actions/workflows/ci.yml - https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg - - https://github.com/semantic-release/semantic-release irc-missing: true mailing-list-missing: true security: false @@ -164,7 +164,7 @@ renovate: configured: true last_pr: '2026-03-27' oldest_open_pr_date: '2024-12-05' - total_open_prs: 9 + total_open_prs: 8 requires: boto: false django: false diff --git a/individual_repo_data/openedx/frontend-app-authoring_repo_health.yaml b/individual_repo_data/openedx/frontend-app-authoring_repo_health.yaml index 2f0cb3fe..2ac4838f 100644 --- a/individual_repo_data/openedx/frontend-app-authoring_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-authoring_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -102,23 +102,26 @@ github: allows_merge_commit: false allows_rebase_merge: true allows_squash_merge: true - branch_count: 33 - build_details: '{"total_duration": "2838 minutes 8 seconds", "checks": [{"name": - "tests", "duration": "8 minutes 43 seconds"}, {"name": "Dependabot", "duration": - "1 minutes 31 seconds"}, {"name": "Dependabot", "duration": "1 minutes 29 - seconds"}, {"name": "Dependabot", "duration": "1 minutes 23 seconds"}, {"name": - "version-check / version-check", "duration": "0 minutes 3 seconds"}, {"name": - "coverage", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}]}' + branch_count: 35 + build_details: '{"total_duration": "1438 minutes 42 seconds", "checks": [{"name": + "tests", "duration": "10 minutes 56 seconds"}, {"name": "coverage", "duration": + "0 minutes 10 seconds"}, {"name": "version-check / version-check", "duration": + "0 minutes 4 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 54 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 50 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2020-05-06 18:34:51 default_branch: master description: Front-end for the Open edX Studio experience, implemented in React and Paragon. - disk_usage_kb: 52120 - fork_count: 196 + disk_usage_kb: 52436 + fork_count: 197 has_issues: true has_wiki: false is_archived: false @@ -126,15 +129,15 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-27 11:11:51 + last_push: 2026-06-08 00:40:06 license: GNU AGPLv3 - pulls_count: 30 + pulls_count: 34 github_actions: false language_bytes: css: 0 dockerfile: 0 html: 388 - javascript: 3187166 + javascript: 3211448 makefile: 1967 python: 0 shell: 0 @@ -153,26 +156,27 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/overhangio/tutor: 504' + - 'https://github.com/nvm-sh/nvm: 504' - 'http://apps.local.openedx.io: HTTPConnectionPool(host=''apps.local.openedx.io'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=''apps.local.openedx.io'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))' - - 'https://travis-ci.com/edx/frontend-app-course-authoring: 404' + - 'https://github.com/openedx/frontend-app-discussions/: 504' + - 'https://github.com/edx/edx-exams: 504' + - 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file: 504' + - 'https://travis-ci.com/edx/frontend-app-course-authoring: 415' + - 'https://github.com/openedx/frontend-app-course-authoring/issues: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-course-authoring: 404' getting-help: false good_links: - https://github.com/openedx/edx-platform/tree/master/cms - - https://github.com/overhangio/tutor - https://github.com/overhangio/tutor-mfe - https://github.com/openedx/frontend-app-authoring.git - - https://github.com/nvm-sh/nvm - https://discuss.openedx.org/t/repo-rename-frontend-app-course-authoring-frontend-app-authoring/13930/2 - https://github.com/openedx/frontend-app-learning - - https://github.com/openedx/frontend-app-discussions/ - - https://github.com/edx/edx-exams - https://github.com/open-craft/tutor-contrib-meilisearch - https://docs.tutor.edly.io/ - - https://github.com/overhangio/tutor-mfe?tab=readme-ov-file - https://github.com/Automattic/node-canvas/issues/1733 - https://api.travis-ci.com/edx/frontend-app-course-authoring.svg?branch=master - https://codecov.io/gh/edx/frontend-app-course-authoring/branch/master/graph/badge.svg @@ -180,7 +184,6 @@ readme: - https://img.shields.io/npm/l/@edx/frontend-app-authoring.svg - https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst - https://discuss.openedx.org - - https://github.com/openedx/frontend-app-course-authoring/issues - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.slack.com/archives/C04BM6YC7A6 diff --git a/individual_repo_data/openedx/frontend-app-catalog_repo_health.yaml b/individual_repo_data/openedx/frontend-app-catalog_repo_health.yaml index 99999cf4..2accf9c7 100644 --- a/individual_repo_data/openedx/frontend-app-catalog_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-catalog_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -120,9 +120,13 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/nvm-sh/nvm: 504' - 'http://apps.local.openedx.io: HTTPConnectionPool(host=''apps.local.openedx.io'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=''apps.local.openedx.io'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))' + - 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst: + 504' + - 'https://github.com/openedx/frontend-plugin-framework: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-catalog: 404' getting-help: true @@ -139,9 +143,6 @@ readme: - https://github.com/openedx/openedx-platform/pull/37949 - https://github.com/overhangio/tutor - https://github.com/overhangio/tutor-mfe - - https://github.com/nvm-sh/nvm - - https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst - - https://github.com/openedx/frontend-plugin-framework - https://discuss.openedx.org - https://openedx.org/slack - https://openedx.slack.com/archives/C04BM6YC7A6 diff --git a/individual_repo_data/openedx/frontend-app-communications_repo_health.yaml b/individual_repo_data/openedx/frontend-app-communications_repo_health.yaml index 53604ab9..104f9a76 100644 --- a/individual_repo_data/openedx/frontend-app-communications_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-communications_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -77,18 +77,19 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 21 - build_details: '{"total_duration": "23617 minutes 5 seconds", "checks": [{"name": + build_details: '{"total_duration": "33699 minutes 0 seconds", "checks": [{"name": "tests", "duration": "2 minutes 29 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist - / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "version-check + / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "1 minutes 5 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 6 seconds"}]}' code_of_conduct: Other created_at: 2021-12-03 16:33:28 default_branch: master description: Frontend to manage instructor-learner communications disk_usage_kb: 5221 - fork_count: 62 + fork_count: 61 has_issues: true has_wiki: false is_archived: false @@ -96,7 +97,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:36:20 + last_push: 2026-06-08 00:38:16 license: GNU AGPLv3 pulls_count: 3 github_actions: true @@ -123,19 +124,22 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: - - 'https://openedx.org/slack: 403' + - 'https://github.com/overhangio/tutor: 504' + - 'https://github.com/overhangio/tutor-mfe?tab=readme-ov-file: 504' + - 'https://github.com/edx/frontend-app-communications.git: 504' + - 'https://github.com/openedx/frontend-plugin-framework: 504' + - 'https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst: + 504' + - 'https://github.com/openedx/frontend-app-communications/issues: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-communications: 404' + - 'https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml: + 504' getting-help: false good_links: - - https://github.com/overhangio/tutor - - https://github.com/overhangio/tutor-mfe?tab=readme-ov-file - - https://github.com/edx/frontend-app-communications.git - https://github.com/nvm-sh/nvm - - https://github.com/openedx/frontend-plugin-framework - - https://github.com/openedx/frontend-platform/blob/master/docs/how_tos/i18n.rst - https://discuss.openedx.org - - https://github.com/openedx/frontend-app-communications/issues + - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.slack.com/archives/C04BM6YC7A6 - https://openedx.org/community/connect @@ -145,7 +149,6 @@ readme: - https://github.com/openedx/frontend-app-communications/blob/master/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml/badge.svg - - https://github.com/openedx/frontend-app-communications/actions/workflows/ci.yml - https://codecov.io/github/openedx/frontend-app-communications/coverage.svg?branch=master - https://codecov.io/github/openedx/frontend-app-communications?branch=master irc-missing: true diff --git a/individual_repo_data/openedx/frontend-app-discussions_repo_health.yaml b/individual_repo_data/openedx/frontend-app-discussions_repo_health.yaml index 283134fc..74ab6432 100644 --- a/individual_repo_data/openedx/frontend-app-discussions_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-discussions_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -92,8 +92,8 @@ github: created_at: 2020-08-11 23:04:15 default_branch: master description: A React-based micro frontend for the Open edX discussion forums. - disk_usage_kb: 8932 - fork_count: 107 + disk_usage_kb: 8934 + fork_count: 106 has_issues: true has_wiki: false is_archived: false @@ -101,7 +101,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 20:32:11 + last_push: 2026-06-03 10:49:51 license: GNU AGPLv3 pulls_count: 17 github_actions: true diff --git a/individual_repo_data/openedx/frontend-app-enterprise-public-catalog_repo_health.yaml b/individual_repo_data/openedx/frontend-app-enterprise-public-catalog_repo_health.yaml index 46ca77ed..37a3a29c 100644 --- a/individual_repo_data/openedx/frontend-app-enterprise-public-catalog_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-enterprise-public-catalog_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -80,10 +80,11 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 35 - build_details: '{"total_duration": "16496 minutes 22 seconds", "checks": [{"name": + build_details: '{"total_duration": "26579 minutes 42 seconds", "checks": [{"name": "build", "duration": "3 minutes 11 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 12 seconds"}, {"name": "update-browserslist - / update-dep", "duration": "1 minutes 8 seconds"}]}' + / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "1 minutes 5 seconds"}]}' code_of_conduct: Other created_at: 2021-03-02 20:49:57 default_branch: main @@ -128,7 +129,7 @@ readme: - 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404' - 'https://github.com/openedx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 404' - - 'https://travis-ci.com/edx/frontend-app-enterprise-public-catalog: 404' + - 'https://travis-ci.com/edx/frontend-app-enterprise-public-catalog: 415' getting-help: false good_links: - https://explore-catalog.stage.edx.org/ diff --git a/individual_repo_data/openedx/frontend-app-gradebook_repo_health.yaml b/individual_repo_data/openedx/frontend-app-gradebook_repo_health.yaml index b74c2b32..fd1b7174 100644 --- a/individual_repo_data/openedx/frontend-app-gradebook_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-gradebook_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -79,9 +79,10 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 59 - build_details: '{"total_duration": "16540 minutes 43 seconds", "checks": [{"name": + branch_count: 60 + build_details: '{"total_duration": "26620 minutes 27 seconds", "checks": [{"name": "test", "duration": "2 minutes 53 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 0 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 57 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}' @@ -89,8 +90,8 @@ github: created_at: 2018-10-17 15:49:15 default_branch: master description: Instructor grade book tool - disk_usage_kb: 11357 - fork_count: 117 + disk_usage_kb: 10198 + fork_count: 116 has_issues: true has_wiki: false is_archived: false @@ -98,9 +99,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-20 13:24:10 + last_push: 2026-06-08 01:04:46 license: GNU AGPLv3 - pulls_count: 16 + pulls_count: 17 github_actions: true language_bytes: css: 0 @@ -131,7 +132,7 @@ readme: - 'http://apps.local.openedx.io: HTTPConnectionPool(host=''apps.local.openedx.io'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=''apps.local.openedx.io'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))' - - 'https://travis-ci.com/edx/frontend-app-gradebook: 404' + - 'https://travis-ci.com/edx/frontend-app-gradebook: 415' getting-help: false good_links: - https://docs.openedx.org/en/latest/educators/how-tos/data/view_learner_grades.html diff --git a/individual_repo_data/openedx/frontend-app-instructor-dashboard_repo_health.yaml b/individual_repo_data/openedx/frontend-app-instructor-dashboard_repo_health.yaml index 36409dbc..8f1f0d3e 100644 --- a/individual_repo_data/openedx/frontend-app-instructor-dashboard_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-instructor-dashboard_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -122,6 +122,8 @@ readme: - 'http://apps.local.openedx.io: HTTPConnectionPool(host=''apps.local.openedx.io'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=''apps.local.openedx.io'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))' + - 'https://github.com/openedx/frontend-app-instructor-dashboard/blob/master/docs/decisions/0002-feature-based-application-organization.rst: + 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-instructor-dashboard: 404' getting-help: true @@ -130,7 +132,6 @@ readme: - https://github.com/overhangio/tutor-mfe - https://github.com/openedx/frontend-app-instructor-dashboard.git - https://github.com/nvm-sh/nvm - - https://github.com/openedx/frontend-app-instructor-dashboard/blob/master/docs/decisions/0002-feature-based-application-organization.rst - https://github.com/openedx/frontend-base/blob/master/docs/how_tos/i18n.rst - https://discuss.openedx.org - https://github.com/openedx/frontend-app-instructor-dashboard/issues diff --git a/individual_repo_data/openedx/frontend-app-learner-dashboard_repo_health.yaml b/individual_repo_data/openedx/frontend-app-learner-dashboard_repo_health.yaml index 67400d22..269271b7 100644 --- a/individual_repo_data/openedx/frontend-app-learner-dashboard_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-learner-dashboard_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -79,7 +79,7 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 27 + branch_count: 28 build_details: '{"total_duration": "5012 minutes 38 seconds", "checks": [{"name": "tests", "duration": "2 minutes 35 seconds"}, {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "version-check / version-check", "duration": @@ -94,8 +94,8 @@ github: created_at: 2022-06-03 14:59:36 default_branch: master description: Learner Dashboard MFE - disk_usage_kb: 9508 - fork_count: 198 + disk_usage_kb: 9510 + fork_count: 197 has_issues: true has_wiki: false is_archived: false @@ -103,9 +103,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-20 02:36:35 + last_push: 2026-06-03 00:28:28 license: GNU AGPLv3 - pulls_count: 9 + pulls_count: 10 github_actions: true language_bytes: css: 0 @@ -129,21 +129,22 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/frontend-app-learner-dashboard/blob/master/LICENSE: + 504' + - 'https://github.com/openedx/frontend-plugin-framework: 504' + - 'https://github.com/openedx/frontend-app-learner-dashboard/issues: 504' getting-help: false good_links: - https://img.shields.io/github/license/openedx/frontend-app-learner-dashboard.svg - - https://github.com/openedx/frontend-app-learner-dashboard/blob/master/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml/badge.svg - https://github.com/openedx/frontend-app-learner-dashboard/actions/workflows/ci.yml - https://codecov.io/github/openedx/frontend-app-learner-dashboard/coverage.svg?branch=master - https://app.codecov.io/github/openedx/frontend-app-learner-dashboard?branch=master - - https://github.com/openedx/frontend-plugin-framework - https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html - https://openedx.atlassian.net/wiki/spaces/COMM/pages/3875962884/How+to+submit+an+open+source+contribution+for+Product+Review - https://discuss.openedx.org - - https://github.com/openedx/frontend-app-learner-dashboard/issues - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.slack.com/archives/C04BM6YC7A6 diff --git a/individual_repo_data/openedx/frontend-app-learner-portal-enterprise_repo_health.yaml b/individual_repo_data/openedx/frontend-app-learner-portal-enterprise_repo_health.yaml index 6d183dee..b4cdbf04 100644 --- a/individual_repo_data/openedx/frontend-app-learner-portal-enterprise_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-learner-portal-enterprise_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -89,19 +89,18 @@ github: allows_merge_commit: false allows_rebase_merge: false allows_squash_merge: true - branch_count: 139 - build_details: '{"total_duration": "2408 minutes 52 seconds", "checks": [{"name": - "tests", "duration": "4 minutes 59 seconds"}, {"name": "Dependabot", "duration": - "1 minutes 9 seconds"}, {"name": "generate", "duration": "1 minutes 2 seconds"}, - {"name": "generate", "duration": "0 minutes 56 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 41 seconds"}, {"name": "Dependabot", "duration": "0 - minutes 35 seconds"}, {"name": "version-check / version-check", "duration": - "0 minutes 3 seconds"}]}' + branch_count: 140 + build_details: '{"total_duration": "310 minutes 51 seconds", "checks": [{"name": + "generate", "duration": "1 minutes 10 seconds"}, {"name": "Dependabot", "duration": + "0 minutes 50 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 52 seconds"}]}' code_of_conduct: Other created_at: 2019-09-23 14:57:34 default_branch: master description: Enterprise Learner Portal - disk_usage_kb: 21861 + disk_usage_kb: 22296 fork_count: 29 has_issues: true has_wiki: false @@ -110,9 +109,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:59:16 + last_push: 2026-06-08 05:46:34 license: GNU AGPLv3 - pulls_count: 43 + pulls_count: 44 github_actions: true language_bytes: css: 0 @@ -137,18 +136,21 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/frontend-app-learner-portal-enterprise/actions/workflows/ci.yml/badge.svg: + 504' - 'https://github.com/openedx/frontend-app-learner-portal-enterpise.git: 404' - 'http://localhostL8734/: HTTPConnectionPool(host=''localhostl8734'', port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=''localhostl8734'', port=80): Failed to resolve ''localhostl8734'' ([Errno -3] Temporary failure in name resolution)"))' + - 'https://github.com/openedx/edx-enterprise/blob/master/enterprise/management/commands/seed_enterprise_devstack_data.py: + 504' + - 'https://github.com/openedx/edx-platform/blob/0e2b612c1fb4f3e385f3004801aa5b5ed0221eda/lms/envs/devstack.py: + 504' + - 'https://github.com/openedx/devstack: 504' getting-help: false good_links: - - https://github.com/openedx/frontend-app-learner-portal-enterprise/actions/workflows/ci.yml/badge.svg - https://openedx.atlassian.net/wiki/spaces/ENG/pages/12550298/Developer+Onboarding - - https://github.com/openedx/edx-enterprise/blob/master/enterprise/management/commands/seed_enterprise_devstack_data.py - - https://github.com/openedx/edx-platform/blob/0e2b612c1fb4f3e385f3004801aa5b5ed0221eda/lms/envs/devstack.py - - https://github.com/openedx/devstack - https://go.microsoft.com/fwlink/?linkid=830387 - https://openedx.atlassian.net/wiki/spaces/SOL/pages/997654609/Hitchhiker+s+Engineer+s+Guide+to+the+Enterprise+Ecosystem - https://reactjs.org/ diff --git a/individual_repo_data/openedx/frontend-app-learner-record_repo_health.yaml b/individual_repo_data/openedx/frontend-app-learner-record_repo_health.yaml index 0d15b07f..af228281 100644 --- a/individual_repo_data/openedx/frontend-app-learner-record_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-learner-record_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -76,9 +76,10 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 19 - build_details: '{"total_duration": "16541 minutes 55 seconds", "checks": [{"name": + branch_count: 20 + build_details: '{"total_duration": "26621 minutes 40 seconds", "checks": [{"name": "tests", "duration": "2 minutes 19 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "1 minutes 12 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 58 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 56 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}' @@ -86,7 +87,7 @@ github: created_at: 2021-07-19 19:30:14 default_branch: master description: Open edX micro-frontend application for viewing learner records - disk_usage_kb: 8716 + disk_usage_kb: 8717 fork_count: 24 has_issues: true has_wiki: false @@ -95,9 +96,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-20 13:25:38 + last_push: 2026-06-08 01:05:29 license: GNU AGPLv3 - pulls_count: 7 + pulls_count: 8 github_actions: true language_bytes: css: 0 @@ -123,12 +124,14 @@ pinned_python_dependencies: 0 readme: bad_links: - 'https://en.wikipedia.org/wiki/Verifiable_credentials: 403' + - 'https://github.com/openedx/frontend-plugin-framework: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/: 404' - - 'https://travis-ci.com/edx/frontend-app-learner-record: 404' + - 'https://travis-ci.com/edx/frontend-app-learner-record: 415' + - 'https://github.com/openedx/frontend-app-learner-record/blob/master/LICENSE: + 504' getting-help: true good_links: - https://www.edx.org - - https://github.com/openedx/frontend-plugin-framework - https://edx-credentials.readthedocs.io/en/latest/learner_records.html - https://github.com/edx/frontend-template-application/blob/master/docs/decisions/0002-feature-based-application-organization.rst - https://openedx.atlassian.net/wiki/spaces/FEDX/pages/2629829454/Micro+Frontend+MFE+Onboarding @@ -143,7 +146,6 @@ readme: - https://codecov.io/gh/edx/frontend-app-learner-record/branch/master/graph/badge.svg - https://codecov.io/gh/edx/frontend-app-learner-record - https://img.shields.io/npm/l/@edx/frontend-app-learner-record.svg - - https://github.com/openedx/frontend-app-learner-record/blob/master/LICENSE irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/frontend-app-learning_repo_health.yaml b/individual_repo_data/openedx/frontend-app-learning_repo_health.yaml index 2ec93d9a..34e744f1 100644 --- a/individual_repo_data/openedx/frontend-app-learning_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-learning_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -80,7 +80,7 @@ github: allows_merge_commit: false allows_rebase_merge: true allows_squash_merge: true - branch_count: 91 + branch_count: 92 build_details: '{"total_duration": "4882 minutes 18 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, @@ -99,8 +99,8 @@ github: default_branch: master description: Front-end for the Open edX course experience, implemented using React and Paragon. - disk_usage_kb: 20771 - fork_count: 324 + disk_usage_kb: 20773 + fork_count: 323 has_issues: true has_wiki: false is_archived: false @@ -108,9 +108,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-18 01:18:11 + last_push: 2026-06-08 01:20:39 license: GNU AGPLv3 - pulls_count: 48 + pulls_count: 50 github_actions: false language_bytes: css: 128 diff --git a/individual_repo_data/openedx/frontend-app-ora-grading_repo_health.yaml b/individual_repo_data/openedx/frontend-app-ora-grading_repo_health.yaml index 1243b537..bd5f1d44 100644 --- a/individual_repo_data/openedx/frontend-app-ora-grading_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-ora-grading_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -94,7 +94,7 @@ github: description: Open Response Assessment - Enhanced Staff Grader - Allows graders to easily review, evaluate and grade ORAs disk_usage_kb: 6224 - fork_count: 68 + fork_count: 67 has_issues: true has_wiki: false is_archived: false @@ -129,11 +129,13 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/ora_staff_grader: + 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora-grading: 404' + - 'https://github.com/openedx/frontend-app-ora-grading/blob/master/LICENSE: 504' getting-help: false good_links: - - https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/ora_staff_grader - https://github.com/overhangio/tutor - https://github.com/overhangio/tutor-mfe?tab=readme-ov-file - https://github.com/openedx/frontend-plugin-framework @@ -149,7 +151,6 @@ readme: - https://openedx.org/r/how-to-contribute - https://openedx.org/code-of-conduct/ - https://img.shields.io/github/license/openedx/frontend-app-ora-grading.svg - - https://github.com/openedx/frontend-app-ora-grading/blob/master/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml/badge.svg - https://github.com/openedx/frontend-app-ora-grading/actions/workflows/ci.yml diff --git a/individual_repo_data/openedx/frontend-app-ora_repo_health.yaml b/individual_repo_data/openedx/frontend-app-ora_repo_health.yaml index 9be659b1..160013c1 100644 --- a/individual_repo_data/openedx/frontend-app-ora_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-ora_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -80,9 +80,10 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 24 - build_details: '{"total_duration": "23658 minutes 32 seconds", "checks": [{"name": + build_details: '{"total_duration": "33737 minutes 54 seconds", "checks": [{"name": "test", "duration": "3 minutes 40 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 26 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "1 minutes 23 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 22 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 17 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}' @@ -90,7 +91,7 @@ github: created_at: 2023-07-12 21:42:38 default_branch: master description: Open Response Assessment MFE - disk_usage_kb: 4068 + disk_usage_kb: 4067 fork_count: 23 has_issues: true has_wiki: false @@ -99,7 +100,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 20:02:44 + last_push: 2026-06-02 17:14:36 license: GNU GPLv3 pulls_count: 11 github_actions: true @@ -126,23 +127,25 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/frontend-app-ora.git: 504' + - 'https://github.com/overhangio/tutor-mfe/blob/release/tutormfe/plugin.py: 504' - 'http://apps.local.openedx.io: HTTPConnectionPool(host=''apps.local.openedx.io'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=''apps.local.openedx.io'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))' + - 'https://github.com/edx/frontend-app-ora/issues: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-app-ora: 404' + - 'https://github.com/edx/frontend-app-ora/blob/master/LICENSE: 504' - 'https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml/badge.svg: - 404' + 504' + - 'https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml: 504' getting-help: true good_links: - https://github.com/overhangio/tutor - https://github.com/overhangio/tutor-mfe?tab=readme-ov-file - - https://github.com/openedx/frontend-app-ora.git - https://github.com/nvm-sh/nvm - - https://github.com/overhangio/tutor-mfe/blob/release/tutormfe/plugin.py - https://docs.openedx.org/en/latest/site_ops/how-tos/add-waffle-flag-for-user.html - https://discuss.openedx.org - - https://github.com/edx/frontend-app-ora/issues - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.slack.com/archives/C04BM6YC7A6 @@ -150,9 +153,7 @@ readme: - https://openedx.org/r/how-to-contribute - https://openedx.org/code-of-conduct/ - https://img.shields.io/github/license/openedx/frontend-app-ora.svg - - https://github.com/edx/frontend-app-ora/blob/master/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - - https://github.com/edx/frontend-app-ora/actions/workflows/ci.yml - https://codecov.io/github/openedx/frontend-app-ora/coverage.svg?branch=master - https://codecov.io/github/openedx/frontend-app-ora?branch=master irc-missing: true diff --git a/individual_repo_data/openedx/frontend-app-profile_repo_health.yaml b/individual_repo_data/openedx/frontend-app-profile_repo_health.yaml index a5f8508d..ea6168ce 100644 --- a/individual_repo_data/openedx/frontend-app-profile_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-app-profile_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -81,19 +81,16 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 45 - build_details: '{"total_duration": "20162 minutes 53 seconds", "checks": [{"name": - "update-browserslist / update-dep", "duration": "1 minutes 36 seconds"}, {"name": - "update-browserslist / update-dep", "duration": "1 minutes 34 seconds"}, {"name": - "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes - 52 seconds"}]}' + build_details: '{"total_duration": "0 minutes 0 seconds", "checks": [{"name": + "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": + "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": + "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2019-01-10 17:55:59 default_branch: master description: Open edX micro-frontend application for managing user profile information. - disk_usage_kb: 23471 - fork_count: 153 + disk_usage_kb: 23497 + fork_count: 152 has_issues: true has_wiki: false is_archived: false @@ -101,9 +98,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 15:43:33 + last_push: 2026-06-08 00:46:02 license: GNU AGPLv3 - pulls_count: 16 + pulls_count: 17 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/frontend-base-compat_repo_health.yaml b/individual_repo_data/openedx/frontend-base-compat_repo_health.yaml index dab756ec..83a9759c 100644 --- a/individual_repo_data/openedx/frontend-base-compat_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-base-compat_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/frontend-base_repo_health.yaml b/individual_repo_data/openedx/frontend-base_repo_health.yaml index 423c0ddb..4ac1ec0d 100644 --- a/individual_repo_data/openedx/frontend-base_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-base_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -153,22 +153,23 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/frontend-build: 504' + - 'https://github.com/openedx/frontend-platform: 504' + - 'https://github.com/openedx/frontend-plugin-framework: 504' + - 'https://github.com/openedx/frontend-component-header: 504' + - 'https://github.com/openedx/frontend-component-footer: 504' - 'http://apps.local.openedx.io: HTTPConnectionPool(host=''apps.local.openedx.io'', port=80): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPConnection(host=''apps.local.openedx.io'', port=80): Failed to establish a new connection: [Errno 111] Connection refused"))' + - 'https://github.com/openedx/frontend-dev-utils/blob/main/tools/autoinstall/README.md: + 504' getting-help: false good_links: - https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0065-arch-frontend-composability.html - - https://github.com/openedx/frontend-build - - https://github.com/openedx/frontend-platform - - https://github.com/openedx/frontend-plugin-framework - - https://github.com/openedx/frontend-component-header - - https://github.com/openedx/frontend-component-footer - https://github.com/openedx/open-edx-proposals/pull/598 - https://discuss.openedx.org/t/oep-65-adjacent-a-frontend-architecture-vision/13223 - https://github.com/orgs/openedx/projects/65/views/1 - https://openedx.slack.com/archives/C04BM6YC7A6 - - https://github.com/openedx/frontend-dev-utils/blob/main/tools/autoinstall/README.md irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/frontend-build_repo_health.yaml b/individual_repo_data/openedx/frontend-build_repo_health.yaml index 8d902e5a..2c00b906 100644 --- a/individual_repo_data/openedx/frontend-build_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-build_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -137,7 +137,9 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: - - 'https://travis-ci.com/edx/frontend-build: 404' + - 'https://travis-ci.com/edx/frontend-build: 415' + - 'https://github.com/edx-unsupported/frontend-base/blob/master/LICENSE: 504' + - 'https://github.com/openedx/frontend-build.git: 504' getting-help: false good_links: - https://api.travis-ci.com/edx/frontend-build.svg?branch=master @@ -145,8 +147,6 @@ readme: - https://img.shields.io/codecov/c/github/edx/frontend-build - https://codecov.io/gh/edx/frontend-build - https://img.shields.io/npm/l/@openedx/frontend-build.svg - - https://github.com/edx-unsupported/frontend-base/blob/master/LICENSE - - https://github.com/openedx/frontend-build.git - https://github.com/nvm-sh/nvm - https://github.com/openedx/devstack/tree/master/docs/decisions/0005-frontend-package-mounts.rst - https://webpack.js.org/configuration/resolve/ diff --git a/individual_repo_data/openedx/frontend-component-cookie-policy-banner_repo_health.yaml b/individual_repo_data/openedx/frontend-component-cookie-policy-banner_repo_health.yaml index c23abb51..e4c56523 100644 --- a/individual_repo_data/openedx/frontend-component-cookie-policy-banner_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-component-cookie-policy-banner_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/frontend-component-footer_repo_health.yaml b/individual_repo_data/openedx/frontend-component-footer_repo_health.yaml index 7f055633..130d0b81 100644 --- a/individual_repo_data/openedx/frontend-component-footer_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-component-footer_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -81,7 +81,7 @@ github: created_at: 2019-01-02 20:14:34 default_branch: master description: Site footer component for edX frontend apps. - disk_usage_kb: 16296 + disk_usage_kb: 16297 fork_count: 155 has_issues: true has_wiki: false @@ -90,7 +90,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 23:13:24 + last_push: 2026-06-04 18:40:07 license: GNU AGPLv3 pulls_count: 15 github_actions: true @@ -118,7 +118,7 @@ pinned_python_dependencies: 0 readme: bad_links: - 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404' - - 'https://travis-ci.com/edx/frontend-component-footer: 404' + - 'https://travis-ci.com/edx/frontend-component-footer: 415' getting-help: false good_links: - https://github.com/openedx/devstack diff --git a/individual_repo_data/openedx/frontend-component-header_repo_health.yaml b/individual_repo_data/openedx/frontend-component-header_repo_health.yaml index c1eb403a..08d80d12 100644 --- a/individual_repo_data/openedx/frontend-component-header_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-component-header_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -91,7 +91,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 23:56:02 + last_push: 2026-06-04 15:39:31 license: GNU AGPLv3 pulls_count: 19 github_actions: true @@ -123,7 +123,7 @@ readme: - 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404' - 'https://api.travis-ci.com/edx/frontend-component-header.svg?branch=master: 404' - - 'https://travis-ci.com/edx/frontend-component-header: 404' + - 'https://travis-ci.com/edx/frontend-component-header: 415' getting-help: false good_links: - https://github.com/openedx/devstack diff --git a/individual_repo_data/openedx/frontend-components-tinymce-advanced-plugins_repo_health.yaml b/individual_repo_data/openedx/frontend-components-tinymce-advanced-plugins_repo_health.yaml index 9c3dcfe3..326f0ca0 100644 --- a/individual_repo_data/openedx/frontend-components-tinymce-advanced-plugins_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-components-tinymce-advanced-plugins_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/frontend-dev-utils_repo_health.yaml b/individual_repo_data/openedx/frontend-dev-utils_repo_health.yaml index 49618324..a98cb0db 100644 --- a/individual_repo_data/openedx/frontend-dev-utils_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-dev-utils_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -104,10 +104,10 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/frontend-base/: 504' getting-help: false - good_links: - - https://github.com/openedx/frontend-base/ + good_links: [] irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/frontend-enterprise_repo_health.yaml b/individual_repo_data/openedx/frontend-enterprise_repo_health.yaml index 50147787..a4f71027 100644 --- a/individual_repo_data/openedx/frontend-enterprise_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-enterprise_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -63,7 +63,7 @@ github: allows_merge_commit: false allows_rebase_merge: false allows_squash_merge: true - branch_count: 62 + branch_count: 63 build_details: '{"total_duration": "1 minutes 24 seconds", "checks": [{"name": "Dependabot", "duration": "1 minutes 16 seconds"}, {"name": "Dependabot", "duration": "1 minutes 13 seconds"}, {"name": "Dependabot", "duration": "0 @@ -76,7 +76,7 @@ github: created_at: 2019-09-17 19:51:18 default_branch: master description: Frontend utilities for enterprise features. - disk_usage_kb: 10229 + disk_usage_kb: 7852 fork_count: 13 has_issues: true has_wiki: false @@ -85,7 +85,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-15 04:57:14 + last_push: 2026-06-02 17:08:06 license: GNU AGPLv3 pulls_count: 8 github_actions: true diff --git a/individual_repo_data/openedx/frontend-lib-special-exams_repo_health.yaml b/individual_repo_data/openedx/frontend-lib-special-exams_repo_health.yaml index 4c5e262c..745104c2 100644 --- a/individual_repo_data/openedx/frontend-lib-special-exams_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-lib-special-exams_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -117,13 +117,13 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/edx/frontend-lib-special-exams.git: 504' - 'https://edx.github.io/frontend-platform/module-Internationalization.html: 404' + - 'https://github.com/edx/frontend-i18n/blob/master/docs/how_tos/i18n.rst: 504' + - 'https://github.com/openedx/frontend-plugin-framework: 504' getting-help: false good_links: - - https://github.com/edx/frontend-lib-special-exams.git - https://github.com/nvm-sh/nvm - - https://github.com/edx/frontend-i18n/blob/master/docs/how_tos/i18n.rst - - https://github.com/openedx/frontend-plugin-framework - https://openedx.org/r/how-to-contribute - https://discuss.openedx.org - https://github.com/openedx/frontend-lib-special-exams/issues diff --git a/individual_repo_data/openedx/frontend-platform_repo_health.yaml b/individual_repo_data/openedx/frontend-platform_repo_health.yaml index d426c65d..a8dfb44f 100644 --- a/individual_repo_data/openedx/frontend-platform_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-platform_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -76,10 +76,11 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 51 - build_details: '{"total_duration": "16536 minutes 6 seconds", "checks": [{"name": + branch_count: 52 + build_details: '{"total_duration": "26616 minutes 40 seconds", "checks": [{"name": "tests", "duration": "1 minutes 53 seconds"}, {"name": "Release", "duration": "1 minutes 25 seconds"}, {"name": "update-browserslist / update-dep", "duration": + "0 minutes 59 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 56 seconds"}, {"name": "update-browserslist / update-dep", "duration": "0 minutes 53 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 3 seconds"}]}' @@ -87,7 +88,7 @@ github: created_at: 2019-11-06 21:04:09 default_branch: master description: A framework for Open edX micro-frontend applications. - disk_usage_kb: 37463 + disk_usage_kb: 37464 fork_count: 89 has_issues: true has_wiki: false @@ -96,9 +97,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 00:00:04 + last_push: 2026-06-08 00:46:43 license: GNU AGPLv3 - pulls_count: 23 + pulls_count: 24 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/frontend-plugin-aspects_repo_health.yaml b/individual_repo_data/openedx/frontend-plugin-aspects_repo_health.yaml index ba646336..721670ac 100644 --- a/individual_repo_data/openedx/frontend-plugin-aspects_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-plugin-aspects_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -69,8 +69,9 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 4 - build_details: '{"total_duration": "10087 minutes 16 seconds", "checks": [{"name": + branch_count: 5 + build_details: '{"total_duration": "20166 minutes 47 seconds", "checks": [{"name": + "update-browserslist / update-dep", "duration": "1 minutes 17 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 9 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": @@ -80,7 +81,7 @@ github: created_at: 2025-03-21 15:08:32 default_branch: main description: Frontend plugins for Aspects - disk_usage_kb: 2225 + disk_usage_kb: 2479 fork_count: 6 has_issues: true has_wiki: false @@ -89,9 +90,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-25 06:04:54 + last_push: 2026-06-08 01:09:33 license: GNU AGPLv3 - pulls_count: 2 + pulls_count: 3 github_actions: true language_bytes: css: 118 diff --git a/individual_repo_data/openedx/frontend-plugin-framework_repo_health.yaml b/individual_repo_data/openedx/frontend-plugin-framework_repo_health.yaml index b6d8df8a..8e4417e5 100644 --- a/individual_repo_data/openedx/frontend-plugin-framework_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-plugin-framework_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -70,10 +70,11 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 21 - build_details: '{"total_duration": "16537 minutes 41 seconds", "checks": [{"name": + build_details: '{"total_duration": "26618 minutes 7 seconds", "checks": [{"name": "Release", "duration": "1 minutes 53 seconds"}, {"name": "test", "duration": "1 minutes 41 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 8 seconds"}, {"name": "update-browserslist / update-dep", "duration": + "1 minutes 5 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 2 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 4 seconds"}]}' code_of_conduct: Other @@ -89,7 +90,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 19:10:23 + last_push: 2026-06-01 16:49:14 license: GNU AGPLv3 pulls_count: 12 github_actions: true @@ -116,7 +117,11 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: - - 'https://github.com/openedx/frontend-platform/blob/master/src/config.js: 404' + - 'https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml/badge.svg: + 504' + - 'https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml: + 504' + - 'https://github.com/openedx/frontend-platform/blob/master/src/config.js: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-framework: 404' getting-help: true @@ -124,8 +129,6 @@ readme: - https://img.shields.io/github/license/openedx/frontend-plugin-framework.svg - https://github.com/openedx/frontend-plugin-framework/blob/master/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - - https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml/badge.svg - - https://github.com/openedx/frontend-plugin-framework/actions/workflows/ci.yml - https://codecov.io/github/openedx/frontend-plugin-framework/coverage.svg?branch=master - https://codecov.io/github/openedx/frontend-plugin-framework?branch=master - https://github.com/openedx/frontend-platform/blob/master/docs/decisions/0007-javascript-file-configuration.rst diff --git a/individual_repo_data/openedx/frontend-plugin-notifications_repo_health.yaml b/individual_repo_data/openedx/frontend-plugin-notifications_repo_health.yaml index 51ca4390..530d2e41 100644 --- a/individual_repo_data/openedx/frontend-plugin-notifications_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-plugin-notifications_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -72,17 +72,13 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 20 - build_details: '{"total_duration": "1999 minutes 51 seconds", "checks": [{"name": - "Release", "duration": "1 minutes 48 seconds"}, {"name": "test", "duration": - "1 minutes 34 seconds"}, {"name": "update-browserslist / update-dep", "duration": - "1 minutes 1 seconds"}, {"name": "version-check / version-check", "duration": - "0 minutes 3 seconds"}]}' + build_details: '{"total_duration": "", "checks": []}' code_of_conduct: Other created_at: 2025-01-31 19:50:32 default_branch: main description: A collection of components meant to integrate Notifications into the platform UI. They are presently used in the HeaderNotificationsSlot. - disk_usage_kb: 1310 + disk_usage_kb: 1570 fork_count: 6 has_issues: true has_wiki: false @@ -91,7 +87,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:26:22 + last_push: 2026-06-08 00:48:32 license: GNU AGPLv3 pulls_count: 2 github_actions: true @@ -118,15 +114,16 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/edx/frontend-plugin-notifications/blob/main/LICENSE: 504' + - 'https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml: + 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-plugin-notifications: 404' getting-help: false good_links: - https://img.shields.io/badge/license-AGPL-informational - - https://github.com/edx/frontend-plugin-notifications/blob/main/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml/badge.svg - - https://github.com/edx/frontend-plugin-notifications/actions/workflows/ci.yml - https://codecov.io/github/edx/frontend-plugin-notifications/coverage.svg?branch=main - https://codecov.io/github/edx/frontend-plugin-notifications?branch=main - https://github.com/openedx/frontend-component-header/tree/master/src/plugin-slots/HeaderNotificationsSlot diff --git a/individual_repo_data/openedx/frontend-template-application_repo_health.yaml b/individual_repo_data/openedx/frontend-template-application_repo_health.yaml index d161bcb7..e7519031 100644 --- a/individual_repo_data/openedx/frontend-template-application_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-template-application_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -74,10 +74,11 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 48 - build_details: '{"total_duration": "16515 minutes 33 seconds", "checks": [{"name": + branch_count: 47 + build_details: '{"total_duration": "26598 minutes 24 seconds", "checks": [{"name": "test", "duration": "1 minutes 52 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 11 seconds"}, {"name": "update-browserslist + / update-dep", "duration": "1 minutes 7 seconds"}, {"name": "update-browserslist / update-dep", "duration": "1 minutes 6 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes 5 seconds"}]}' code_of_conduct: Other @@ -94,9 +95,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:26:46 + last_push: 2026-06-08 00:29:36 license: GNU AGPLv3 - pulls_count: 23 + pulls_count: 22 github_actions: true language_bytes: css: 0 @@ -121,6 +122,7 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://openedx.slack.com/archives/C04BM6YC7A6: 429' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/frontend-template-application: 404' - 'https://github.com/openedx/frontend-template-application/blob/main/LICENSE: @@ -139,7 +141,6 @@ readme: - https://github.com/openedx/frontend-template-application/issues - https://openedx.org/slack - https://openedx.slack.com/ - - https://openedx.slack.com/archives/C04BM6YC7A6 - https://openedx.org/getting-help - https://openedx.org/r/how-to-contribute - https://openedx.org/code-of-conduct/ @@ -160,7 +161,7 @@ renovate: configured: true last_pr: '2026-04-06' oldest_open_pr_date: '2025-10-20' - total_open_prs: 7 + total_open_prs: 6 requires: boto: false django: false diff --git a/individual_repo_data/openedx/frontend-template-site_repo_health.yaml b/individual_repo_data/openedx/frontend-template-site_repo_health.yaml index 9da47344..ab9a9bef 100644 --- a/individual_repo_data/openedx/frontend-template-site_repo_health.yaml +++ b/individual_repo_data/openedx/frontend-template-site_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/help-tokens_repo_health.yaml b/individual_repo_data/openedx/help-tokens_repo_health.yaml index 2882533c..0bc749f8 100644 --- a/individual_repo_data/openedx/help-tokens_repo_health.yaml +++ b/individual_repo_data/openedx/help-tokens_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,46 +22,46 @@ dependencies: list: '' pypi: count: 5 - list: '["asgiref==3.8.1", "sqlparse==0.4.4", "backports-zoneinfo==0.2.1 ; - python_version < \"3.9\"", "typing-extensions==4.10.0", "django==4.2.11"]' + list: '["django==4.2.11", "asgiref==3.8.1", "sqlparse==0.4.4", "backports-zoneinfo==0.2.1 + ; python_version < \"3.9\"", "typing-extensions==4.10.0"]' pypi_all: count: 92 - list: '["snowballstemmer==3.1.0", "dill==0.4.1", "lxml[html-clean]==6.1.1", - "pylint-celery==0.3", "markupsafe==3.0.3", "jinja2==3.1.6", "backports-zoneinfo==0.2.1 - ; python_version < \"3.9\"", "pylint-plugin-utils==0.9.0", "secretstorage==3.5.0", - "pylint==4.0.5", "six==1.17.0", "chardet==7.4.3", "platformdirs==4.9.6", - "code-annotations==3.0.0", "astroid==4.0.4", "distlib==0.4.0", "jaraco-context==6.1.2", - "pyproject-hooks==1.2.0", "more-itertools==11.1.0", "pluggy==1.6.0", "requests-toolbelt==1.0.0", - "pytest-django==4.12.0", "pygments==2.20.0", "docutils==0.22.4", "filelock==3.29.0", - "keyring==25.7.0", "markdown-it-py==4.2.0", "asgiref==3.8.1", "cffi==2.0.0", - "polib==1.2.0", "twine==6.2.0", "stevedore==5.8.0", "click==8.4.1", "requests==2.34.2", - "wheel==0.47.0", "sqlparse==0.4.4", "pip-tools==7.5.3", "django==4.2.11", - "certifi==2026.5.20", "jaraco-functools==4.5.0", "pip==26.1.1", "readme-renderer==44.0", - "rich==15.0.0", "pytest==9.0.3", "packaging==26.2", "pyproject-api==1.10.0", - "pytest-cov==7.1.0", "isort==8.0.1", "nh3==0.3.5", "jaraco-classes==3.4.0", - "urllib3==2.7.0", "click-log==0.4.0", "mccabe==0.7.0", "lxml-html-clean==0.4.5", - "charset-normalizer==3.4.7", "pytest-catchlog==1.2.2", "coverage==7.14.1", - "sqlparse==0.5.5", "diff-cover==10.2.1", "python-discovery==1.3.1", "setuptools==82.0.1", - "pycparser==3.0", "pylint-django==2.7.0", "codecov==2.1.13", "edx-i18n-tools==2.0.0", - "virtualenv==21.3.3", "tox==4.54.0", "text-unidecode==1.3", "tomlkit==0.15.0", - "tomli-w==1.2.0", "pyyaml==6.0.3", "rfc3986==2.0.0", "idna==3.16", "django==5.2.14", - "id==1.6.1", "typing-extensions==4.10.0", "path==16.16.0", "iniconfig==2.3.0", - "coverage[toml]==7.14.1", "python-slugify==8.0.4", "edx-lint==6.1.0", - "cachetools==7.1.4", "mdurl==0.1.2", "pydocstyle==6.3.0", "build==1.5.0", - "pycodestyle==2.14.0", "py==1.11.0", "colorama==0.4.6", "jeepney==0.9.0", - "asgiref==3.11.1", "cryptography==48.0.0", "edx-django-release-util==1.5.0"]' + list: '["pylint-plugin-utils==0.9.0", "pytest-cov==7.1.0", "pylint-django==2.7.0", + "pylint-celery==0.3", "id==1.6.1", "pylint==4.0.5", "jaraco-context==6.1.2", + "tomlkit==0.15.0", "astroid==4.0.4", "rfc3986==2.0.0", "certifi==2026.5.20", + "asgiref==3.11.1", "requests-toolbelt==1.0.0", "typing-extensions==4.10.0", + "diff-cover==10.3.0", "lxml[html-clean]==6.1.1", "nh3==0.3.5", "pydocstyle==6.3.0", + "django==4.2.11", "twine==6.2.0", "jinja2==3.1.6", "code-annotations==3.0.0", + "urllib3==2.7.0", "sqlparse==0.5.5", "pluggy==1.6.0", "pygments==2.20.0", + "setuptools==82.0.1", "jaraco-functools==4.5.0", "edx-lint==6.1.0", "path==16.16.0", + "readme-renderer==44.0", "python-slugify==8.0.4", "click==8.4.1", "keyring==25.7.0", + "edx-i18n-tools==2.0.0", "click-log==0.4.0", "pip==26.1.2", "cffi==2.0.0", + "requests==2.34.2", "platformdirs==4.10.0", "secretstorage==3.5.0", "sqlparse==0.4.4", + "tox==4.55.0", "pytest-catchlog==1.2.2", "pyproject-hooks==1.2.0", "pytest==9.0.3", + "colorama==0.4.6", "build==1.5.0", "mccabe==0.7.0", "tomli-w==1.2.0", + "filelock==3.29.0", "pip-tools==7.5.3", "more-itertools==11.1.0", "distlib==0.4.1", + "rich==15.0.0", "charset-normalizer==3.4.7", "snowballstemmer==3.1.1", + "markupsafe==3.0.3", "polib==1.2.0", "jaraco-classes==3.4.0", "coverage[toml]==7.14.1", + "dill==0.4.1", "cachetools==7.1.4", "pyproject-api==1.10.1", "pycodestyle==2.14.0", + "idna==3.18", "django==5.2.14", "isort==8.0.1", "jeepney==0.9.0", "pyyaml==6.0.3", + "docutils==0.23", "pytest-django==4.12.0", "six==1.17.0", "virtualenv==21.4.2", + "py==1.11.0", "chardet==7.4.3", "cryptography==48.0.0", "python-discovery==1.4.0", + "coverage==7.14.1", "lxml-html-clean==0.4.5", "pycparser==3.0", "wheel==0.47.0", + "markdown-it-py==4.2.0", "packaging==26.2", "asgiref==3.8.1", "backports-zoneinfo==0.2.1 + ; python_version < \"3.9\"", "edx-django-release-util==1.5.0", "iniconfig==2.3.0", + "mdurl==0.1.2", "text-unidecode==1.3", "codecov==2.1.13", "stevedore==5.8.0"]' django_packages: django_42: count: 5 - list: '["edx-i18n-tools", "pytest-django", "code-annotations", "edx-django-release-util", - "pylint-django"]' + list: '["pylint-django", "edx-django-release-util", "pytest-django", "code-annotations", + "edx-i18n-tools"]' total: count: 5 - list: '["edx-i18n-tools", "pytest-django", "code-annotations", "edx-django-release-util", - "pylint-django"]' + list: '["pylint-django", "edx-django-release-util", "pytest-django", "code-annotations", + "edx-i18n-tools"]' upgraded: count: 3 - list: '["edx-i18n-tools", "code-annotations", "edx-django-release-util"]' + list: '["edx-django-release-util", "code-annotations", "edx-i18n-tools"]' docs: build_badge: false python_version: null @@ -89,17 +89,18 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 61 - build_details: '{"total_duration": "0 minutes 41 seconds", "checks": [{"name": - "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 40 seconds"}, + build_details: '{"total_duration": "0 minutes 37 seconds", "checks": [{"name": + "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 37 seconds"}, + {"name": "update-pip-graph", "duration": "0 minutes 35 seconds"}, {"name": + "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 27 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 27 - seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 - minutes 26 seconds"}, {"name": "tests (ubuntu-latest, 3.12, check_keywords)", - "duration": "0 minutes 22 seconds"}]}' + seconds"}, {"name": "tests (ubuntu-latest, 3.12, check_keywords)", "duration": + "0 minutes 25 seconds"}]}' code_of_conduct: Other created_at: 2017-04-26 19:09:45 default_branch: master description: A Django app for resolving help tokens to full URLs. - disk_usage_kb: 340 + disk_usage_kb: 344 fork_count: 6 has_issues: true has_wiki: false @@ -108,7 +109,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:26:30 + last_push: 2026-06-03 21:47:00 license: GNU AGPLv3 pulls_count: 6 github_actions: true @@ -134,7 +135,8 @@ org_name: openedx ownership: {} pinned_python_dependencies: 2 readme: - bad_links: [] + bad_links: + - 'https://open.edx.org/getting-help: 403' getting-help: true good_links: - https://docs.openedx.org/en/latest/learners @@ -142,7 +144,6 @@ readme: - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://github.com/openedx/help-tokens/blob/master/.github/PULL_REQUEST_TEMPLATE.md - https://github.com/openedx/help-tokens/blob/master/.github/ISSUE_TEMPLATE.md - - https://open.edx.org/getting-help - https://img.shields.io/pypi/v/help-tokens.svg - https://pypi.python.org/pypi/help-tokens/ - https://github.com/openedx/help-tokens/workflows/Python%20CI/badge.svg?branch=master diff --git a/individual_repo_data/openedx/i18n-tools_repo_health.yaml b/individual_repo_data/openedx/i18n-tools_repo_health.yaml index 53d58b7d..142c8889 100644 --- a/individual_repo_data/openedx/i18n-tools_repo_health.yaml +++ b/individual_repo_data/openedx/i18n-tools_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,32 +22,31 @@ dependencies: list: '' pypi: count: 8 - list: '["pyyaml==6.0.3", "sqlparse==0.5.5", "path==16.16.0", "asgiref==3.11.1", - "lxml[html-clean]==6.0.2", "polib==1.2.0", "django==5.2.12", "lxml-html-clean==0.4.4"]' + list: '["polib==1.2.0", "lxml-html-clean==0.4.4", "lxml[html-clean]==6.0.2", + "pyyaml==6.0.3", "sqlparse==0.5.5", "asgiref==3.11.1", "django==5.2.12", + "path==16.16.0"]' pypi_all: count: 54 - list: '["iniconfig==2.3.0", "code-annotations==2.3.2", "markupsafe==3.0.3", - "tomli-w==1.2.0", "virtualenv==21.1.0", "jinja2==3.1.6", "build==1.4.0", - "packaging==26.0", "click-log==0.4.0", "mock==5.2.0", "distlib==0.4.0", - "pygments==2.19.2", "cachetools==7.0.3", "click==8.3.1", "platformdirs==4.9.4", - "text-unidecode==1.3", "coverage[toml]==7.13.4", "lxml-html-clean==0.4.4", - "pip-tools==7.5.3", "python-slugify==8.0.4", "pylint-plugin-utils==0.9.0", - "pytest==9.0.2", "path==16.16.0", "pytz==2026.1.post1", "pyproject-hooks==1.2.0", - "lxml[html-clean]==6.0.2", "pyproject-api==1.10.0", "filelock==3.25.0", - "pip==26.0.1", "pluggy==1.6.0", "polib==1.2.0", "colorama==0.4.6", "django==5.2.12", - "pylint==4.0.5", "astroid==4.0.4", "pylint-django==2.7.0", "sqlparse==0.5.5", - "tomlkit==0.14.0", "setuptools==82.0.0", "isort==8.0.1", "six==1.17.0", - "python-discovery==1.1.1", "edx-lint==5.6.0", "mccabe==0.7.0", "pyyaml==6.0.3", - "pylint-celery==0.3", "asgiref==3.11.1", "pycodestyle==2.14.0", "wheel==0.46.3", - "ddt==1.7.2", "dill==0.4.1", "pytest-cov==7.0.0", "stevedore==5.7.0", - "tox==4.49.0"]' + list: '["lxml-html-clean==0.4.4", "six==1.17.0", "pyyaml==6.0.3", "distlib==0.4.0", + "cachetools==7.0.3", "colorama==0.4.6", "dill==0.4.1", "wheel==0.46.3", + "astroid==4.0.4", "ddt==1.7.2", "packaging==26.0", "path==16.16.0", "pylint==4.0.5", + "mock==5.2.0", "stevedore==5.7.0", "tomlkit==0.14.0", "coverage[toml]==7.13.4", + "polib==1.2.0", "pylint-plugin-utils==0.9.0", "pytest-cov==7.0.0", "pytz==2026.1.post1", + "sqlparse==0.5.5", "jinja2==3.1.6", "tox==4.49.0", "pluggy==1.6.0", "filelock==3.25.0", + "pip-tools==7.5.3", "python-discovery==1.1.1", "build==1.4.0", "iniconfig==2.3.0", + "mccabe==0.7.0", "pyproject-api==1.10.0", "platformdirs==4.9.4", "python-slugify==8.0.4", + "pyproject-hooks==1.2.0", "markupsafe==3.0.3", "django==5.2.12", "pytest==9.0.2", + "pylint-django==2.7.0", "edx-lint==5.6.0", "isort==8.0.1", "lxml[html-clean]==6.0.2", + "pycodestyle==2.14.0", "virtualenv==21.1.0", "pip==26.0.1", "code-annotations==2.3.2", + "click==8.3.1", "pylint-celery==0.3", "text-unidecode==1.3", "asgiref==3.11.1", + "click-log==0.4.0", "tomli-w==1.2.0", "pygments==2.19.2", "setuptools==82.0.0"]' django_packages: django_42: count: 2 - list: '["pylint-django", "code-annotations"]' + list: '["code-annotations", "pylint-django"]' total: count: 2 - list: '["pylint-django", "code-annotations"]' + list: '["code-annotations", "pylint-django"]' upgraded: count: 1 list: '["code-annotations"]' @@ -107,7 +106,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:59:27 + last_push: 2026-06-08 00:59:55 license: Apache License 2.0 pulls_count: 13 github_actions: true @@ -134,7 +133,7 @@ ownership: {} pinned_python_dependencies: 3 readme: bad_links: - - 'https://travis-ci.com/edx/i18n-tools: 404' + - 'https://travis-ci.com/edx/i18n-tools: 415' getting-help: false good_links: - https://www.transifex.com/ diff --git a/individual_repo_data/openedx/license-manager_repo_health.yaml b/individual_repo_data/openedx/license-manager_repo_health.yaml index c6316ca6..b2b3a274 100644 --- a/individual_repo_data/openedx/license-manager_repo_health.yaml +++ b/individual_repo_data/openedx/license-manager_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,113 +22,111 @@ dependencies: list: '' pypi: count: 106 - list: '["zope-event==6.2", "jsonschema==4.26.0", "typing-extensions==4.15.0", - "asgiref==3.11.1", "amqp==5.3.1", "requests-oauthlib==2.0.0", "django-filter==25.2", - "djangorestframework==3.17.1", "djangorestframework-csv==3.0.2", "celery==5.6.3", - "pymongo==4.17.0", "edx-celeryutils==2.0.0", "pyyaml==6.0.3", "greenlet==3.5.0", - "edx-drf-extensions==10.6.0", "django-log-request-id==2.1.2", "django-crum==0.7.9", - "gevent==26.4.0", "jsonfield==3.2.0", "ply==3.11", "click-didyoumean==0.3.1", - "oauthlib==3.3.1", "webencodings==0.5.1", "tzlocal==5.3.1", "vine==5.1.0", - "social-auth-app-django==5.9.0", "prompt-toolkit==3.0.52", "tzdata==2026.2", - "django-durationwidget==1.0.5", "wcwidth==0.7.0", "billiard==4.2.4", "jsonschema-specifications==2025.9.1", - "code-annotations==3.0.0", "pytz==2026.2", "python3-openid==3.2.0", "packaging==26.2", - "attrs==26.1.0", "pynacl==1.6.2", "botocore==1.43.9", "pyjwt[crypto]==2.12.1", - "uritemplate==4.2.0", "djangoql==0.19.1", "referencing==0.37.0", "mysqlclient==2.2.8", - "kombu==5.6.2", "psutil==7.2.2", "simplejson==4.1.1", "charset-normalizer==3.4.7", - "pycparser==3.0", "edx-rest-api-client==7.0.0", "cryptography==48.0.0", - "pymemcache==4.0.0", "click-plugins==1.1.1.2", "certifi==2026.4.22", "edx-braze-client==0.2.5", - "idna==3.15", "django-model-utils==5.0.0", "s3transfer==0.17.0", "rules==3.5", - "rpds-py==0.30.0", "click-repl==0.3.0", "python-memcached==1.62", "django-celery-results==2.6.0", - "inflection==0.5.1", "markupsafe==3.0.3", "click==8.4.0", "bleach[css]==6.3.0", - "six==1.17.0", "edx-django-utils==8.0.1", "jmespath==1.1.0", "backoff==1.10.0", - "requests==2.34.2", "django-cors-headers==4.9.0", "python-dateutil==2.9.0.post0", - "django==5.2.14", "sqlparse==0.5.5", "text-unidecode==1.3", "semantic-version==2.10.0", - "gunicorn==26.0.0", "edx-toggles==6.0.0", "django-simple-history==3.11.0", - "drf-spectacular==0.29.0", "cffi==2.0.0", "edx-opaque-keys==4.0.0", "monotonic==1.6", - "django-waffle==5.0.0", "redis==7.4.0", "analytics-python==1.4.post1", - "zope-interface==8.4", "stevedore==5.7.0", "urllib3==2.7.0", "tinycss2==1.4.0", - "django-autocomplete-light==4.0.0", "defusedxml==0.7.1", "django-ses==4.7.2", - "drf-nested-routers==0.95.0", "django-extensions==4.1", "boto3==1.43.9", - "dnspython==2.8.0", "edx-auth-backends==5.0.0", "social-auth-core==4.9.1", - "drf-jwt==1.19.2", "jinja2==3.1.6", "zipp==3.23.1", "edx-rbac==3.0.0", - "python-slugify==8.0.4"]' + list: '["django==5.2.14", "rpds-py==2026.5.1", "jsonschema==4.26.0", "edx-toggles==6.0.0", + "dnspython==2.8.0", "six==1.17.0", "social-auth-core==4.9.1", "click-repl==0.3.0", + "django-durationwidget==1.0.5", "oauthlib==3.3.1", "djangorestframework==3.17.1", + "pynacl==1.6.2", "semantic-version==2.10.0", "celery==5.6.3", "cryptography==48.0.0", + "edx-braze-client==0.2.5", "referencing==0.37.0", "gevent==26.5.0", "django-celery-results==2.6.0", + "python-dateutil==2.9.0.post0", "requests==2.34.2", "ply==3.11", "code-annotations==3.0.0", + "edx-django-utils==8.0.1", "django-filter==25.2", "drf-jwt==1.19.2", "django-waffle==5.0.0", + "analytics-python==1.4.post1", "greenlet==3.5.1", "tinycss2==1.4.0", "edx-drf-extensions==10.6.0", + "click-didyoumean==0.3.1", "jinja2==3.1.6", "tzlocal==5.3.1", "billiard==4.2.4", + "uritemplate==4.2.0", "pyjwt[crypto]==2.13.0", "certifi==2026.5.20", "vine==5.1.0", + "django-log-request-id==2.1.2", "zipp==4.1.0", "social-auth-app-django==5.9.0", + "amqp==5.3.1", "python3-openid==3.2.0", "pymemcache==4.0.0", "cffi==2.0.0", + "edx-celeryutils==2.0.0", "django-autocomplete-light==4.0.1", "zope-event==6.2", + "packaging==26.2", "click==8.4.1", "pycparser==3.0", "pytz==2026.2", "sqlparse==0.5.5", + "backoff==1.10.0", "redis==8.0.0", "kombu==5.6.2", "asgiref==3.11.1", + "inflection==0.5.1", "python-slugify==8.0.4", "typing-extensions==4.15.0", + "botocore==1.43.18", "drf-spectacular==0.29.0", "charset-normalizer==3.4.7", + "mysqlclient==2.2.8", "bleach[css]==6.3.0", "boto3==1.43.18", "djangorestframework-csv==3.0.2", + "rules==3.5", "edx-opaque-keys==4.0.0", "attrs==26.1.0", "idna==3.17", + "pyyaml==6.0.3", "requests-oauthlib==2.0.0", "django-extensions==4.1", + "markupsafe==3.0.3", "stevedore==5.8.0", "jsonfield==3.2.0", "psutil==7.2.2", + "jmespath==1.1.0", "django-simple-history==3.11.0", "edx-auth-backends==5.0.0", + "edx-rbac==3.0.0", "text-unidecode==1.3", "simplejson==4.1.1", "defusedxml==0.7.1", + "gunicorn==26.0.0", "urllib3==2.7.0", "django-cors-headers==4.9.0", "click-plugins==1.1.1.2", + "zope-interface==8.5", "s3transfer==0.18.0", "wcwidth==0.7.0", "django-crum==0.7.9", + "prompt-toolkit==3.0.52", "edx-rest-api-client==7.0.0", "tzdata==2026.2", + "webencodings==0.5.1", "monotonic==1.6", "djangoql==0.19.1", "jsonschema-specifications==2025.9.1", + "django-model-utils==5.0.0", "drf-nested-routers==0.95.0", "pymongo==4.17.0", + "python-memcached==1.62", "django-ses==4.7.2"]' pypi_all: count: 173 - list: '["zope-event==6.2", "jsonschema==4.26.0", "sphinxcontrib-qthelp==2.0.0", - "typing-extensions==4.15.0", "snowballstemmer==3.0.1", "wheel==0.47.0", - "nh3==0.3.5", "typeguard==4.5.2", "asgiref==3.11.1", "pathlib2==2.3.7.post1", - "django-dynamic-fixture==4.0.1", "sphinxcontrib-applehelp==2.0.0", "amqp==5.3.1", - "requests-oauthlib==2.0.0", "lxml[html-clean]==6.1.0", "django-filter==25.2", - "djangorestframework==3.17.1", "djangorestframework-csv==3.0.2", "celery==5.6.3", - "pymongo==4.17.0", "edx-celeryutils==2.0.0", "babel==2.18.0", "sphinx==9.1.0", - "accessible-pygments==0.0.5", "pyyaml==6.0.3", "greenlet==3.5.0", "edx-drf-extensions==10.6.0", - "django-log-request-id==2.1.2", "sphinxcontrib-jsmath==1.0.1", "django-crum==0.7.9", - "gevent==26.4.0", "factory-boy==3.3.3", "jsonfield==3.2.0", "ply==3.11", - "click-didyoumean==0.3.1", "sphinxcontrib-devhelp==2.0.0", "oauthlib==3.3.1", - "webencodings==0.5.1", "tzlocal==5.3.1", "restructuredtext-lint==2.0.2", - "vine==5.1.0", "social-auth-app-django==5.9.0", "prompt-toolkit==3.0.52", - "tzdata==2026.2", "inflect==7.5.0", "django-durationwidget==1.0.5", "pluggy==1.6.0", - "wcwidth==0.7.0", "billiard==4.2.4", "beautifulsoup4==4.14.3", "pygments==2.20.0", - "jsonschema-specifications==2025.9.1", "soupsieve==2.8.3", "code-annotations==3.0.0", - "pytz==2026.2", "python3-openid==3.2.0", "packaging==26.2", "attrs==26.1.0", - "pytest==9.0.3", "click-log==0.4.0", "pynacl==1.6.2", "botocore==1.43.9", - "tomlkit==0.15.0", "sphinxcontrib-serializinghtml==2.0.0", "pyjwt[crypto]==2.12.1", - "uritemplate==4.2.0", "djangoql==0.19.1", "referencing==0.37.0", "mysqlclient==2.2.8", - "kombu==5.6.2", "imagesize==2.0.0", "pip-tools==7.5.3", "build==1.5.0", - "psutil==7.2.2", "mccabe==0.7.0", "simplejson==4.1.1", "charset-normalizer==3.4.7", - "pycparser==3.0", "pycodestyle==2.14.0", "edx-rest-api-client==7.0.0", - "cryptography==48.0.0", "readme-renderer==44.0", "pip==26.1.1", "pymemcache==4.0.0", - "click-plugins==1.1.1.2", "certifi==2026.4.22", "edx-braze-client==0.2.5", - "docutils==0.21.2", "idna==3.15", "edx-lint==6.1.0", "pytest-django==4.12.0", - "isort==8.0.1", "django-model-utils==5.0.0", "astroid==4.0.4", "jinja2-pluralize==0.3.0", - "s3transfer==0.17.0", "rules==3.5", "rpds-py==0.30.0", "pylint==4.0.5", - "freezegun==1.5.5", "pyproject-hooks==1.2.0", "alabaster==1.0.0", "click-repl==0.3.0", - "sphinxcontrib-htmlhelp==2.1.0", "python-memcached==1.62", "more-itertools==11.0.2", - "lxml-html-clean==0.4.4", "path==16.14.0", "inflection==0.5.1", "django-celery-results==2.6.0", - "markupsafe==3.0.3", "click==8.4.0", "bleach[css]==6.3.0", "six==1.17.0", - "edx-django-utils==8.0.1", "pylint-plugin-utils==0.9.0", "jmespath==1.1.0", - "backoff==1.10.0", "requests==2.34.2", "pylint-django==2.7.0", "django-cors-headers==4.9.0", - "edx-i18n-tools==2.0.0", "polib==1.2.0", "python-dateutil==2.9.0.post0", - "django-debug-toolbar==6.3.0", "django==5.2.14", "diff-cover==4.0.0", - "ddt==1.7.2", "sqlparse==0.5.5", "text-unidecode==1.3", "doc8==2.0.0", - "semantic-version==2.10.0", "gunicorn==26.0.0", "pydocstyle==6.3.0", "edx-toggles==6.0.0", - "coverage[toml]==7.14.0", "django-simple-history==3.11.0", "drf-spectacular==0.29.0", - "cffi==2.0.0", "edx-opaque-keys==4.0.0", "monotonic==1.6", "django-waffle==5.0.0", - "redis==7.4.0", "analytics-python==1.4.post1", "zope-interface==8.4", - "stevedore==5.7.0", "urllib3==2.7.0", "roman-numerals==4.1.0", "pywatchman==3.0.0", - "sphinx-book-theme==1.2.0", "tinycss2==1.4.0", "pytest-cov==7.1.0", "django-autocomplete-light==4.0.0", - "defusedxml==0.7.1", "iniconfig==2.3.0", "platformdirs==4.9.6", "django-ses==4.7.2", - "setuptools==82.0.1", "drf-nested-routers==0.95.0", "faker==40.18.0", - "dill==0.4.1", "pydata-sphinx-theme==0.16.1", "django-extensions==4.1", - "boto3==1.43.9", "pylint-celery==0.3", "dnspython==2.8.0", "edx-auth-backends==5.0.0", - "social-auth-core==4.9.1", "drf-jwt==1.19.2", "jinja2==3.1.6", "zipp==3.23.1", - "edx-rbac==3.0.0", "python-slugify==8.0.4"]' + list: '["django==5.2.14", "rpds-py==2026.5.1", "typeguard==4.5.2", "pylint-celery==0.3", + "jsonschema==4.26.0", "edx-toggles==6.0.0", "dnspython==2.8.0", "six==1.17.0", + "social-auth-core==4.9.1", "click-repl==0.3.0", "django-durationwidget==1.0.5", + "pathlib2==2.3.7.post1", "imagesize==2.0.0", "edx-lint==6.1.0", "mccabe==0.7.0", + "oauthlib==3.3.1", "restructuredtext-lint==2.0.2", "djangorestframework==3.17.1", + "pynacl==1.6.2", "semantic-version==2.10.0", "platformdirs==4.10.0", "celery==5.6.3", + "wheel==0.47.0", "cryptography==48.0.0", "edx-braze-client==0.2.5", "alabaster==1.0.0", + "sphinxcontrib-devhelp==2.0.0", "polib==1.2.0", "pytest==9.0.3", "beautifulsoup4==4.14.3", + "lxml[html-clean]==6.1.1", "edx-i18n-tools==2.0.0", "referencing==0.37.0", + "sphinx==9.1.0", "pydata-sphinx-theme==0.16.1", "sphinxcontrib-applehelp==2.0.0", + "gevent==26.5.0", "roman-numerals==4.1.0", "django-celery-results==2.6.0", + "python-dateutil==2.9.0.post0", "requests==2.34.2", "ply==3.11", "code-annotations==3.0.0", + "babel==2.18.0", "edx-django-utils==8.0.1", "pylint-django==2.7.0", "django-filter==25.2", + "drf-jwt==1.19.2", "faker==40.19.1", "django-waffle==5.0.0", "pip-tools==7.5.3", + "analytics-python==1.4.post1", "snowballstemmer==3.1.0", "tinycss2==1.4.0", + "greenlet==3.5.1", "edx-drf-extensions==10.6.0", "click-didyoumean==0.3.1", + "jinja2==3.1.6", "tzlocal==5.3.1", "isort==8.0.1", "readme-renderer==44.0", + "soupsieve==2.8.4", "billiard==4.2.4", "uritemplate==4.2.0", "build==1.5.0", + "coverage[toml]==7.14.1", "pyjwt[crypto]==2.13.0", "certifi==2026.5.20", + "vine==5.1.0", "sphinxcontrib-jsmath==1.0.1", "django-log-request-id==2.1.2", + "zipp==4.1.0", "social-auth-app-django==5.9.0", "pywatchman==3.0.0", "amqp==5.3.1", + "python3-openid==3.2.0", "pymemcache==4.0.0", "cffi==2.0.0", "edx-celeryutils==2.0.0", + "pip==26.1.2", "django-autocomplete-light==4.0.1", "zope-event==6.2", + "packaging==26.2", "click==8.4.1", "accessible-pygments==0.0.5", "pycparser==3.0", + "pytz==2026.2", "sqlparse==0.5.5", "backoff==1.10.0", "redis==8.0.0", + "kombu==5.6.2", "pygments==2.20.0", "diff-cover==4.0.0", "asgiref==3.11.1", + "inflection==0.5.1", "python-slugify==8.0.4", "typing-extensions==4.15.0", + "botocore==1.43.18", "drf-spectacular==0.29.0", "nh3==0.3.5", "charset-normalizer==3.4.7", + "mysqlclient==2.2.8", "bleach[css]==6.3.0", "boto3==1.43.18", "djangorestframework-csv==3.0.2", + "rules==3.5", "edx-opaque-keys==4.0.0", "pytest-cov==7.1.0", "django-debug-toolbar==6.3.0", + "attrs==26.1.0", "more-itertools==11.1.0", "factory-boy==3.3.3", "tomlkit==0.15.0", + "docutils==0.21.2", "idna==3.17", "pyyaml==6.0.3", "requests-oauthlib==2.0.0", + "django-extensions==4.1", "markupsafe==3.0.3", "stevedore==5.8.0", "sphinxcontrib-qthelp==2.0.0", + "jsonfield==3.2.0", "psutil==7.2.2", "jmespath==1.1.0", "django-simple-history==3.11.0", + "doc8==2.0.0", "edx-auth-backends==5.0.0", "pydocstyle==6.3.0", "edx-rbac==3.0.0", + "astroid==4.0.4", "text-unidecode==1.3", "jinja2-pluralize==0.3.0", "click-log==0.4.0", + "simplejson==4.1.1", "defusedxml==0.7.1", "pylint==4.0.5", "iniconfig==2.3.0", + "pyproject-hooks==1.2.0", "gunicorn==26.0.0", "urllib3==2.7.0", "pylint-plugin-utils==0.9.0", + "django-cors-headers==4.9.0", "setuptools==82.0.1", "click-plugins==1.1.1.2", + "zope-interface==8.5", "s3transfer==0.18.0", "wcwidth==0.7.0", "dill==0.4.1", + "django-crum==0.7.9", "prompt-toolkit==3.0.52", "edx-rest-api-client==7.0.0", + "pluggy==1.6.0", "django-dynamic-fixture==4.0.1", "tzdata==2026.2", "monotonic==1.6", + "webencodings==0.5.1", "sphinxcontrib-htmlhelp==2.1.0", "sphinxcontrib-serializinghtml==2.0.0", + "djangoql==0.19.1", "pycodestyle==2.14.0", "jsonschema-specifications==2025.9.1", + "django-model-utils==5.0.0", "drf-nested-routers==0.95.0", "path==16.14.0", + "ddt==1.7.2", "pymongo==4.17.0", "freezegun==1.5.5", "python-memcached==1.62", + "lxml-html-clean==0.4.5", "sphinx-book-theme==1.2.0", "pytest-django==4.12.0", + "django-ses==4.7.2", "inflect==7.5.0"]' django_packages: django_42: count: 22 - list: '["edx-auth-backends", "edx-rbac", "edx-i18n-tools", "django-filter", - "code-annotations", "pylint-django", "factory-boy", "edx-opaque-keys", - "edx-rest-api-client", "django-celery-results", "edx-toggles", "django-extensions", - "edx-drf-extensions", "pytest-django", "django-waffle", "django-cors-headers", - "edx-celeryutils", "djangorestframework", "social-auth-app-django", "edx-django-utils", - "django-debug-toolbar", "django-autocomplete-light"]' + list: '["edx-i18n-tools", "djangorestframework", "code-annotations", "edx-rbac", + "pylint-django", "django-autocomplete-light", "edx-drf-extensions", "django-debug-toolbar", + "social-auth-app-django", "django-extensions", "edx-django-utils", "edx-auth-backends", + "django-celery-results", "pytest-django", "django-cors-headers", "factory-boy", + "django-waffle", "edx-celeryutils", "edx-opaque-keys", "edx-rest-api-client", + "django-filter", "edx-toggles"]' total: count: 32 - list: '["edx-auth-backends", "edx-rbac", "jsonfield", "edx-i18n-tools", "django-filter", - "djangorestframework-csv", "code-annotations", "django-ses", "pylint-django", - "factory-boy", "edx-opaque-keys", "edx-rest-api-client", "django-celery-results", - "edx-toggles", "drf-nested-routers", "django-simple-history", "django-extensions", - "drf-jwt", "edx-drf-extensions", "pytest-django", "django-model-utils", - "django-crum", "django-waffle", "django-cors-headers", "edx-celeryutils", - "djangorestframework", "social-auth-app-django", "edx-django-utils", "rules", - "django-dynamic-fixture", "django-debug-toolbar", "django-autocomplete-light"]' + list: '["edx-i18n-tools", "django-model-utils", "djangorestframework", "code-annotations", + "edx-rbac", "django-crum", "pylint-django", "django-simple-history", "django-autocomplete-light", + "jsonfield", "django-ses", "edx-drf-extensions", "django-debug-toolbar", + "social-auth-app-django", "django-extensions", "edx-django-utils", "edx-auth-backends", + "django-celery-results", "pytest-django", "django-cors-headers", "factory-boy", + "django-waffle", "edx-celeryutils", "djangorestframework-csv", "rules", + "drf-nested-routers", "edx-opaque-keys", "edx-rest-api-client", "drf-jwt", + "django-filter", "edx-toggles", "django-dynamic-fixture"]' upgraded: count: 18 - list: '["edx-auth-backends", "edx-rbac", "django-waffle", "edx-i18n-tools", - "django-cors-headers", "edx-celeryutils", "django-extensions", "django-filter", - "code-annotations", "django-autocomplete-light", "social-auth-app-django", - "edx-opaque-keys", "edx-drf-extensions", "edx-django-utils", "edx-rest-api-client", - "django-debug-toolbar", "django-celery-results", "edx-toggles"]' + list: '["django-celery-results", "edx-i18n-tools", "django-cors-headers", + "django-extensions", "edx-drf-extensions", "edx-toggles", "edx-celeryutils", + "django-debug-toolbar", "django-waffle", "code-annotations", "edx-opaque-keys", + "edx-rest-api-client", "django-filter", "social-auth-app-django", "edx-django-utils", + "edx-rbac", "edx-auth-backends", "django-autocomplete-light"]' docs: build_badge: true python_version: null @@ -156,27 +154,21 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 62 - build_details: '{"total_duration": "2148 minutes 34 seconds", "checks": [{"name": - "tests (3.12, 5.2)", "duration": "2 minutes 1 seconds"}, {"name": "tests (3.12, - pinned)", "duration": "1 minutes 59 seconds"}, {"name": "call-upgrade-python-requirements-workflow + build_details: '{"total_duration": "9783 minutes 24 seconds", "checks": [{"name": + "tests (3.12, pinned)", "duration": "2 minutes 27 seconds"}, {"name": "tests + (3.12, 5.2)", "duration": "2 minutes 19 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 37 seconds"}, {"name": "quality - (3.12)", "duration": "1 minutes 10 seconds"}, {"name": "check migration for - MySql8 (ubuntu-latest, 3.12)", "duration": "0 minutes 53 seconds"}, {"name": - "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 - seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 - minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "-1 minutes 51 seconds"}]}' + (3.12)", "duration": "1 minutes 13 seconds"}, {"name": "check migration for + MySql8 (ubuntu-latest, 3.12)", "duration": "0 minutes 56 seconds"}, {"name": + "update-pip-graph", "duration": "0 minutes 35 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2020-04-07 15:41:12 default_branch: master description: Django backend for managing licenses and subscriptions - disk_usage_kb: 2715 + disk_usage_kb: 2735 fork_count: 41 has_issues: true has_wiki: false @@ -185,7 +177,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:15:25 + last_push: 2026-06-08 03:15:30 license: GNU AGPLv3 pulls_count: 4 github_actions: true @@ -214,6 +206,7 @@ readme: bad_links: - 'http://license-manager.readthedocs.io/en/latest/: 404' - 'https://license-manager.readthedocs.io/en/latest/: 404' + - 'https://github.com/openedx/license-manager/tree/master/docs: 504' - 'https://github.com/openedx/license-manager/blob/master/LICENSE: 404' getting-help: false good_links: @@ -222,7 +215,6 @@ readme: - https://github.com/openedx/devstack - https://github.com/openedx/license-manager/blob/master/docs/getting_started.rst - https://readthedocs.org/projects/license-manager/badge/?version=latest - - https://github.com/openedx/license-manager/tree/master/docs - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://openedx.slack.com/messages/general/ - https://groups.google.com/forum/ diff --git a/individual_repo_data/openedx/mockprock_repo_health.yaml b/individual_repo_data/openedx/mockprock_repo_health.yaml index f55316d7..1290103c 100644 --- a/individual_repo_data/openedx/mockprock_repo_health.yaml +++ b/individual_repo_data/openedx/mockprock_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -25,25 +25,25 @@ dependencies: list: '[]' pypi_all: count: 45 - list: '["idna==3.10", "edx-lint==5.6.0", "pylint-celery==0.3", "platformdirs==4.3.7", - "jinja2==2.11.3", "requests==2.32.3", "pylint-django==2.6.1", "wheel==0.45.1", - "stevedore==5.4.1", "isort==6.0.1", "pytest-cov==6.1.1", "click==7.1.2", - "build==1.2.2.post1", "pip==24.2", "click-log==0.4.0", "pytest==8.3.5", - "pyjwt==2.10.1", "jinja2==3.1.6", "pyproject-hooks==1.2.0", "python-slugify==8.0.4", - "itsdangerous==1.1.0", "werkzeug==1.0.1", "iniconfig==2.1.0", "pylint-plugin-utils==0.8.2", - "pbr==6.1.1", "pyyaml==6.0.2", "text-unidecode==1.3", "astroid==3.3.9", - "flask==1.1.4", "code-annotations==2.3.0", "certifi==2025.1.31", "mccabe==0.7.0", - "coverage[toml]==7.8.0", "pylint==3.3.6", "six==1.17.0", "packaging==25.0", - "pluggy==1.5.0", "markupsafe==3.0.2", "setuptools==79.0.0", "urllib3==2.4.0", - "dill==0.4.0", "tomlkit==0.13.2", "pip-tools==7.4.1", "click==8.1.8", - "charset-normalizer==3.4.1"]' + list: '["code-annotations==2.3.0", "pylint-django==2.6.1", "jinja2==2.11.3", + "setuptools==79.0.0", "pyyaml==6.0.2", "requests==2.32.3", "mccabe==0.7.0", + "pip==24.2", "platformdirs==4.3.7", "werkzeug==1.0.1", "click-log==0.4.0", + "pbr==6.1.1", "pylint-plugin-utils==0.8.2", "python-slugify==8.0.4", "flask==1.1.4", + "pluggy==1.5.0", "pytest==8.3.5", "coverage[toml]==7.8.0", "certifi==2025.1.31", + "pylint-celery==0.3", "charset-normalizer==3.4.1", "jinja2==3.1.6", "urllib3==2.4.0", + "idna==3.10", "build==1.2.2.post1", "tomlkit==0.13.2", "pylint==3.3.6", + "packaging==25.0", "stevedore==5.4.1", "dill==0.4.0", "click==7.1.2", + "text-unidecode==1.3", "pip-tools==7.4.1", "pytest-cov==6.1.1", "markupsafe==3.0.2", + "wheel==0.45.1", "astroid==3.3.9", "itsdangerous==1.1.0", "isort==6.0.1", + "pyproject-hooks==1.2.0", "click==8.1.8", "edx-lint==5.6.0", "six==1.17.0", + "iniconfig==2.1.0", "pyjwt==2.10.1"]' django_packages: django_42: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' total: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' upgraded: count: 1 list: '["code-annotations"]' diff --git a/individual_repo_data/openedx/modular-learning_repo_health.yaml b/individual_repo_data/openedx/modular-learning_repo_health.yaml index ae5d1ae7..0fb4b7db 100644 --- a/individual_repo_data/openedx/modular-learning_repo_health.yaml +++ b/individual_repo_data/openedx/modular-learning_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -119,10 +119,10 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/orgs/openedx/projects/36: 504' getting-help: false good_links: - - https://github.com/orgs/openedx/projects/36 - https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575152670/Approach+Memo+Modular+Learning irc-missing: true mailing-list-missing: true diff --git a/individual_repo_data/openedx/olxcleaner_repo_health.yaml b/individual_repo_data/openedx/olxcleaner_repo_health.yaml index 46993ca8..d2c808aa 100644 --- a/individual_repo_data/openedx/olxcleaner_repo_health.yaml +++ b/individual_repo_data/openedx/olxcleaner_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,44 +22,45 @@ dependencies: list: '' pypi: count: 5 - list: '["pylatexenc==2.10", "lxml==5.2.1", "python-dateutil==2.9.0.post0", - "pytz==2024.1", "six==1.16.0"]' + list: '["python-dateutil==2.9.0.post0", "pylatexenc==2.10", "six==1.16.0", + "pytz==2024.1", "lxml==5.2.1"]' pypi_all: count: 101 - list: '["importlib-resources==6.4.0", "pyproject-hooks==1.0.0", "jaraco-classes==3.4.0", - "requests-toolbelt==1.0.0", "sphinxcontrib-applehelp==1.0.4", "nh3==0.2.17", - "jinja2==3.1.3", "docutils==0.19", "packaging==24.0", "sphinx==6.2.1", - "pylatexenc==2.10", "diff-cover==9.0.0", "click-log==0.4.0", "isort==5.13.2", - "markupsafe==2.1.5", "python-dateutil==2.9.0.post0", "doc8==1.1.1", "click==8.1.7", - "filelock==3.13.4", "pycodestyle==2.11.1", "pygments==2.17.2", "cachetools==5.3.3", - "wheel==0.43.0", "six==1.16.0", "tomlkit==0.12.4", "dill==0.3.8", "iniconfig==2.0.0", - "code-annotations==1.8.0", "astroid==3.1.0", "alabaster==0.7.13", "sphinx-book-theme==1.0.1", - "markdown-it-py==3.0.0", "tox==4.14.2", "pydata-sphinx-theme==0.14.4", - "cffi==1.16.0", "restructuredtext-lint==1.4.0", "more-itertools==10.2.0", - "mdurl==0.1.2", "imagesize==1.4.1", "pylint-django==2.5.5", "colorama==0.4.6", - "pylint-celery==0.3", "twine==5.0.0", "python-slugify==8.0.4", "coverage[toml]==7.4.4", - "pluggy==1.4.0", "jeepney==0.8.0", "sphinxcontrib-jsmath==1.0.1", "rich==13.7.1", - "platformdirs==4.2.0", "jaraco-context==5.3.0", "requests==2.31.0", "text-unidecode==1.3", - "backports-tarfile==1.1.0", "chardet==5.2.0", "pylint-plugin-utils==0.8.2", - "pytz==2024.1", "pkginfo==1.10.0", "soupsieve==2.5", "cryptography==42.0.5", - "importlib-metadata==6.11.0", "pip-tools==7.4.1", "idna==3.7", "stevedore==5.2.0", - "mccabe==0.7.0", "urllib3==2.2.1", "pycparser==2.22", "pytest==8.1.1", - "setuptools==69.5.1", "secretstorage==3.3.3", "babel==2.14.0", "pip==24.0", - "jaraco-functools==4.0.1", "pytest-cov==5.0.0", "edx-lint==5.3.6", "distlib==0.3.8", - "virtualenv==20.25.3", "docutils==0.20.1", "keyring==25.1.0", "pyproject-api==1.6.1", - "build==1.2.1", "readme-renderer==43.0", "lxml==5.2.1", "zipp==3.18.1", - "rfc3986==2.0.0", "charset-normalizer==3.3.2", "snowballstemmer==2.2.0", - "tomli==2.0.1", "sphinxcontrib-qthelp==1.0.3", "pydocstyle==6.3.0", "sphinxcontrib-devhelp==1.0.2", - "certifi==2024.2.2", "pylint==3.1.0", "beautifulsoup4==4.12.3", "sphinxcontrib-serializinghtml==1.1.5", - "pyyaml==6.0.1", "typing-extensions==4.11.0", "pbr==6.0.0", "accessible-pygments==0.0.4", - "sphinxcontrib-htmlhelp==2.0.1", "exceptiongroup==1.2.1"]' + list: '["pydata-sphinx-theme==0.14.4", "sphinxcontrib-htmlhelp==2.0.1", "mccabe==0.7.0", + "stevedore==5.2.0", "pytest==8.1.1", "urllib3==2.2.1", "pluggy==1.4.0", + "soupsieve==2.5", "iniconfig==2.0.0", "sphinx==6.2.1", "astroid==3.1.0", + "mdurl==0.1.2", "pygments==2.17.2", "markupsafe==2.1.5", "platformdirs==4.2.0", + "requests-toolbelt==1.0.0", "sphinxcontrib-qthelp==1.0.3", "idna==3.7", + "rfc3986==2.0.0", "python-dateutil==2.9.0.post0", "typing-extensions==4.11.0", + "importlib-resources==6.4.0", "tomli==2.0.1", "accessible-pygments==0.0.4", + "coverage[toml]==7.4.4", "alabaster==0.7.13", "isort==5.13.2", "virtualenv==20.25.3", + "importlib-metadata==6.11.0", "pbr==6.0.0", "pydocstyle==6.3.0", "tomlkit==0.12.4", + "pip==24.0", "sphinxcontrib-jsmath==1.0.1", "wheel==0.43.0", "pylatexenc==2.10", + "markdown-it-py==3.0.0", "six==1.16.0", "more-itertools==10.2.0", "lxml==5.2.1", + "requests==2.31.0", "charset-normalizer==3.3.2", "jinja2==3.1.3", "pyproject-api==1.6.1", + "readme-renderer==43.0", "docutils==0.20.1", "diff-cover==9.0.0", "keyring==25.1.0", + "python-slugify==8.0.4", "sphinxcontrib-serializinghtml==1.1.5", "nh3==0.2.17", + "pylint==3.1.0", "cryptography==42.0.5", "zipp==3.18.1", "pycparser==2.22", + "edx-lint==5.3.6", "pyproject-hooks==1.0.0", "setuptools==69.5.1", "text-unidecode==1.3", + "beautifulsoup4==4.12.3", "filelock==3.13.4", "packaging==24.0", "pycodestyle==2.11.1", + "babel==2.14.0", "colorama==0.4.6", "click-log==0.4.0", "jaraco-context==5.3.0", + "jaraco-classes==3.4.0", "snowballstemmer==2.2.0", "restructuredtext-lint==1.4.0", + "pylint-django==2.5.5", "pip-tools==7.4.1", "sphinxcontrib-devhelp==1.0.2", + "docutils==0.19", "imagesize==1.4.1", "doc8==1.1.1", "jaraco-functools==4.0.1", + "jeepney==0.8.0", "certifi==2024.2.2", "code-annotations==1.8.0", "pytz==2024.1", + "twine==5.0.0", "pkginfo==1.10.0", "pyyaml==6.0.1", "pytest-cov==5.0.0", + "tox==4.14.2", "pylint-plugin-utils==0.8.2", "cachetools==5.3.3", "sphinx-book-theme==1.0.1", + "build==1.2.1", "secretstorage==3.3.3", "sphinxcontrib-applehelp==1.0.4", + "pylint-celery==0.3", "chardet==5.2.0", "cffi==1.16.0", "click==8.1.7", + "dill==0.3.8", "rich==13.7.1", "distlib==0.3.8", "exceptiongroup==1.2.1", + "backports-tarfile==1.1.0"]' django_packages: django_42: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' total: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' upgraded: count: 1 list: '["code-annotations"]' diff --git a/individual_repo_data/openedx/opaque-keys_repo_health.yaml b/individual_repo_data/openedx/opaque-keys_repo_health.yaml index ac59d077..570c9626 100644 --- a/individual_repo_data/openedx/opaque-keys_repo_health.yaml +++ b/individual_repo_data/openedx/opaque-keys_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,41 +22,41 @@ dependencies: list: '' pypi: count: 4 - list: '["typing-extensions==4.15.0", "dnspython==2.8.0", "stevedore==5.8.0", + list: '["stevedore==5.8.0", "dnspython==2.8.0", "typing-extensions==4.15.0", "pymongo==4.17.0"]' pypi_all: count: 85 - list: '["pytest-cov==7.1.0", "sphinx-book-theme==1.2.0", "tomlkit==0.15.0", - "pylint-plugin-utils==0.9.0", "tomli-w==1.2.0", "hypothesis==6.152.9", - "nh3==0.3.5", "sphinxcontrib-jsmath==1.0.1", "distlib==0.4.0", "mccabe==0.7.0", - "mock==5.2.0", "platformdirs==4.9.6", "snowballstemmer==3.1.0", "pytest-django==4.12.0", - "urllib3==2.7.0", "click-log==0.4.0", "sphinxcontrib-devhelp==2.0.0", - "imagesize==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", "packaging==26.2", - "markupsafe==3.0.3", "iniconfig==2.3.0", "pip-tools==7.5.3", "soupsieve==2.8.4", - "sphinxcontrib-applehelp==2.0.0", "coverage==7.14.0", "python-slugify==8.0.4", - "cachetools==7.1.4", "execnet==2.1.2", "pyproject-api==1.10.0", "click==8.4.1", - "wheel==0.47.0", "pytest-xdist==3.8.0", "pip==26.1.1", "charset-normalizer==3.4.7", - "certifi==2026.5.20", "pymongo==4.17.0", "stevedore==5.8.0", "roman-numerals==4.1.0", - "edx-lint==6.1.0", "pathspec==1.1.1", "mypy-extensions==1.1.0", "jinja2==3.1.6", - "code-annotations==3.0.0", "docutils==0.22.4", "build==1.5.0", "sphinx==9.1.0", - "ast-serialize==0.5.0", "virtualenv==21.3.3", "sortedcontainers==2.4.0", - "dill==0.4.1", "accessible-pygments==0.0.5", "tox==4.54.0", "pyyaml==6.0.3", - "beautifulsoup4==4.14.3", "sphinxcontrib-qthelp==2.0.0", "filelock==3.29.0", - "astroid==4.0.4", "pyproject-hooks==1.2.0", "isort==8.0.1", "setuptools==82.0.1", - "pygments==2.20.0", "sphinxcontrib-htmlhelp==2.1.0", "coverage[toml]==7.14.0", - "babel==2.18.0", "readme-renderer==44.0", "text-unidecode==1.3", "ddt==1.7.2", - "dnspython==2.8.0", "python-discovery==1.3.1", "colorama==0.4.6", "mypy==2.1.0", - "six==1.17.0", "pylint==4.0.5", "librt==0.11.0", "pydata-sphinx-theme==0.16.1", - "pylint-celery==0.3", "alabaster==1.0.0", "pycodestyle==2.14.0", "pluggy==1.6.0", - "requests==2.34.2", "idna==3.16", "typing-extensions==4.15.0", "pylint-django==2.7.0", - "pytest==9.0.3"]' + list: '["pytest==9.0.3", "imagesize==2.0.0", "iniconfig==2.3.0", "python-discovery==1.4.0", + "pylint-django==2.7.0", "pyyaml==6.0.3", "click-log==0.4.0", "pygments==2.20.0", + "sphinxcontrib-qthelp==2.0.0", "python-slugify==8.0.4", "coverage==7.14.1", + "pip-tools==7.5.3", "ast-serialize==0.5.0", "pathspec==1.1.1", "markupsafe==3.0.3", + "pyproject-hooks==1.2.0", "typing-extensions==4.15.0", "sortedcontainers==2.4.0", + "wheel==0.47.0", "pip==26.1.2", "text-unidecode==1.3", "mypy==2.1.0", + "sphinxcontrib-devhelp==2.0.0", "mypy-extensions==1.1.0", "docutils==0.22.4", + "ddt==1.7.2", "accessible-pygments==0.0.5", "execnet==2.1.2", "tox==4.55.0", + "jinja2==3.1.6", "idna==3.17", "packaging==26.2", "alabaster==1.0.0", + "requests==2.34.2", "soupsieve==2.8.4", "sphinxcontrib-serializinghtml==2.0.0", + "pytest-django==4.12.0", "coverage[toml]==7.14.1", "hypothesis==6.155.1", + "isort==8.0.1", "cachetools==7.1.4", "pluggy==1.6.0", "sphinx-book-theme==1.2.0", + "pytest-cov==7.1.0", "pylint==4.0.5", "pydata-sphinx-theme==0.16.1", "pylint-celery==0.3", + "distlib==0.4.0", "sphinxcontrib-jsmath==1.0.1", "virtualenv==21.4.2", + "tomlkit==0.15.0", "six==1.17.0", "colorama==0.4.6", "build==1.5.0", "dill==0.4.1", + "librt==0.11.0", "setuptools==82.0.1", "pycodestyle==2.14.0", "dnspython==2.8.0", + "nh3==0.3.5", "sphinx==9.1.0", "filelock==3.29.0", "roman-numerals==4.1.0", + "beautifulsoup4==4.14.3", "sphinxcontrib-applehelp==2.0.0", "edx-lint==6.1.0", + "babel==2.18.0", "stevedore==5.8.0", "tomli-w==1.2.0", "mccabe==0.7.0", + "pymongo==4.17.0", "astroid==4.0.4", "snowballstemmer==3.1.0", "certifi==2026.5.20", + "click==8.4.1", "readme-renderer==44.0", "sphinxcontrib-htmlhelp==2.1.0", + "code-annotations==3.0.0", "pylint-plugin-utils==0.9.0", "pyproject-api==1.10.1", + "urllib3==2.7.0", "pytest-xdist==3.8.0", "charset-normalizer==3.4.7", + "mock==5.2.0", "platformdirs==4.10.0"]' django_packages: django_42: count: 3 - list: '["code-annotations", "pytest-django", "pylint-django"]' + list: '["code-annotations", "pylint-django", "pytest-django"]' total: count: 3 - list: '["code-annotations", "pytest-django", "pylint-django"]' + list: '["code-annotations", "pylint-django", "pytest-django"]' upgraded: count: 1 list: '["code-annotations"]' @@ -86,27 +86,27 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 12 - build_details: '{"total_duration": "9633 minutes 53 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, django42)", "duration": "3 minutes 1 seconds"}, - {"name": "Tests (ubuntu-latest, 3.12, without-django)", "duration": "2 minutes - 40 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", - "duration": "1 minutes 30 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, - quality)", "duration": "0 minutes 58 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, docs)", "duration": "0 minutes 53 seconds"}, {"name": "update-pip-graph", - "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 - minutes 30 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + branch_count: 13 + build_details: '{"total_duration": "9603 minutes 2 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, django42)", "duration": "3 minutes 11 seconds"}, + {"name": "Tests (ubuntu-latest, 3.12, without-django)", "duration": "3 minutes + 7 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", + "duration": "1 minutes 14 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + quality)", "duration": "0 minutes 50 seconds"}, {"name": "Tests (ubuntu-latest, + 3.12, docs)", "duration": "0 minutes 47 seconds"}, {"name": "update-pip-graph", + "duration": "0 minutes 30 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 21 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 52 seconds"}]}' + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 53 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2014-05-23 17:24:54 default_branch: master description: '' - disk_usage_kb: 995 + disk_usage_kb: 1005 fork_count: 21 has_issues: true has_wiki: false @@ -115,9 +115,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:28:12 + last_push: 2026-06-08 00:30:49 license: GNU AGPLv3 - pulls_count: 2 + pulls_count: 3 github_actions: true language_bytes: css: 0 diff --git a/individual_repo_data/openedx/openedx-ai-extensions_repo_health.yaml b/individual_repo_data/openedx/openedx-ai-extensions_repo_health.yaml index dd7c2c0f..17abfa46 100644 --- a/individual_repo_data/openedx/openedx-ai-extensions_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-ai-extensions_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -63,28 +63,25 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 2 - build_details: '{"total_duration": "1712 minutes 38 seconds", "checks": [{"name": - "Frontend Tests (ubuntu-latest, 20)", "duration": "2 minutes 13 seconds"}, - {"name": "Backend Tests (ubuntu-latest, 3.12, django42)", "duration": "2 minutes - 7 seconds"}, {"name": "Backend Tests (ubuntu-latest, 3.12, quality)", "duration": - "1 minutes 25 seconds"}, {"name": "Backend Tests (ubuntu-latest, 3.12, pii_check)", - "duration": "1 minutes 0 seconds"}, {"name": "Plugin / Docs Tests (ubuntu-latest, - 3.12)", "duration": "0 minutes 54 seconds"}, {"name": "add_remove_labels / - add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + build_details: '{"total_duration": "4167 minutes 55 seconds", "checks": [{"name": + "Frontend Tests (ubuntu-latest, 20)", "duration": "2 minutes 10 seconds"}, + {"name": "Backend Tests (ubuntu-latest, 3.12, django42)", "duration": "1 minutes + 54 seconds"}, {"name": "Backend Tests (ubuntu-latest, 3.12, quality)", "duration": + "1 minutes 22 seconds"}, {"name": "Plugin / Docs Tests (ubuntu-latest, 3.12)", + "duration": "0 minutes 55 seconds"}, {"name": "Backend Tests (ubuntu-latest, + 3.12, pii_check)", "duration": "0 minutes 51 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 52 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 50 seconds"}]}' + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 53 seconds"}]}' code_of_conduct: Other created_at: 2025-07-29 15:04:02 default_branch: main description: An edx-platform plugin that will house tools and helpers for working with AI. - disk_usage_kb: 2820 + disk_usage_kb: 2825 fork_count: 10 has_issues: true has_wiki: false @@ -93,9 +90,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 15:47:37 + last_push: 2026-06-02 21:54:43 license: GNU AGPLv3 - pulls_count: 3 + pulls_count: 4 github_actions: true language_bytes: css: 839 @@ -120,21 +117,21 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/openedx-ai-extensions.git: 504' - 'https://docs.openedx.org/en/latest/developers/references/plugin_reference.html: 404' + - 'https://github.com/openedx/openedx-ai-extensions/issues: 504' getting-help: false good_links: - https://img.shields.io/badge/Status-Experimental-orange - https://img.shields.io/badge/License-AGPL%20v3-blue - https://img.shields.io/badge/Documentation-green - https://docs.openedx.org/projects/openedx-ai-extensions/en/latest/index.html - - https://github.com/openedx/openedx-ai-extensions.git - https://docs.openedx.org/en/latest/developers/quickstarts/so_you_want_to_contribute.html - https://discuss.openedx.org - https://www.canva.com/design/DAGqjcS2mT4/nTHQIDIeZ89wqsBvh9GWKA/view - https://docs.litellm.ai/ - https://drive.google.com/file/d/1sUj2xoldYFAvPoDuxqwG0XbIundGD0u2/view - - https://github.com/openedx/openedx-ai-extensions/issues irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/openedx-app-android_repo_health.yaml b/individual_repo_data/openedx/openedx-app-android_repo_health.yaml index 296cc1c4..54c1955a 100644 --- a/individual_repo_data/openedx/openedx-app-android_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-android_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-app-firebase-analytics-android_repo_health.yaml b/individual_repo_data/openedx/openedx-app-firebase-analytics-android_repo_health.yaml index 39b195cf..6741e441 100644 --- a/individual_repo_data/openedx/openedx-app-firebase-analytics-android_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-firebase-analytics-android_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-app-firebase-analytics-ios_repo_health.yaml b/individual_repo_data/openedx/openedx-app-firebase-analytics-ios_repo_health.yaml index b7e39311..367e832a 100644 --- a/individual_repo_data/openedx/openedx-app-firebase-analytics-ios_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-firebase-analytics-ios_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-app-foundation-android_repo_health.yaml b/individual_repo_data/openedx/openedx-app-foundation-android_repo_health.yaml index 6ca8bc00..4939ef6d 100644 --- a/individual_repo_data/openedx/openedx-app-foundation-android_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-foundation-android_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-app-foundation-ios_repo_health.yaml b/individual_repo_data/openedx/openedx-app-foundation-ios_repo_health.yaml index 939b8f37..8006cedc 100644 --- a/individual_repo_data/openedx/openedx-app-foundation-ios_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-foundation-ios_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-app-ios_repo_health.yaml b/individual_repo_data/openedx/openedx-app-ios_repo_health.yaml index 6e14180c..8a9e88a1 100644 --- a/individual_repo_data/openedx/openedx-app-ios_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-ios_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -63,23 +63,28 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 16 - build_details: '{"total_duration": "0 minutes 29 seconds", "checks": [{"name": + build_details: '{"total_duration": "10793 minutes 28 seconds", "checks": [{"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "-1 minutes 50 seconds"}]}' + "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 55 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2023-03-13 09:15:29 default_branch: main description: The mobile app for iOS for the Open EdX Platform. disk_usage_kb: 13069 - fork_count: 30 + fork_count: 31 has_issues: true has_wiki: false is_archived: false @@ -89,7 +94,7 @@ github: is_private: false last_push: 2026-05-28 08:47:00 license: Apache License 2.0 - pulls_count: 4 + pulls_count: 3 github_actions: false language_bytes: css: 0 @@ -114,13 +119,13 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/openedx-atlas: 504' - 'https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403' - 'https://app.transifex.com/open-edx/openedx-translations/openedx-app-ios/: 404' getting-help: false good_links: - https://github.com/openedx/openedx-app-ios.git - https://docs.openedx.org/en/latest/developers/concepts/oep58.html - - https://github.com/openedx/openedx-atlas - https://github.com/openedx/openedx-translations - https://github.com/openedx/openedx-translations/blob/6448167e9695a921f003ff6bd8f40f006a2d6743/translations/openedx-app-ios/I18N/I18N/uk.lproj/Localizable.strings - https://github.com/openedx/openedx-atlas/issues/20 diff --git a/individual_repo_data/openedx/openedx-app-test_repo_health.yaml b/individual_repo_data/openedx/openedx-app-test_repo_health.yaml index a2b95fcb..eec46a68 100644 --- a/individual_repo_data/openedx/openedx-app-test_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-app-test_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-aspects_repo_health.yaml b/individual_repo_data/openedx/openedx-aspects_repo_health.yaml index f5fbed9f..9ef7b876 100644 --- a/individual_repo_data/openedx/openedx-aspects_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-aspects_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -63,18 +63,27 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 16 - build_details: '{"total_duration": "7857 minutes 18 seconds", "checks": [{"name": - "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "0 minutes 49 seconds"}, {"name": "update-uv-graph", "duration": "0 minutes - 40 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}]}' + build_details: '{"total_duration": "3210 minutes 55 seconds", "checks": [{"name": + "update-uv-graph", "duration": "0 minutes 43 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 19 seconds"}, {"name": "routeissue / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "0 + minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": "-1 + minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 + minutes 54 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "-1 minutes 51 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "-1 minutes 51 seconds"}, {"name": "routeissue / add_label", "duration": "-1 + minutes 51 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes + 50 seconds"}]}' code_of_conduct: Other created_at: 2023-01-05 19:08:37 default_branch: main description: Aspects - Analytics for Open edX - disk_usage_kb: 6249 + disk_usage_kb: 6267 fork_count: 11 has_issues: true has_wiki: false @@ -83,7 +92,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:30:47 + last_push: 2026-06-08 00:33:23 license: Apache License 2.0 pulls_count: 2 github_actions: false diff --git a/individual_repo_data/openedx/openedx-atlas_repo_health.yaml b/individual_repo_data/openedx/openedx-atlas_repo_health.yaml index 384b90fb..eb28d5a2 100644 --- a/individual_repo_data/openedx/openedx-atlas_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-atlas_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -76,7 +76,7 @@ github: default_branch: main description: An Open edX CLI tool for moving translation files from openedx-translations disk_usage_kb: 117 - fork_count: 13 + fork_count: 12 has_issues: true has_wiki: false is_archived: false @@ -112,15 +112,15 @@ pinned_python_dependencies: 0 readme: bad_links: - 'https://www.npmjs.com/package/@edx/openedx-atlas: 403' + - 'https://github.com/openedx/openedx-atlas/releases/latest/: 504' + - 'https://github.com/openedx/openedx-atlas/blob/main/atlas: 504' + - 'https://github.com/openedx/openedx-atlas/releases/latest/download/atlas: 504' + - 'https://github.com/shellspec/shellspec: 504' + - 'https://github.com/koalaman/shellcheck: 504' + - 'https://github.com/ko1nksm/getoptions: 504' getting-help: true good_links: - https://pypi.org/project/openedx-atlas/ - - https://github.com/openedx/openedx-atlas/releases/latest/ - - https://github.com/openedx/openedx-atlas/blob/main/atlas - - https://github.com/openedx/openedx-atlas/releases/latest/download/atlas - - https://github.com/shellspec/shellspec - - https://github.com/koalaman/shellcheck - - https://github.com/ko1nksm/getoptions - https://semver.org/ - https://github.com/semantic-release/semantic-release/ - https://open-edx-proposals.readthedocs.io/en/latest/oep-0051-bp-conventional-commits.html diff --git a/individual_repo_data/openedx/openedx-authz_repo_health.yaml b/individual_repo_data/openedx/openedx-authz_repo_health.yaml index 8218d2d9..458945b9 100644 --- a/individual_repo_data/openedx/openedx-authz_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-authz_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,74 +22,75 @@ dependencies: list: '' pypi: count: 49 - list: '["urllib3==2.7.0", "pillow==12.2.0", "click==8.4.1", "edx-opaque-keys[django]==4.0.0", - "wcmatch==10.1", "inflection==0.5.1", "casbin-django-orm-adapter==1.7.0", - "pyjwt[crypto]==2.13.0", "attrs==26.1.0", "dnspython==2.8.0", "pyyaml==6.0.3", - "openedx-events==11.2.0", "pynacl==1.6.2", "typing-extensions==4.15.0", - "edx-organizations==8.0.0", "bracex==2.6", "semantic-version==2.10.0", - "asgiref==3.11.1", "edx-django-utils==8.0.1", "simpleeval==1.0.7", "djangorestframework==3.17.1", - "pytz==2026.2", "edx-api-doc-tools==3.0.0", "packaging==26.2", "pycasbin==2.8.0", - "pymongo==4.17.0", "openedx-atlas==0.7.0", "edx-drf-extensions==10.6.0", - "cffi==2.0.0", "django-waffle==5.0.0", "requests==2.34.2", "stevedore==5.8.0", - "sqlparse==0.5.5", "fastavro==1.12.2", "edx-ccx-keys==2.0.2", "charset-normalizer==3.4.7", - "drf-yasg==1.21.15", "psutil==7.2.2", "six==1.17.0", "cryptography==48.0.0", - "uritemplate==4.2.0", "idna==3.16", "certifi==2026.5.20", "drf-jwt==1.19.2", - "pycparser==3.0", "django-crum==0.7.9", "django==5.2.14", "django-simple-history==3.11.0", - "django-model-utils==5.0.0"]' + list: '["click==8.4.1", "drf-jwt==1.19.2", "inflection==0.5.1", "charset-normalizer==3.4.7", + "openedx-events==11.2.0", "dnspython==2.8.0", "pyjwt[crypto]==2.13.0", + "semantic-version==2.10.0", "idna==3.17", "pycasbin==2.8.0", "edx-api-doc-tools==3.0.0", + "edx-django-utils==8.0.1", "casbin-django-orm-adapter==1.7.0", "bracex==2.6", + "openedx-atlas==0.7.0", "drf-yasg==1.21.15", "django==5.2.14", "asgiref==3.11.1", + "certifi==2026.5.20", "djangorestframework==3.17.1", "django-waffle==5.0.0", + "django-model-utils==5.0.0", "fastavro==1.12.2", "django-crum==0.7.9", + "uritemplate==4.2.0", "edx-ccx-keys==2.0.2", "pyyaml==6.0.3", "urllib3==2.7.0", + "wcmatch==10.1", "pynacl==1.6.2", "edx-organizations==8.0.0", "typing-extensions==4.15.0", + "attrs==26.1.0", "psutil==7.2.2", "stevedore==5.8.0", "pytz==2026.2", + "sqlparse==0.5.5", "pycparser==3.0", "requests==2.34.2", "edx-opaque-keys[django]==4.0.0", + "six==1.17.0", "pymongo==4.17.0", "pillow==12.2.0", "django-simple-history==3.11.0", + "simpleeval==1.0.7", "cffi==2.0.0", "edx-drf-extensions==10.6.0", "cryptography==48.0.0", + "packaging==26.2"]' pypi_all: count: 134 - list: '["jinja2==3.1.6", "cachetools==7.1.4", "click==8.4.1", "pytest==9.0.3", - "wcmatch==10.1", "pyjwt[crypto]==2.13.0", "python-discovery==1.3.1", "attrs==26.1.0", - "pyyaml==6.0.3", "openedx-events==11.2.0", "typing-extensions==4.15.0", - "markupsafe==3.0.3", "sphinxcontrib-serializinghtml==2.0.0", "pydata-sphinx-theme==0.16.1", - "asgiref==3.11.1", "djangorestframework==3.17.1", "rich==15.0.0", "code-annotations==3.0.0", - "diff-cover==10.2.1", "build==1.5.0", "pytest-django==4.12.0", "restructuredtext-lint==2.0.2", - "click-log==0.4.0", "pylint==4.0.5", "requests==2.34.2", "pygments==2.20.0", - "edx-ccx-keys==2.0.2", "secretstorage==3.5.0", "six==1.17.0", "pylint-plugin-utils==0.9.0", - "virtualenv==21.3.3", "rfc3986==2.0.0", "edx-lint==6.1.0", "sphinx-book-theme==1.2.0", - "pycasbin==2.8.0", "cryptography==48.0.0", "more-itertools==11.1.0", "django-model-utils==5.0.0", - "sphinxcontrib-applehelp==2.0.0", "nh3==0.3.5", "edx-opaque-keys[django]==4.0.0", - "jaraco-functools==4.5.0", "sphinxcontrib-devhelp==2.0.0", "keyring==25.7.0", - "pynacl==1.6.2", "ddt==1.7.2", "doc8==2.0.0", "platformdirs==4.9.6", "edx-django-utils==8.0.1", - "simpleeval==1.0.7", "tox==4.54.0", "docutils==0.21.2", "text-unidecode==1.3", - "pymongo==4.17.0", "tomlkit==0.15.0", "edx-drf-extensions==10.6.0", "django-waffle==5.0.0", - "stevedore==5.8.0", "pytest-cov==7.1.0", "fastavro==1.12.2", "edx-i18n-tools==2.0.0", - "charset-normalizer==3.4.7", "roman-numerals==4.1.0", "markdown-it-py==4.2.0", - "drf-jwt==1.19.2", "inflection==0.5.1", "imagesize==2.0.0", "polib==1.2.0", - "readme-renderer==44.0", "jeepney==0.9.0", "pylint-django==2.7.0", "tomli-w==1.2.0", - "soupsieve==2.8.4", "mdurl==0.1.2", "pip-tools==7.5.3", "semantic-version==2.10.0", - "jaraco-classes==3.4.0", "sphinx==9.1.0", "sphinxcontrib-htmlhelp==2.1.0", - "packaging==26.2", "alabaster==1.0.0", "requests-toolbelt==1.0.0", "setuptools==82.0.1", - "chardet==7.4.3", "babel==2.18.0", "uritemplate==4.2.0", "beautifulsoup4==4.14.3", - "lxml-html-clean==0.4.5", "pycparser==3.0", "snowballstemmer==3.1.0", - "pyproject-api==1.10.0", "iniconfig==2.3.0", "django-simple-history==3.11.0", - "django-crum==0.7.9", "pylint-celery==0.3", "id==1.6.1", "lxml[html-clean]==6.1.1", - "coverage[toml]==7.14.0", "urllib3==2.7.0", "ruff==0.15.14", "pillow==12.2.0", - "dill==0.4.1", "sphinxcontrib-qthelp==2.0.0", "casbin-django-orm-adapter==1.7.0", - "isort==8.0.1", "astroid==4.0.4", "dnspython==2.8.0", "pip==26.1.1", "sphinxcontrib-jsmath==1.0.1", - "pyproject-hooks==1.2.0", "distlib==0.4.0", "path==16.16.0", "accessible-pygments==0.0.5", - "edx-organizations==8.0.0", "colorama==0.4.6", "bracex==2.6", "python-slugify==8.0.4", - "twine==6.2.0", "wheel==0.47.0", "pytz==2026.2", "jaraco-context==6.1.2", - "edx-api-doc-tools==3.0.0", "pydocstyle==6.3.0", "openedx-atlas==0.7.0", - "filelock==3.29.0", "cffi==2.0.0", "sqlparse==0.5.5", "drf-yasg==1.21.15", - "psutil==7.2.2", "mccabe==0.7.0", "idna==3.16", "certifi==2026.5.20", - "pluggy==1.6.0", "django==5.2.14"]' + list: '["dnspython==2.8.0", "pylint==4.0.5", "pycasbin==2.8.0", "edx-api-doc-tools==3.0.0", + "bracex==2.6", "ddt==1.7.2", "django==5.2.14", "ruff==0.15.15", "sphinxcontrib-serializinghtml==2.0.0", + "pyyaml==6.0.3", "urllib3==2.7.0", "cachetools==7.1.4", "pylint-plugin-utils==0.9.0", + "alabaster==1.0.0", "virtualenv==21.4.2", "twine==6.2.0", "sphinxcontrib-qthelp==2.0.0", + "pytest-cov==7.1.0", "pylint-django==2.7.0", "attrs==26.1.0", "psutil==7.2.2", + "sqlparse==0.5.5", "six==1.17.0", "rich==15.0.0", "astroid==4.0.4", "jaraco-context==6.1.2", + "accessible-pygments==0.0.5", "platformdirs==4.10.0", "more-itertools==11.1.0", + "python-discovery==1.4.0", "tomlkit==0.15.0", "secretstorage==3.5.0", + "lxml[html-clean]==6.1.1", "restructuredtext-lint==2.0.2", "edx-lint==6.1.0", + "path==16.16.0", "edx-django-utils==8.0.1", "chardet==7.4.3", "sphinxcontrib-htmlhelp==2.1.0", + "casbin-django-orm-adapter==1.7.0", "sphinx==9.1.0", "jeepney==0.9.0", + "pydocstyle==6.3.0", "distlib==0.4.0", "certifi==2026.5.20", "djangorestframework==3.17.1", + "django-waffle==5.0.0", "pytest==9.0.3", "id==1.6.1", "keyring==25.7.0", + "filelock==3.29.0", "sphinxcontrib-devhelp==2.0.0", "rfc3986==2.0.0", + "edx-organizations==8.0.0", "docutils==0.21.2", "pylint-celery==0.3", + "pip-tools==7.5.3", "isort==8.0.1", "code-annotations==3.0.0", "edx-opaque-keys[django]==4.0.0", + "colorama==0.4.6", "pytest-django==4.12.0", "pyproject-hooks==1.2.0", + "django-simple-history==3.11.0", "imagesize==2.0.0", "sphinxcontrib-applehelp==2.0.0", + "edx-drf-extensions==10.6.0", "cryptography==48.0.0", "packaging==26.2", + "click==8.4.1", "drf-jwt==1.19.2", "semantic-version==2.10.0", "charset-normalizer==3.4.7", + "pyjwt[crypto]==2.13.0", "idna==3.17", "polib==1.2.0", "beautifulsoup4==4.14.3", + "wheel==0.47.0", "soupsieve==2.8.4", "openedx-atlas==0.7.0", "drf-yasg==1.21.15", + "click-log==0.4.0", "asgiref==3.11.1", "markupsafe==3.0.3", "fastavro==1.12.2", + "setuptools==82.0.1", "iniconfig==2.3.0", "requests-toolbelt==1.0.0", + "snowballstemmer==3.1.0", "django-crum==0.7.9", "python-slugify==8.0.4", + "uritemplate==4.2.0", "edx-ccx-keys==2.0.2", "markdown-it-py==4.2.0", + "roman-numerals==4.1.0", "stevedore==5.8.0", "nh3==0.3.5", "pytz==2026.2", + "readme-renderer==44.0", "jaraco-functools==4.5.0", "edx-i18n-tools==2.0.0", + "pillow==12.2.0", "tomli-w==1.2.0", "simpleeval==1.0.7", "diff-cover==10.3.0", + "cffi==2.0.0", "build==1.5.0", "lxml-html-clean==0.4.5", "jinja2==3.1.6", + "babel==2.18.0", "inflection==0.5.1", "openedx-events==11.2.0", "dill==0.4.1", + "sphinx-book-theme==1.2.0", "coverage[toml]==7.14.1", "mdurl==0.1.2", + "text-unidecode==1.3", "django-model-utils==5.0.0", "pluggy==1.6.0", "pyproject-api==1.10.1", + "jaraco-classes==3.4.0", "wcmatch==10.1", "tox==4.55.0", "mccabe==0.7.0", + "pynacl==1.6.2", "sphinxcontrib-jsmath==1.0.1", "typing-extensions==4.15.0", + "pygments==2.20.0", "pip==26.1.2", "pycparser==3.0", "requests==2.34.2", + "doc8==2.0.0", "pymongo==4.17.0", "pydata-sphinx-theme==0.16.1"]' django_packages: django_42: count: 10 - list: '["edx-organizations", "edx-api-doc-tools", "edx-drf-extensions", "pytest-django", - "djangorestframework", "code-annotations", "edx-i18n-tools", "edx-django-utils", - "pylint-django", "django-waffle"]' + list: '["code-annotations", "django-waffle", "pylint-django", "edx-django-utils", + "pytest-django", "edx-organizations", "edx-drf-extensions", "djangorestframework", + "edx-i18n-tools", "edx-api-doc-tools"]' total: count: 15 - list: '["edx-organizations", "edx-api-doc-tools", "edx-drf-extensions", "django-model-utils", - "django-crum", "pytest-django", "djangorestframework", "code-annotations", - "edx-i18n-tools", "edx-django-utils", "pylint-django", "django-waffle", - "drf-yasg", "drf-jwt", "django-simple-history"]' + list: '["code-annotations", "django-waffle", "django-model-utils", "drf-jwt", + "pylint-django", "edx-django-utils", "pytest-django", "edx-organizations", + "edx-drf-extensions", "djangorestframework", "django-crum", "django-simple-history", + "edx-i18n-tools", "edx-api-doc-tools", "drf-yasg"]' upgraded: count: 7 - list: '["edx-organizations", "edx-api-doc-tools", "edx-drf-extensions", "code-annotations", - "edx-i18n-tools", "edx-django-utils", "django-waffle"]' + list: '["code-annotations", "django-waffle", "edx-django-utils", "edx-organizations", + "edx-drf-extensions", "edx-i18n-tools", "edx-api-doc-tools"]' docs: build_badge: true python_version: null @@ -116,32 +117,30 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 16 - build_details: '{"total_duration": "1092 minutes 34 seconds", "checks": [{"name": - "tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 49 seconds"}, - {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 6 - seconds"}, {"name": "tests (ubuntu-latest, 3.12, docs)", "duration": "1 minutes - 0 seconds"}, {"name": "tests (ubuntu-latest, 3.12, pii_check)", "duration": - "0 minutes 42 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes - 41 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 - minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + branch_count: 15 + build_details: '{"total_duration": "3149 minutes 10 seconds", "checks": [{"name": + "tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 56 seconds"}, + {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", + "duration": "1 minutes 14 seconds"}, {"name": "tests (ubuntu-latest, 3.12, + quality)", "duration": "1 minutes 3 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, docs)", "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, pii_check)", "duration": "0 minutes 30 seconds"}, {"name": "push", "duration": + "0 minutes 19 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", - "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "-1 minutes 52 seconds"}]}' + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 55 seconds"}, {"name": "routeissue / add_label", "duration": + "-1 minutes 54 seconds"}]}' code_of_conduct: Other created_at: 2025-05-20 17:33:52 default_branch: main description: Specifications for the authorization model, policy data structures, and enforcement APIs that define how access control is evaluated and managed across the Open edX ecosystem. - disk_usage_kb: 890 + disk_usage_kb: 900 fork_count: 9 has_issues: true has_wiki: false @@ -150,9 +149,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:33:22 + last_push: 2026-06-08 00:35:26 license: GNU AGPLv3 - pulls_count: 6 + pulls_count: 4 github_actions: true language_bytes: css: 0 @@ -160,7 +159,7 @@ language_bytes: html: 873 javascript: 0 makefile: 5393 - python: 1019518 + python: 1059767 shell: 0 makefile: pip-installed: false diff --git a/individual_repo_data/openedx/openedx-backstage_repo_health.yaml b/individual_repo_data/openedx/openedx-backstage_repo_health.yaml index b4a2c74b..b56e1133 100644 --- a/individual_repo_data/openedx/openedx-backstage_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-backstage_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: diff --git a/individual_repo_data/openedx/openedx-calc_repo_health.yaml b/individual_repo_data/openedx/openedx-calc_repo_health.yaml index b27824b9..48042f06 100644 --- a/individual_repo_data/openedx/openedx-calc_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-calc_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,34 +22,34 @@ dependencies: list: '' pypi: count: 6 - list: '["pyparsing==3.3.2", "markupsafe==3.0.3", "mpmath==1.3.0", "sympy==1.14.0", - "lxml==6.0.2", "numpy==2.4.2"]' + list: '["mpmath==1.3.0", "lxml==6.0.2", "pyparsing==3.3.2", "numpy==2.4.2", + "markupsafe==3.0.3", "sympy==1.14.0"]' pypi_all: count: 64 - list: '["wheel==0.46.3", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", - "text-unidecode==1.3", "filelock==3.25.0", "sympy==1.14.0", "pylint-plugin-utils==0.9.0", - "charset-normalizer==3.4.5", "numpy==2.4.2", "pylint-celery==0.3", "idna==3.11", - "markdown-it-py==4.0.0", "pyparsing==3.3.2", "iniconfig==2.3.0", "pip==24.2", - "annotated-doc==0.0.4", "pylint==4.0.5", "colorama==0.4.6", "shellingham==1.5.4", - "six==1.17.0", "pygments==2.19.2", "rich==14.3.3", "click==8.3.1", "urllib3==2.6.3", - "platformdirs==4.9.4", "isort==8.0.1", "markupsafe==3.0.3", "pylint-django==2.7.0", - "mccabe==0.7.0", "coverage[toml]==7.13.4", "distlib==0.4.0", "click-log==0.4.0", - "mpmath==1.3.0", "typer==0.24.1", "wheel==0.45.1", "requests==2.32.5", - "pip==26.0.1", "jinja2==3.1.6", "certifi==2026.2.25", "tomli-w==1.2.0", - "edx-lint==5.6.0", "virtualenv==21.1.0", "dill==0.4.1", "setuptools==82.0.0", - "cachetools==7.0.3", "stevedore==5.7.0", "pluggy==1.6.0", "tox==4.49.0", - "pip-tools==7.5.3", "pyproject-api==1.10.0", "code-annotations==2.3.2", - "python-slugify==8.0.4", "astroid==4.0.4", "tomlkit==0.14.0", "coverage==7.13.4", - "lxml==6.0.2", "pytest==9.0.2", "pyyaml==6.0.3", "python-discovery==1.1.1", - "setuptools==78.1.0", "packaging==26.0", "mdurl==0.1.2", "coveralls==4.1.0", - "build==1.4.0"]' + list: '["tomlkit==0.14.0", "code-annotations==2.3.2", "charset-normalizer==3.4.5", + "pip==26.0.1", "pip-tools==7.5.3", "mccabe==0.7.0", "astroid==4.0.4", + "pylint-celery==0.3", "annotated-doc==0.0.4", "numpy==2.4.2", "coverage==7.13.4", + "packaging==26.0", "certifi==2026.2.25", "pip==24.2", "rich==14.3.3", + "dill==0.4.1", "sympy==1.14.0", "python-slugify==8.0.4", "coveralls==4.1.0", + "text-unidecode==1.3", "platformdirs==4.9.4", "wheel==0.45.1", "distlib==0.4.0", + "six==1.17.0", "filelock==3.25.0", "pyyaml==6.0.3", "virtualenv==21.1.0", + "markupsafe==3.0.3", "jinja2==3.1.6", "setuptools==78.1.0", "shellingham==1.5.4", + "cachetools==7.0.3", "pylint==4.0.5", "markdown-it-py==4.0.0", "setuptools==82.0.0", + "tox==4.49.0", "python-discovery==1.1.1", "pyproject-hooks==1.2.0", "isort==8.0.1", + "idna==3.11", "pylint-django==2.7.0", "pytest==9.0.2", "stevedore==5.7.0", + "pylint-plugin-utils==0.9.0", "wheel==0.46.3", "iniconfig==2.3.0", "build==1.4.0", + "edx-lint==5.6.0", "tomli-w==1.2.0", "coverage[toml]==7.13.4", "click==8.3.1", + "colorama==0.4.6", "mpmath==1.3.0", "lxml==6.0.2", "pycodestyle==2.14.0", + "pyproject-api==1.10.0", "mdurl==0.1.2", "pygments==2.19.2", "urllib3==2.6.3", + "typer==0.24.1", "requests==2.32.5", "pyparsing==3.3.2", "pluggy==1.6.0", + "click-log==0.4.0"]' django_packages: django_42: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' total: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' upgraded: count: 1 list: '["code-annotations"]' @@ -105,7 +105,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:45:01 + last_push: 2026-06-08 03:45:09 license: GNU AGPLv3 pulls_count: 2 github_actions: true @@ -203,8 +203,8 @@ travis_yml: ubuntu_packages: apt_get_packages: [] docker_packages: + - gfortran - python3-dev - liblapack-dev - libblas-dev - - gfortran yml_files: '[]' diff --git a/individual_repo_data/openedx/openedx-chem_repo_health.yaml b/individual_repo_data/openedx/openedx-chem_repo_health.yaml index 849fdfe3..4de1bc28 100644 --- a/individual_repo_data/openedx/openedx-chem_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-chem_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,21 +22,20 @@ dependencies: list: '' pypi: count: 9 - list: '["regex==2026.2.28", "numpy==2.4.2", "tqdm==4.67.3", "joblib==1.5.3", - "click==8.3.1", "markupsafe==3.0.3", "scipy==1.17.1", "pyparsing==3.3.2", - "nltk==3.9.3"]' + list: '["nltk==3.9.3", "scipy==1.17.1", "click==8.3.1", "tqdm==4.67.3", "numpy==2.4.2", + "regex==2026.2.28", "joblib==1.5.3", "pyparsing==3.3.2", "markupsafe==3.0.3"]' pypi_all: count: 39 - list: '["pyproject-hooks==1.2.0", "pygments==2.19.2", "astroid==4.0.4", "pylint==4.0.5", - "packaging==26.0", "python-discovery==1.1.1", "numpy==2.4.2", "markupsafe==3.0.3", - "click==8.3.1", "tomlkit==0.14.0", "pyparsing==3.3.2", "wheel==0.46.3", - "iniconfig==2.3.0", "build==1.4.0", "coverage[toml]==7.13.4", "mccabe==0.7.0", - "cachetools==7.0.3", "tomli-w==1.2.0", "tqdm==4.67.3", "joblib==1.5.3", - "pip-tools==7.5.3", "setuptools==82.0.0", "pip==26.0.1", "pytest-cov==7.0.0", - "pycodestyle==2.14.0", "scipy==1.17.1", "pluggy==1.6.0", "nltk==3.9.3", - "filelock==3.25.0", "regex==2026.2.28", "distlib==0.4.0", "tox==4.49.0", - "dill==0.4.1", "colorama==0.4.6", "isort==8.0.1", "pytest==9.0.2", "platformdirs==4.9.4", - "pyproject-api==1.10.0", "virtualenv==21.1.0"]' + list: '["pip==26.0.1", "pyproject-api==1.10.0", "pytest-cov==7.0.0", "click==8.3.1", + "colorama==0.4.6", "pluggy==1.6.0", "tomlkit==0.14.0", "scipy==1.17.1", + "tox==4.49.0", "iniconfig==2.3.0", "isort==8.0.1", "tomli-w==1.2.0", "setuptools==82.0.0", + "astroid==4.0.4", "python-discovery==1.1.1", "pygments==2.19.2", "wheel==0.46.3", + "regex==2026.2.28", "joblib==1.5.3", "markupsafe==3.0.3", "dill==0.4.1", + "tqdm==4.67.3", "platformdirs==4.9.4", "pip-tools==7.5.3", "numpy==2.4.2", + "coverage[toml]==7.13.4", "cachetools==7.0.3", "pyproject-hooks==1.2.0", + "mccabe==0.7.0", "packaging==26.0", "nltk==3.9.3", "distlib==0.4.0", "pylint==4.0.5", + "virtualenv==21.1.0", "pycodestyle==2.14.0", "pytest==9.0.2", "build==1.4.0", + "pyparsing==3.3.2", "filelock==3.25.0"]' django_packages: django_42: count: 0 @@ -166,8 +165,8 @@ travis_yml: ubuntu_packages: apt_get_packages: [] docker_packages: - - python3-dev - - gfortran - libblas-dev - liblapack-dev + - gfortran + - python3-dev yml_files: '[]' diff --git a/individual_repo_data/openedx/openedx-core_repo_health.yaml b/individual_repo_data/openedx/openedx-core_repo_health.yaml index b54c6f95..d222a4f2 100644 --- a/individual_repo_data/openedx/openedx-core_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-core_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,81 +22,81 @@ dependencies: list: '' pypi: count: 52 - list: '["sqlparse==0.5.5", "celery==5.6.3", "edx-opaque-keys[django]==4.0.0", - "dnspython==2.8.0", "edx-drf-extensions==10.6.0", "tomlkit==0.15.0", "tzlocal==5.3.1", - "click-plugins==1.1.1.2", "edx-django-utils==8.0.1", "semantic-version==2.10.0", - "django-waffle==5.0.0", "django-model-utils==5.0.0", "pymongo==4.17.0", - "django==5.2.14", "certifi==2026.4.22", "fastavro==1.12.2", "packaging==26.2", - "attrs==26.1.0", "pycparser==3.0", "vine==5.1.0", "openedx-events==11.2.0", - "click-repl==0.3.0", "kombu==5.6.2", "cffi==2.0.0", "django-crum==0.7.9", - "djangorestframework==3.17.1", "charset-normalizer==3.4.7", "tzdata==2026.2", - "stevedore==5.7.0", "pyjwt[crypto]==2.12.1", "click-didyoumean==0.3.1", - "edx-organizations==8.0.0", "asgiref==3.11.1", "psutil==7.2.2", "urllib3==2.7.0", - "billiard==4.2.4", "django-simple-history==3.11.0", "idna==3.15", "pynacl==1.6.2", - "six==1.17.0", "amqp==5.3.1", "click==8.4.0", "prompt-toolkit==3.0.52", - "drf-jwt==1.19.2", "cryptography==48.0.0", "wcwidth==0.7.0", "rules==3.5", - "python-dateutil==2.9.0.post0", "pillow==12.2.0", "edx-ccx-keys==2.0.2", - "requests==2.34.2", "typing-extensions==4.15.0"]' + list: '["idna==3.18", "drf-jwt==1.19.2", "typing-extensions==4.15.0", "kombu==5.6.2", + "edx-opaque-keys[django]==4.0.0", "pyjwt[crypto]==2.13.0", "sqlparse==0.5.5", + "wcwidth==0.8.0", "click-repl==0.3.0", "cryptography==48.0.0", "django-model-utils==5.0.0", + "cffi==2.0.0", "edx-ccx-keys==2.0.2", "python-dateutil==2.9.0.post0", + "pymongo==4.17.0", "django-simple-history==3.11.0", "pynacl==1.6.2", "tzdata==2026.2", + "django==5.2.15", "django-crum==0.7.9", "edx-organizations==8.0.0", "pillow==12.2.0", + "charset-normalizer==3.4.7", "certifi==2026.5.20", "semantic-version==2.10.0", + "billiard==4.2.4", "vine==5.1.0", "click-plugins==1.1.1.2", "tomlkit==0.15.0", + "tzlocal==5.3.1", "psutil==7.2.2", "rules==3.5", "dnspython==2.8.0", "djangorestframework==3.17.1", + "pycparser==3.0", "urllib3==2.7.0", "asgiref==3.11.1", "django-waffle==5.0.0", + "click-didyoumean==0.3.1", "openedx-events==11.2.0", "click==8.4.1", "celery==5.6.3", + "six==1.17.0", "edx-drf-extensions==10.6.0", "prompt-toolkit==3.0.52", + "edx-django-utils==8.0.1", "amqp==5.3.1", "packaging==26.2", "fastavro==1.12.2", + "attrs==26.1.0", "stevedore==5.8.0", "requests==2.34.2"]' pypi_all: count: 155 - list: '["edx-lint==6.1.0", "sqlparse==0.5.5", "pytest-cov==7.1.0", "dill==0.4.1", - "virtualenv==21.3.3", "edx-drf-extensions==10.6.0", "twine==6.2.0", "tomlkit==0.15.0", - "coverage[toml]==7.14.0", "django-waffle==5.0.0", "django-model-utils==5.0.0", - "pyproject-api==1.10.0", "click-log==0.4.0", "packaging==26.2", "jaraco-context==6.1.2", - "requests-toolbelt==1.0.0", "pycparser==3.0", "pathspec==1.1.1", "roman-numerals==4.1.0", - "sphinxcontrib-devhelp==2.0.0", "openedx-events==11.2.0", "click-repl==0.3.0", - "freezegun==1.5.5", "python-slugify==8.0.4", "djangorestframework==3.17.1", - "pygments==2.20.0", "edx-organizations==8.0.0", "pluggy==1.6.0", "djangorestframework-stubs==3.17.0", - "code-annotations==3.0.0", "pylint-plugin-utils==0.9.0", "snowballstemmer==3.0.1", - "sphinxcontrib-qthelp==2.0.0", "build==1.5.0", "six==1.17.0", "grimp==3.14", - "pip-tools==7.5.3", "click==8.4.0", "tox==4.54.0", "mysqlclient==2.2.8", - "rules==3.5", "django-stubs==6.0.4", "imagesize==2.0.0", "pillow==12.2.0", - "edx-ccx-keys==2.0.2", "filelock==3.29.0", "readme-renderer==44.0", "edx-opaque-keys[django]==4.0.0", - "pyyaml==6.0.3", "dnspython==2.8.0", "mypy==2.1.0", "ast-serialize==0.5.0", - "tzlocal==5.3.1", "click-plugins==1.1.1.2", "astroid==4.0.4", "beautifulsoup4==4.14.3", - "certifi==2026.4.22", "fastavro==1.12.2", "diff-cover==10.2.0", "pycodestyle==2.14.0", - "attrs==26.1.0", "sphinx==9.1.0", "kombu==5.6.2", "cffi==2.0.0", "sphinxcontrib-htmlhelp==2.1.0", - "pyproject-hooks==1.2.0", "django-debug-toolbar==6.3.0", "click-didyoumean==0.3.1", - "pyjwt[crypto]==2.12.1", "tomli-w==1.2.0", "billiard==4.2.4", "alabaster==1.0.0", - "jaraco-functools==4.5.0", "secretstorage==3.5.0", "sphinxcontrib-serializinghtml==2.0.0", - "pynacl==1.6.2", "mccabe==0.7.0", "prompt-toolkit==3.0.52", "wcwidth==0.7.0", - "sphinxcontrib-jsmath==1.0.1", "python-dateutil==2.9.0.post0", "requests==2.34.2", - "lxml[html-clean]==6.1.0", "path==16.16.0", "colorama==0.4.6", "pytest==9.0.3", - "semantic-version==2.10.0", "distlib==0.4.0", "isort==8.0.1", "pymongo==4.17.0", - "mock==5.2.0", "ddt==1.7.2", "jaraco-classes==3.4.0", "pprintpp==0.4.0", - "types-pyyaml==6.0.12.20260510", "accessible-pygments==0.0.5", "soupsieve==2.8.3", - "doc8==2.0.0", "babel==2.18.0", "asgiref==3.11.1", "urllib3==2.7.0", "sphinxcontrib-applehelp==2.0.0", - "idna==3.15", "id==1.6.1", "iniconfig==2.3.0", "cryptography==48.0.0", - "lxml-html-clean==0.4.4", "docutils==0.22.4", "typing-extensions==4.15.0", - "docutils==0.21.2", "pylint-celery==0.3", "celery==5.6.3", "rich==15.0.0", - "pip==26.1.1", "sphinxcontrib-django==2.5", "pydocstyle==6.3.0", "pylint==4.0.5", - "restructuredtext-lint==2.0.2", "edx-django-utils==8.0.1", "cachetools==7.1.2", - "platformdirs==4.9.6", "setuptools==82.0.1", "python-discovery==1.3.1", - "django==5.2.14", "markupsafe==3.0.3", "pytest-django==4.12.0", "vine==5.1.0", - "import-linter==2.11", "django-crum==0.7.9", "chardet==7.4.3", "charset-normalizer==3.4.7", - "librt==0.11.0", "rfc3986==2.0.0", "tzdata==2026.2", "stevedore==5.7.0", - "markdown-it-py==4.2.0", "nh3==0.3.5", "jinja2==3.1.6", "psutil==7.2.2", - "text-unidecode==1.3", "django-simple-history==3.11.0", "keyring==25.7.0", - "mdurl==0.1.2", "wheel==0.47.0", "pylint-django==2.7.0", "django-stubs-ext==6.0.4", - "amqp==5.3.1", "mypy-extensions==1.1.0", "jeepney==0.9.0", "sphinx-book-theme==1.2.0", - "more-itertools==11.0.2", "polib==1.2.0", "drf-jwt==1.19.2", "pydata-sphinx-theme==0.16.1", - "edx-i18n-tools==2.0.0"]' + list: '["lxml-html-clean==0.4.5", "typing-extensions==4.15.0", "kombu==5.6.2", + "sqlparse==0.5.5", "python-discovery==1.4.0", "cachetools==7.1.4", "pprintpp==0.4.0", + "pydocstyle==6.3.0", "coverage[toml]==7.14.1", "tzdata==2026.2", "nh3==0.3.5", + "pyproject-hooks==1.2.0", "alabaster==1.0.0", "tomli-w==1.2.0", "jaraco-functools==4.5.0", + "vine==5.1.0", "doc8==2.0.0", "ast-serialize==0.5.0", "markupsafe==3.0.3", + "pyproject-api==1.10.1", "jinja2==3.1.6", "id==1.6.1", "build==1.5.0", + "librt==0.11.0", "restructuredtext-lint==2.0.2", "django-stubs==6.0.5", + "mysqlclient==2.2.8", "mypy-extensions==1.1.0", "openedx-events==11.2.0", + "click==8.4.1", "celery==5.6.3", "six==1.17.0", "prompt-toolkit==3.0.52", + "edx-i18n-tools==2.0.0", "text-unidecode==1.3", "fastavro==1.12.2", "wheel==0.47.0", + "snowballstemmer==3.1.1", "stevedore==5.8.0", "drf-jwt==1.19.2", "imagesize==2.0.0", + "jaraco-context==6.1.2", "click-repl==0.3.0", "docutils==0.21.2", "cryptography==48.0.0", + "sphinxcontrib-django==2.5", "lxml[html-clean]==6.1.1", "django-stubs-ext==6.0.5", + "python-dateutil==2.9.0.post0", "pip-tools==7.5.3", "pyyaml==6.0.3", "readme-renderer==44.0", + "setuptools==82.0.1", "django-crum==0.7.9", "sphinx==9.1.0", "sphinx-book-theme==1.2.0", + "pip==26.1.2", "filelock==3.29.1", "code-annotations==3.0.0", "pillow==12.2.0", + "mccabe==0.7.0", "chardet==7.4.3", "roman-numerals==4.1.0", "charset-normalizer==3.4.7", + "certifi==2026.5.20", "docutils==0.23", "rules==3.5", "dnspython==2.8.0", + "markdown-it-py==4.2.0", "pycparser==3.0", "pytest==9.0.3", "rich==15.0.0", + "sphinxcontrib-serializinghtml==2.0.0", "isort==8.0.1", "pylint-django==2.7.0", + "pygments==2.20.0", "import-linter==2.11", "path==16.16.0", "pytest-django==4.12.0", + "accessible-pygments==0.0.5", "packaging==26.2", "pydata-sphinx-theme==0.16.1", + "attrs==26.1.0", "polib==1.2.0", "sphinxcontrib-qthelp==2.0.0", "tox==4.55.1", + "pyjwt[crypto]==2.13.0", "djangorestframework-stubs==3.17.0", "jaraco-classes==3.4.0", + "django-model-utils==5.0.0", "cffi==2.0.0", "edx-ccx-keys==2.0.2", "django-simple-history==3.11.0", + "python-slugify==8.0.4", "ddt==1.7.2", "mypy==2.1.0", "freezegun==1.5.5", + "sphinxcontrib-applehelp==2.0.0", "more-itertools==11.1.0", "virtualenv==21.4.2", + "tomlkit==0.15.0", "iniconfig==2.3.0", "sphinxcontrib-htmlhelp==2.1.0", + "djangorestframework==3.17.1", "babel==2.18.0", "sphinxcontrib-devhelp==2.0.0", + "distlib==0.4.1", "beautifulsoup4==4.15.0", "click-didyoumean==0.3.1", + "dill==0.4.1", "pathspec==1.1.1", "twine==6.2.0", "edx-drf-extensions==10.6.0", + "pylint-plugin-utils==0.9.0", "edx-django-utils==8.0.1", "amqp==5.3.1", + "secretstorage==3.5.0", "soupsieve==2.8.4", "click-log==0.4.0", "requests==2.34.2", + "edx-lint==6.1.0", "idna==3.18", "astroid==4.0.4", "platformdirs==4.10.0", + "pylint-celery==0.3", "edx-opaque-keys[django]==4.0.0", "pycodestyle==2.14.0", + "wcwidth==0.8.0", "rfc3986==2.0.0", "mock==5.2.0", "django-debug-toolbar==6.3.0", + "mdurl==0.1.2", "colorama==0.4.6", "pymongo==4.17.0", "pynacl==1.6.2", + "keyring==25.7.0", "sphinxcontrib-jsmath==1.0.1", "pytest-cov==7.1.0", + "pylint==4.0.5", "django==5.2.15", "edx-organizations==8.0.0", "diff-cover==10.3.0", + "semantic-version==2.10.0", "billiard==4.2.4", "click-plugins==1.1.1.2", + "jeepney==0.9.0", "tzlocal==5.3.1", "psutil==7.2.2", "urllib3==2.7.0", + "asgiref==3.11.1", "django-waffle==5.0.0", "grimp==3.14", "requests-toolbelt==1.0.0", + "pluggy==1.6.0", "types-pyyaml==6.0.12.20260518"]' django_packages: django_42: count: 10 - list: '["djangorestframework", "code-annotations", "django-debug-toolbar", - "edx-django-utils", "edx-drf-extensions", "edx-i18n-tools", "edx-organizations", - "pylint-django", "pytest-django", "django-waffle"]' + list: '["edx-drf-extensions", "djangorestframework", "pytest-django", "code-annotations", + "django-debug-toolbar", "pylint-django", "edx-i18n-tools", "django-waffle", + "edx-django-utils", "edx-organizations"]' total: count: 15 - list: '["djangorestframework", "code-annotations", "django-debug-toolbar", - "django-model-utils", "edx-django-utils", "edx-drf-extensions", "edx-i18n-tools", - "edx-organizations", "django-simple-history", "pylint-django", "django-crum", - "pytest-django", "django-waffle", "rules", "drf-jwt"]' + list: '["edx-drf-extensions", "djangorestframework", "drf-jwt", "pytest-django", + "rules", "django-model-utils", "code-annotations", "django-simple-history", + "django-debug-toolbar", "pylint-django", "django-crum", "edx-i18n-tools", + "django-waffle", "edx-django-utils", "edx-organizations"]' upgraded: count: 7 - list: '["code-annotations", "django-debug-toolbar", "edx-django-utils", "edx-drf-extensions", - "edx-i18n-tools", "edx-organizations", "django-waffle"]' + list: '["edx-drf-extensions", "code-annotations", "django-debug-toolbar", + "edx-i18n-tools", "django-waffle", "edx-django-utils", "edx-organizations"]' docs: build_badge: true python_version: null @@ -123,27 +123,16 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 15 - build_details: '{"total_duration": "13484 minutes 5 seconds", "checks": [{"name": - "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "360 minutes 15 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52, - 8)", "duration": "3 minutes 47 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, quality, 8)", "duration": "2 minutes 11 seconds"}, {"name": "call-upgrade-python-requirements-workflow - / upgrade_requirements", "duration": "1 minutes 19 seconds"}, {"name": "tests - (ubuntu-latest, 3.12, package, 8)", "duration": "0 minutes 58 seconds"}, {"name": - "update-pip-graph", "duration": "0 minutes 47 seconds"}, {"name": "Lint Python - Imports", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", "duration": - "0 minutes 26 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 51 seconds"}]}' + branch_count: 13 + build_details: '{"total_duration": "1 minutes 2 seconds", "checks": [{"name": + "tests (ubuntu-latest, 3.12, package, 8)", "duration": "1 minutes 2 seconds"}, + {"name": "Lint Python Imports", "duration": "0 minutes 34 seconds"}, {"name": + "update-pip-graph", "duration": "0 minutes 32 seconds"}]}' code_of_conduct: Other created_at: 2021-12-12 17:41:35 default_branch: main description: Foundational Django models and APIs for a teaching and learning platform. - disk_usage_kb: 2417 + disk_usage_kb: 2456 fork_count: 26 has_issues: true has_wiki: false @@ -152,9 +141,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 01:12:06 + last_push: 2026-06-08 06:49:47 license: GNU AGPLv3 - pulls_count: 12 + pulls_count: 11 github_actions: true language_bytes: css: 0 @@ -162,7 +151,7 @@ language_bytes: html: 0 javascript: 0 makefile: 4335 - python: 1653456 + python: 1654739 shell: 0 makefile: pip-installed: false @@ -181,6 +170,7 @@ readme: bad_links: - 'https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0049-django-app-patterns.html: 404' + - 'https://github.com/openedx/openedx-core/blob/master/LICENSE.txt: 504' getting-help: true good_links: - https://2021.djangocon.us/talks/scaling-django-to-500-apps/ @@ -199,7 +189,6 @@ readme: - https://openedx-core.readthedocs.io/en/latest/ - https://img.shields.io/pypi/pyversions/openedx-core.svg - https://img.shields.io/github/license/edx/openedx-core.svg - - https://github.com/openedx/openedx-core/blob/master/LICENSE.txt irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/openedx-demo-course_repo_health.yaml b/individual_repo_data/openedx/openedx-demo-course_repo_health.yaml index 4d04084e..5bc9c9ee 100644 --- a/individual_repo_data/openedx/openedx-demo-course_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-demo-course_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -63,12 +63,13 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 27 - build_details: '{"total_duration": "15921 minutes 45 seconds", "checks": [{"name": + build_details: '{"total_duration": "24686 minutes 53 seconds", "checks": [{"name": "Dependabot", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 23 seconds"}, {"name": "source_and_tars_match", "duration": - "0 minutes 6 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 23 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 19 seconds"}, {"name": "source_and_tars_match", "duration": "0 minutes + 6 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", diff --git a/individual_repo_data/openedx/openedx-events_repo_health.yaml b/individual_repo_data/openedx/openedx-events_repo_health.yaml index cd6698c0..f4a18140 100644 --- a/individual_repo_data/openedx/openedx-events_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-events_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,58 +22,58 @@ dependencies: list: '' pypi: count: 20 - list: '["django==5.2.14", "attrs==26.1.0", "psutil==7.2.2", "cffi==2.0.0", - "django-crum==0.7.9", "click==8.4.1", "edx-opaque-keys[django]==4.0.0", - "asgiref==3.11.1", "six==1.17.0", "fastavro==1.12.2", "pycparser==3.0", - "stevedore==5.8.0", "pymongo==4.17.0", "edx-ccx-keys==2.0.2", "dnspython==2.8.0", - "pynacl==1.6.2", "sqlparse==0.5.5", "typing-extensions==4.15.0", "edx-django-utils==8.0.1", - "django-waffle==5.0.0"]' + list: '["dnspython==2.8.0", "attrs==26.1.0", "edx-ccx-keys==2.0.2", "django-waffle==5.0.0", + "cffi==2.0.0", "click==8.4.1", "edx-django-utils==8.0.1", "pymongo==4.17.0", + "django==5.2.14", "typing-extensions==4.15.0", "six==1.17.0", "sqlparse==0.5.5", + "stevedore==5.8.0", "fastavro==1.12.2", "edx-opaque-keys[django]==4.0.0", + "psutil==7.2.2", "django-crum==0.7.9", "pynacl==1.6.2", "asgiref==3.11.1", + "pycparser==3.0"]' pypi_all: count: 121 - list: '["rich==15.0.0", "isort==8.0.1", "dill==0.4.1", "attrs==26.1.0", "psutil==7.2.2", - "sphinx-book-theme==1.2.0", "coverage[toml]==7.14.0", "click-log==0.4.0", - "edx-opaque-keys[django]==4.0.0", "starlette==1.1.0", "sphinxcontrib-serializinghtml==2.0.0", - "sphinx-autobuild==2025.8.25", "iniconfig==2.3.0", "soupsieve==2.8.4", - "babel==2.18.0", "code-annotations==3.0.0", "mccabe==0.7.0", "pip-tools==7.5.3", - "accessible-pygments==0.0.5", "imagesize==2.0.0", "pymongo==4.17.0", "jaraco-context==6.1.2", - "edx-ccx-keys==2.0.2", "anyio==4.13.0", "pylint-django==2.7.0", "colorama==0.4.6", - "sqlparse==0.5.5", "typing-extensions==4.15.0", "pydata-sphinx-theme==0.16.1", - "python-discovery==1.3.1", "virtualenv==21.3.3", "tomlkit==0.15.0", "markdown-it-py==4.2.0", - "build==1.5.0", "requests-toolbelt==1.0.0", "sphinx-copybutton==0.5.2", - "edx-lint==6.1.0", "pylint-plugin-utils==0.9.0", "pytest-cov==7.1.0", - "keyring==25.7.0", "platformdirs==4.9.6", "idna==3.16", "pygments==2.20.0", - "watchfiles==1.2.0", "fastavro==1.12.2", "python-slugify==8.0.4", "pip==26.1.1", - "text-unidecode==1.3", "h11==0.16.0", "stevedore==5.8.0", "diff-cover==10.2.1", - "ruff==0.15.14", "chardet==7.4.3", "dnspython==2.8.0", "markupsafe==3.0.3", - "websockets==16.0", "roman-numerals==4.1.0", "edx-django-utils==8.0.1", - "sphinxcontrib-mermaid==2.0.2", "packaging==26.2", "django-waffle==5.0.0", - "jaraco-functools==4.5.0", "sphinx==9.1.0", "sphinxcontrib-devhelp==2.0.0", - "docutils==0.22.4", "nh3==0.3.5", "cffi==2.0.0", "rfc3986==2.0.0", "click==8.4.1", - "pycodestyle==2.14.0", "wheel==0.47.0", "pylint==4.0.5", "jaraco-classes==3.4.0", - "charset-normalizer==3.4.7", "secretstorage==3.5.0", "pyproject-hooks==1.2.0", - "pyproject-api==1.10.0", "pluggy==1.6.0", "jinja2==3.1.6", "requests==2.34.2", - "pytest==9.0.3", "snowballstemmer==3.1.0", "mdurl==0.1.2", "beautifulsoup4==4.14.3", - "pytest-django==4.12.0", "tox==4.54.0", "readme-renderer==44.0", "smmap==5.0.3", - "cachetools==7.1.4", "cryptography==48.0.0", "django==5.2.14", "urllib3==2.7.0", - "sphinxcontrib-applehelp==2.0.0", "django-crum==0.7.9", "filelock==3.29.0", - "astroid==4.0.4", "doc8==2.0.0", "id==1.6.1", "asgiref==3.11.1", "more-itertools==11.1.0", - "tomli-w==1.2.0", "six==1.17.0", "setuptools==82.0.1", "ddt==1.7.2", "alabaster==1.0.0", - "pycparser==3.0", "sphinxcontrib-qthelp==2.0.0", "uvicorn==0.48.0", "distlib==0.4.0", - "certifi==2026.5.20", "docutils==0.21.2", "pylint-celery==0.3", "restructuredtext-lint==2.0.2", - "pynacl==1.6.2", "twine==6.2.0", "jeepney==0.9.0", "gitdb==4.0.12", "sphinxcontrib-jsmath==1.0.1", - "pyyaml==6.0.3", "gitpython==3.1.50", "sphinxcontrib-htmlhelp==2.1.0"]' + list: '["alabaster==1.0.0", "wheel==0.47.0", "jaraco-context==6.1.2", "soupsieve==2.8.4", + "idna==3.17", "coverage[toml]==7.14.1", "ruff==0.15.15", "pycodestyle==2.14.0", + "pytest==9.0.3", "babel==2.18.0", "distlib==0.4.0", "edx-django-utils==8.0.1", + "pluggy==1.6.0", "watchfiles==1.2.0", "restructuredtext-lint==2.0.2", + "sphinxcontrib-jsmath==1.0.1", "pymongo==4.17.0", "rfc3986==2.0.0", "django==5.2.14", + "starlette==1.2.1", "tomli-w==1.2.0", "typing-extensions==4.15.0", "ddt==1.7.2", + "jinja2==3.1.6", "tomlkit==0.15.0", "platformdirs==4.10.0", "twine==6.2.0", + "more-itertools==11.1.0", "uvicorn==0.48.0", "sqlparse==0.5.5", "iniconfig==2.3.0", + "cachetools==7.1.4", "pygments==2.20.0", "jaraco-functools==4.5.0", "sphinx-autobuild==2025.8.25", + "markdown-it-py==4.2.0", "asgiref==3.11.1", "pylint-django==2.7.0", "gitpython==3.1.50", + "requests==2.34.2", "id==1.6.1", "packaging==26.2", "websockets==16.0", + "build==1.5.0", "pylint-celery==0.3", "nh3==0.3.5", "pyproject-hooks==1.2.0", + "docutils==0.23", "smmap==5.0.3", "requests-toolbelt==1.0.0", "code-annotations==3.0.0", + "filelock==3.29.0", "virtualenv==21.4.2", "sphinx-book-theme==1.2.0", + "pylint-plugin-utils==0.9.0", "sphinx==9.1.0", "accessible-pygments==0.0.5", + "docutils==0.21.2", "mdurl==0.1.2", "pydata-sphinx-theme==0.16.1", "cryptography==48.0.0", + "certifi==2026.5.20", "sphinxcontrib-qthelp==2.0.0", "fastavro==1.12.2", + "python-discovery==1.4.0", "sphinxcontrib-serializinghtml==2.0.0", "edx-lint==6.1.0", + "sphinxcontrib-htmlhelp==2.1.0", "mccabe==0.7.0", "charset-normalizer==3.4.7", + "imagesize==2.0.0", "diff-cover==10.3.0", "cffi==2.0.0", "snowballstemmer==3.1.0", + "secretstorage==3.5.0", "pip==26.1.2", "jeepney==0.9.0", "isort==8.0.1", + "colorama==0.4.6", "six==1.17.0", "setuptools==82.0.1", "edx-opaque-keys[django]==4.0.0", + "pylint==4.0.5", "dill==0.4.1", "chardet==7.4.3", "django-crum==0.7.9", + "keyring==25.7.0", "pynacl==1.6.2", "sphinx-copybutton==0.5.2", "beautifulsoup4==4.14.3", + "markupsafe==3.0.3", "pycparser==3.0", "roman-numerals==4.1.0", "dnspython==2.8.0", + "pyproject-api==1.10.1", "rich==15.0.0", "attrs==26.1.0", "pip-tools==7.5.3", + "click-log==0.4.0", "edx-ccx-keys==2.0.2", "django-waffle==5.0.0", "sphinxcontrib-mermaid==2.0.2", + "sphinxcontrib-applehelp==2.0.0", "doc8==2.0.0", "click==8.4.1", "astroid==4.0.4", + "pytest-cov==7.1.0", "text-unidecode==1.3", "sphinxcontrib-devhelp==2.0.0", + "h11==0.16.0", "python-slugify==8.0.4", "anyio==4.13.0", "pyyaml==6.0.3", + "tox==4.55.0", "stevedore==5.8.0", "jaraco-classes==3.4.0", "psutil==7.2.2", + "gitdb==4.0.12", "readme-renderer==44.0", "pytest-django==4.12.0", "urllib3==2.7.0"]' django_packages: django_42: count: 5 - list: '["code-annotations", "django-waffle", "edx-django-utils", "pylint-django", - "pytest-django"]' + list: '["edx-django-utils", "pytest-django", "pylint-django", "code-annotations", + "django-waffle"]' total: count: 6 - list: '["code-annotations", "django-waffle", "edx-django-utils", "pylint-django", - "django-crum", "pytest-django"]' + list: '["edx-django-utils", "pytest-django", "django-crum", "pylint-django", + "code-annotations", "django-waffle"]' upgraded: count: 3 - list: '["edx-django-utils", "code-annotations", "django-waffle"]' + list: '["code-annotations", "edx-django-utils", "django-waffle"]' docs: build_badge: true python_version: null @@ -100,22 +100,25 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 23 - build_details: '{"total_duration": "2003 minutes 58 seconds", "checks": [{"name": + branch_count: 25 + build_details: '{"total_duration": "9671 minutes 18 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 23 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", - "duration": "0 minutes 46 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - docs)", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django42)", "duration": "0 minutes 31 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django52)", "duration": "0 minutes 27 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}]}' + "1 minutes 22 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", + "duration": "0 minutes 51 seconds"}, {"name": "tests (ubuntu-latest, 3.12, + docs)", "duration": "0 minutes 44 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, django52)", "duration": "0 minutes 35 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, + django42)", "duration": "0 minutes 33 seconds"}, {"name": "update-pip-graph", + "duration": "0 minutes 29 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 17 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2021-04-07 23:40:38 default_branch: main description: Open edX events from the Hooks Extensions Framework - disk_usage_kb: 1416 + disk_usage_kb: 1424 fork_count: 32 has_issues: true has_wiki: false @@ -124,9 +127,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:54:10 + last_push: 2026-06-08 06:42:37 license: Apache License 2.0 - pulls_count: 9 + pulls_count: 11 github_actions: true language_bytes: css: 0 @@ -150,14 +153,15 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/openedx-events/issues: 504' + - 'https://github.com/openedx/openedx-events/blob/main/LICENSE.txt: 504' getting-help: true good_links: - https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html - https://docs.openedx.org/en/latest/developers/how-tos/get-ready-for-python-dev.html - https://openedx-events.readthedocs.io/en/latest/ - https://discuss.openedx.org - - https://github.com/openedx/openedx-events/issues - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.org/getting-help @@ -173,7 +177,6 @@ readme: - https://readthedocs.org/projects/openedx-events/badge/?version=latest - https://img.shields.io/pypi/pyversions/openedx-events.svg - https://img.shields.io/github/license/openedx/openedx-events.svg - - https://github.com/openedx/openedx-events/blob/main/LICENSE.txt - https://img.shields.io/badge/Status-Maintained-brightgreen irc-missing: true mailing-list-missing: true diff --git a/individual_repo_data/openedx/openedx-filters_repo_health.yaml b/individual_repo_data/openedx/openedx-filters_repo_health.yaml index 05b8be2a..139e6995 100644 --- a/individual_repo_data/openedx/openedx-filters_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-filters_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,49 +22,51 @@ dependencies: list: '' pypi: count: 8 - list: '["django==5.2.14", "stevedore==5.7.0", "sqlparse==0.5.5", "typing-extensions==4.15.0", - "asgiref==3.11.1", "pymongo==4.17.0", "dnspython==2.8.0", "edx-opaque-keys[django]==4.0.0"]' + list: '["typing-extensions==4.15.0", "edx-opaque-keys[django]==4.0.0", "sqlparse==0.5.5", + "pymongo==4.17.0", "asgiref==3.11.1", "django==5.2.14", "stevedore==5.7.0", + "dnspython==2.8.0"]' pypi_all: count: 120 - list: '["coverage[toml]==7.14.0", "sphinx-book-theme==1.2.0", "jeepney==0.9.0", - "starlette==1.0.0", "pathspec==1.1.1", "ddt==1.7.2", "jinja2==3.1.6", - "requests==2.33.1", "iniconfig==2.3.0", "cachetools==7.1.1", "dill==0.4.1", - "imagesize==2.0.0", "nh3==0.3.5", "packaging==26.2", "pytest==9.0.3", - "docutils==0.21.2", "cryptography==48.0.0", "build==1.5.0", "django==5.2.14", - "isort==8.0.1", "mccabe==0.7.0", "secretstorage==3.5.0", "readme-renderer==44.0", - "asgiref==3.11.1", "pytest-cov==7.1.0", "markupsafe==3.0.3", "python-slugify==8.0.4", - "sphinxcontrib-htmlhelp==2.1.0", "platformdirs==4.9.6", "urllib3==2.7.0", - "alabaster==1.0.0", "pylint==4.0.5", "sphinx-copybutton==0.5.2", "jaraco-classes==3.4.0", - "pytest-django==4.12.0", "chardet==7.4.3", "h11==0.16.0", "six==1.17.0", - "pycodestyle==2.14.0", "roman-numerals==4.1.0", "twine==6.2.0", "sphinxcontrib-mermaid==2.0.2", - "attrs==26.1.0", "certifi==2026.4.22", "sphinx-autobuild==2025.8.25", - "astroid==4.0.4", "tox==4.53.1", "pylint-plugin-utils==0.9.0", "filelock==3.29.0", - "more-itertools==11.0.2", "cffi==2.0.0", "pluggy==1.6.0", "sphinxcontrib-jsmath==1.0.1", - "sphinx==9.1.0", "click-log==0.4.0", "django-stubs-ext==6.0.4", "restructuredtext-lint==2.0.2", - "babel==2.18.0", "pydata-sphinx-theme==0.16.1", "uvicorn==0.46.0", "diff-cover==10.2.0", - "setuptools==82.0.1", "soupsieve==2.8.3", "text-unidecode==1.3", "tomli-w==1.2.0", - "scriv==1.8.0", "mdurl==0.1.2", "ast-serialize==0.3.0", "pyyaml==6.0.3", - "sphinxcontrib-applehelp==2.0.0", "mypy==2.0.0", "snowballstemmer==3.0.1", - "doc8==2.0.0", "beautifulsoup4==4.14.3", "idna==3.14", "pyproject-api==1.10.0", - "pymongo==4.17.0", "pip-tools==7.5.3", "code-annotations==3.0.0", "dnspython==2.8.0", - "charset-normalizer==3.4.7", "edx-opaque-keys[django]==4.0.0", "wheel==0.47.0", - "markdown-it-py==4.2.0", "virtualenv==21.3.1", "rich==15.0.0", "accessible-pygments==0.0.5", - "pyproject-hooks==1.2.0", "jaraco-functools==4.4.0", "django-stubs==6.0.4", - "tomlkit==0.15.0", "requests-toolbelt==1.0.0", "edx-lint==6.1.0", "websockets==16.0", - "sphinxcontrib-devhelp==2.0.0", "docutils==0.22.4", "id==1.6.1", "python-discovery==1.3.0", - "watchfiles==1.1.1", "distlib==0.4.0", "mypy-extensions==1.1.0", "typing-extensions==4.15.0", - "sqlparse==0.5.5", "pip==26.1.1", "sphinxcontrib-serializinghtml==2.0.0", - "keyring==25.7.0", "colorama==0.4.6", "pylint-django==2.7.0", "pycparser==3.0", - "anyio==4.13.0", "pylint-celery==0.3", "ruff==0.15.12", "stevedore==5.7.0", - "click==8.3.3", "jaraco-context==6.1.2", "pygments==2.20.0", "types-pyyaml==6.0.12.20260510", - "rfc3986==2.0.0", "sphinxcontrib-qthelp==2.0.0", "librt==0.11.0"]' + list: '["filelock==3.29.0", "tox==4.53.1", "sphinx-autobuild==2025.8.25", + "pytest-cov==7.1.0", "isort==8.0.1", "id==1.6.1", "more-itertools==11.0.2", + "tomli-w==1.2.0", "mypy==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", + "ast-serialize==0.3.0", "mccabe==0.7.0", "dill==0.4.1", "text-unidecode==1.3", + "charset-normalizer==3.4.7", "soupsieve==2.8.3", "code-annotations==3.0.0", + "pylint-celery==0.3", "sphinxcontrib-qthelp==2.0.0", "platformdirs==4.9.6", + "click==8.3.3", "pylint-plugin-utils==0.9.0", "django-stubs-ext==6.0.4", + "pytest==9.0.3", "uvicorn==0.46.0", "watchfiles==1.1.1", "attrs==26.1.0", + "dnspython==2.8.0", "pyproject-api==1.10.0", "pip-tools==7.5.3", "ddt==1.7.2", + "cryptography==48.0.0", "click-log==0.4.0", "rfc3986==2.0.0", "packaging==26.2", + "doc8==2.0.0", "roman-numerals==4.1.0", "mypy-extensions==1.1.0", "build==1.5.0", + "pyyaml==6.0.3", "jeepney==0.9.0", "pyproject-hooks==1.2.0", "jaraco-functools==4.4.0", + "restructuredtext-lint==2.0.2", "beautifulsoup4==4.14.3", "edx-opaque-keys[django]==4.0.0", + "jaraco-classes==3.4.0", "requests-toolbelt==1.0.0", "sphinx==9.1.0", + "markupsafe==3.0.3", "pluggy==1.6.0", "anyio==4.13.0", "requests==2.33.1", + "nh3==0.3.5", "websockets==16.0", "cachetools==7.1.1", "coverage[toml]==7.14.0", + "sphinx-book-theme==1.2.0", "keyring==25.7.0", "distlib==0.4.0", "urllib3==2.7.0", + "django-stubs==6.0.4", "pip==26.1.1", "virtualenv==21.3.1", "readme-renderer==44.0", + "alabaster==1.0.0", "docutils==0.21.2", "wheel==0.47.0", "pytest-django==4.12.0", + "chardet==7.4.3", "starlette==1.0.0", "mdurl==0.1.2", "babel==2.18.0", + "diff-cover==10.2.0", "pylint-django==2.7.0", "pymongo==4.17.0", "iniconfig==2.3.0", + "django==5.2.14", "sphinxcontrib-htmlhelp==2.1.0", "stevedore==5.7.0", + "pygments==2.20.0", "cffi==2.0.0", "typing-extensions==4.15.0", "idna==3.14", + "markdown-it-py==4.2.0", "docutils==0.22.4", "imagesize==2.0.0", "colorama==0.4.6", + "python-slugify==8.0.4", "secretstorage==3.5.0", "certifi==2026.4.22", + "scriv==1.8.0", "pydata-sphinx-theme==0.16.1", "edx-lint==6.1.0", "sqlparse==0.5.5", + "jinja2==3.1.6", "sphinx-copybutton==0.5.2", "h11==0.16.0", "sphinxcontrib-applehelp==2.0.0", + "ruff==0.15.12", "librt==0.11.0", "tomlkit==0.15.0", "pycparser==3.0", + "accessible-pygments==0.0.5", "snowballstemmer==3.0.1", "pathspec==1.1.1", + "pylint==4.0.5", "twine==6.2.0", "asgiref==3.11.1", "setuptools==82.0.1", + "rich==15.0.0", "types-pyyaml==6.0.12.20260510", "sphinxcontrib-mermaid==2.0.2", + "pycodestyle==2.14.0", "six==1.17.0", "sphinxcontrib-jsmath==1.0.1", "jaraco-context==6.1.2", + "python-discovery==1.3.0", "astroid==4.0.4", "sphinxcontrib-devhelp==2.0.0"]' django_packages: django_42: count: 3 - list: '["pytest-django", "code-annotations", "pylint-django"]' + list: '["pytest-django", "pylint-django", "code-annotations"]' total: count: 3 - list: '["pytest-django", "code-annotations", "pylint-django"]' + list: '["pytest-django", "pylint-django", "code-annotations"]' upgraded: count: 1 list: '["code-annotations"]' @@ -95,24 +97,27 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 10 - build_details: '{"total_duration": "2018 minutes 52 seconds", "checks": [{"name": + build_details: '{"total_duration": "6289 minutes 48 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 27 seconds"}, {"name": "tests (ubuntu-latest, 3.11, py311-django52)", - "duration": "0 minutes 50 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - docs)", "duration": "0 minutes 47 seconds"}, {"name": "tests (ubuntu-latest, - 3.11, py311-django42)", "duration": "0 minutes 45 seconds"}, {"name": "tests - (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 43 seconds"}, {"name": - "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 34 seconds"}, - {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 28 - seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 - minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "-1 minutes 50 seconds"}]}' + "1 minutes 9 seconds"}, {"name": "tests (ubuntu-latest, 3.11, py311-django52)", + "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.12, + quality)", "duration": "0 minutes 48 seconds"}, {"name": "tests (ubuntu-latest, + 3.11, py311-django42)", "duration": "0 minutes 48 seconds"}, {"name": "tests + (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 39 seconds"}, {"name": + "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 32 seconds"}, + {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 30 + seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 53 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 53 seconds"}]}' code_of_conduct: Other created_at: 2021-04-21 17:24:26 default_branch: main description: 'Open edX filters from the Hooks Extensions Framework ' - disk_usage_kb: 496 + disk_usage_kb: 501 fork_count: 26 has_issues: true has_wiki: false @@ -121,9 +126,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 01:09:57 + last_push: 2026-06-08 01:09:07 license: GNU AGPLv3 - pulls_count: 12 + pulls_count: 11 github_actions: true language_bytes: css: 0 @@ -131,7 +136,7 @@ language_bytes: html: 0 javascript: 0 makefile: 3421 - python: 139744 + python: 139714 shell: 0 makefile: pip-installed: true @@ -147,7 +152,10 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/openedx-filters/actions/workflows/ci.yml/badge.svg?branch=main: + 504' + - 'https://github.com/openedx/openedx-filters/blob/main/LICENSE.txt: 504' getting-help: true good_links: - https://open-edx-proposals.readthedocs.io/en/latest/oep-0050-hooks-extension-framework.html @@ -163,7 +171,6 @@ readme: - https://backstage.openedx.org/catalog/default/component/openedx-filters - https://img.shields.io/pypi/v/openedx-filters.svg - https://pypi.python.org/pypi/openedx-filters/ - - https://github.com/openedx/openedx-filters/actions/workflows/ci.yml/badge.svg?branch=main - https://github.com/openedx/openedx-filters/actions/workflows/ci.yml - https://codecov.io/github/openedx/openedx-filters/coverage.svg?branch=main - https://codecov.io/github/openedx/openedx-filters?branch=main @@ -171,7 +178,6 @@ readme: - https://openedx-filters.readthedocs.io/en/latest/ - https://img.shields.io/pypi/pyversions/openedx-filters.svg - https://img.shields.io/github/license/openedx/openedx-filters.svg - - https://github.com/openedx/openedx-filters/blob/main/LICENSE.txt - https://img.shields.io/badge/Status-Maintained-brightgreen irc-missing: true mailing-list-missing: true diff --git a/individual_repo_data/openedx/openedx-k8s-harmony_repo_health.yaml b/individual_repo_data/openedx/openedx-k8s-harmony_repo_health.yaml index 4f99c46a..10781c2a 100644 --- a/individual_repo_data/openedx/openedx-k8s-harmony_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-k8s-harmony_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -63,17 +63,23 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 19 - build_details: '{"total_duration": "8535 minutes 40 seconds", "checks": [{"name": + build_details: '{"total_duration": "18648 minutes 56 seconds", "checks": [{"name": "release", "duration": "0 minutes 7 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}]}' + / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 59 seconds"}]}' code_of_conduct: Other created_at: 2022-11-25 18:03:47 default_branch: main description: A Prototype Helm Chart for deploying multiple Open edX instances (via Tutor) onto a cluster. - disk_usage_kb: 1790 + disk_usage_kb: 1791 fork_count: 19 has_issues: true has_wiki: false @@ -82,7 +88,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-26 10:09:18 + last_push: 2026-06-03 23:51:30 license: GNU AGPLv3 pulls_count: 16 github_actions: false diff --git a/individual_repo_data/openedx/openedx-ledger_repo_health.yaml b/individual_repo_data/openedx/openedx-ledger_repo_health.yaml index 8b9aff17..93256496 100644 --- a/individual_repo_data/openedx/openedx-ledger_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-ledger_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,76 +22,75 @@ dependencies: list: '' pypi: count: 47 - list: '["idna==3.14", "django-filter==25.2", "edx-opaque-keys[django]==4.0.0", - "djangorestframework==3.17.1", "pynacl==1.6.2", "cryptography==48.0.0", - "dnspython==2.8.0", "mysqlclient==2.2.8", "psutil==7.2.2", "openedx-events==11.2.0", - "stevedore==5.7.0", "urllib3==2.7.0", "charset-normalizer==3.4.7", "semantic-version==2.10.0", - "ply==3.11", "rules==3.5", "django-object-actions==5.0.1", "edx-django-release-util==1.5.0", - "fastavro==1.12.2", "edx-drf-extensions==10.6.0", "redis==7.4.0", "six==1.17.0", - "pyyaml==6.0.3", "drf-jwt==1.19.2", "typing-extensions==4.15.0", "pymongo==4.17.0", - "pycparser==3.0", "sqlparse==0.5.5", "django-model-utils==5.0.0", "edx-rbac==3.0.0", - "django-crum==0.7.9", "django-waffle==5.0.0", "pytz==2026.2", "cffi==2.0.0", - "django==5.2.14", "click==8.3.3", "pyjwt[crypto]==2.12.1", "edx-django-utils==8.0.1", - "requests==2.33.1", "asgiref==3.11.1", "djangoql==0.19.1", "jsonfield2==4.0.0.post0", - "edx-ccx-keys==2.0.2", "certifi==2026.4.22", "attrs==26.1.0", "django-simple-history==3.11.0", - "django-extensions==4.1"]' + list: '["stevedore==5.7.0", "drf-jwt==1.19.2", "dnspython==2.8.0", "rules==3.5", + "urllib3==2.7.0", "certifi==2026.4.22", "semantic-version==2.10.0", "pyyaml==6.0.3", + "cffi==2.0.0", "asgiref==3.11.1", "cryptography==48.0.0", "djangoql==0.19.1", + "edx-drf-extensions==10.6.0", "click==8.3.3", "idna==3.14", "edx-django-release-util==1.5.0", + "ply==3.11", "edx-ccx-keys==2.0.2", "django==5.2.14", "openedx-events==11.2.0", + "edx-rbac==3.0.0", "pyjwt[crypto]==2.12.1", "mysqlclient==2.2.8", "charset-normalizer==3.4.7", + "pycparser==3.0", "edx-django-utils==8.0.1", "pytz==2026.2", "django-waffle==5.0.0", + "django-crum==0.7.9", "edx-opaque-keys[django]==4.0.0", "six==1.17.0", + "django-extensions==4.1", "django-filter==25.2", "djangorestframework==3.17.1", + "pynacl==1.6.2", "django-model-utils==5.0.0", "pymongo==4.17.0", "attrs==26.1.0", + "redis==7.4.0", "requests==2.33.1", "fastavro==1.12.2", "typing-extensions==4.15.0", + "django-simple-history==3.11.0", "sqlparse==0.5.5", "jsonfield2==4.0.0.post0", + "django-object-actions==5.0.1", "psutil==7.2.2"]' pypi_all: count: 135 - list: '["django-filter==25.2", "imagesize==2.0.0", "ddt==1.7.2", "charset-normalizer==3.4.7", - "filelock==3.29.0", "ply==3.11", "rules==3.5", "django-object-actions==5.0.1", - "packaging==26.2", "redis==7.4.0", "rfc3986==2.0.0", "lxml-html-clean==0.4.4", - "sphinxcontrib-applehelp==2.0.0", "six==1.17.0", "drf-jwt==1.19.2", "jaraco-context==6.1.2", - "sphinxcontrib-qthelp==2.0.0", "twine==6.2.0", "pycparser==3.0", "soupsieve==2.8.3", - "mdurl==0.1.2", "edx-rbac==3.0.0", "django-crum==0.7.9", "pydocstyle==6.3.0", - "pyproject-hooks==1.2.0", "rich==15.0.0", "cffi==2.0.0", "nh3==0.3.5", - "jinja2==3.1.6", "pygments==2.20.0", "markupsafe==3.0.3", "python-discovery==1.3.0", - "pip==26.1.1", "asgiref==3.11.1", "path==16.16.0", "virtualenv==21.3.1", - "certifi==2026.4.22", "edx-opaque-keys[django]==4.0.0", "djangorestframework==3.17.1", - "pylint==4.0.5", "pyproject-api==1.10.0", "cryptography==48.0.0", "mysqlclient==2.2.8", - "openedx-events==11.2.0", "markdown-it-py==4.2.0", "factory-boy==3.3.3", - "pylint-celery==0.3", "sphinx-book-theme==1.2.0", "pip-tools==7.5.3", - "python-slugify==8.0.4", "edx-lint==6.1.0", "roman-numerals==4.1.0", "semantic-version==2.10.0", - "babel==2.18.0", "coverage[toml]==7.14.0", "pyyaml==6.0.3", "typing-extensions==4.15.0", - "readme-renderer==44.0", "jaraco-functools==4.4.0", "edx-i18n-tools==2.0.0", - "diff-cover==10.2.0", "pytz==2026.2", "sphinx==9.1.0", "lxml[html-clean]==6.1.0", - "click==8.3.3", "pyjwt[crypto]==2.12.1", "doc8==2.0.0", "jsonfield2==4.0.0.post0", - "sphinxcontrib-devhelp==2.0.0", "django-extensions==4.1", "distlib==0.4.0", - "accessible-pygments==0.0.5", "dnspython==2.8.0", "platformdirs==4.9.6", - "pluggy==1.6.0", "psutil==7.2.2", "id==1.6.1", "secretstorage==3.5.0", - "urllib3==2.7.0", "click-log==0.4.0", "colorama==0.4.6", "snowballstemmer==3.0.1", - "fastavro==1.12.2", "beautifulsoup4==4.14.3", "isort==8.0.1", "pytest-cov==7.1.0", - "docutils==0.21.2", "pylint-plugin-utils==0.9.0", "alabaster==1.0.0", - "chardet==7.4.3", "pymongo==4.17.0", "jaraco-classes==3.4.0", "tox==4.53.1", - "pycodestyle==2.14.0", "django-waffle==5.0.0", "keyring==25.7.0", "restructuredtext-lint==2.0.2", - "edx-django-utils==8.0.1", "more-itertools==11.0.2", "djangoql==0.19.1", - "iniconfig==2.3.0", "jeepney==0.9.0", "setuptools==82.0.1", "attrs==26.1.0", - "build==1.5.0", "faker==40.15.0", "idna==3.14", "tomlkit==0.15.0", "pynacl==1.6.2", - "pytest==9.0.3", "sphinxcontrib-htmlhelp==2.1.0", "stevedore==5.7.0", - "tomli-w==1.2.0", "wheel==0.47.0", "sphinxcontrib-serializinghtml==2.0.0", - "edx-django-release-util==1.5.0", "pylint-django==2.7.0", "edx-drf-extensions==10.6.0", - "mccabe==0.7.0", "text-unidecode==1.3", "requests-toolbelt==1.0.0", "astroid==4.0.4", - "sqlparse==0.5.5", "django-model-utils==5.0.0", "cachetools==7.1.1", "pydata-sphinx-theme==0.16.1", - "pytest-django==4.12.0", "dill==0.4.1", "django==5.2.14", "polib==1.2.0", - "code-annotations==3.0.0", "requests==2.33.1", "edx-ccx-keys==2.0.2", - "sphinxcontrib-jsmath==1.0.1", "django-simple-history==3.11.0"]' + list: '["isort==8.0.1", "alabaster==1.0.0", "sphinxcontrib-devhelp==2.0.0", + "drf-jwt==1.19.2", "pytest-cov==7.1.0", "pyyaml==6.0.3", "babel==2.18.0", + "imagesize==2.0.0", "click-log==0.4.0", "jaraco-classes==3.4.0", "restructuredtext-lint==2.0.2", + "click==8.3.3", "edx-django-release-util==1.5.0", "pylint==4.0.5", "polib==1.2.0", + "charset-normalizer==3.4.7", "tomlkit==0.15.0", "rich==15.0.0", "readme-renderer==44.0", + "pylint-celery==0.3", "colorama==0.4.6", "djangorestframework==3.17.1", + "requests-toolbelt==1.0.0", "twine==6.2.0", "fastavro==1.12.2", "typing-extensions==4.15.0", + "django-simple-history==3.11.0", "nh3==0.3.5", "jinja2==3.1.6", "tomli-w==1.2.0", + "stevedore==5.7.0", "dnspython==2.8.0", "urllib3==2.7.0", "packaging==26.2", + "virtualenv==21.3.1", "factory-boy==3.3.3", "pluggy==1.6.0", "sphinxcontrib-qthelp==2.0.0", + "filelock==3.29.0", "more-itertools==11.0.2", "edx-drf-extensions==10.6.0", + "faker==40.15.0", "lxml-html-clean==0.4.4", "ply==3.11", "openedx-events==11.2.0", + "edx-rbac==3.0.0", "pyjwt[crypto]==2.12.1", "sphinx-book-theme==1.2.0", + "python-slugify==8.0.4", "django-waffle==5.0.0", "id==1.6.1", "text-unidecode==1.3", + "django-crum==0.7.9", "mdurl==0.1.2", "six==1.17.0", "sphinxcontrib-serializinghtml==2.0.0", + "markupsafe==3.0.3", "pyproject-api==1.10.0", "tox==4.53.1", "jeepney==0.9.0", + "sqlparse==0.5.5", "jaraco-context==6.1.2", "coverage[toml]==7.14.0", + "diff-cover==10.2.0", "django-object-actions==5.0.1", "pytz==2026.2", + "psutil==7.2.2", "snowballstemmer==3.0.1", "setuptools==82.0.1", "rules==3.5", + "ddt==1.7.2", "certifi==2026.4.22", "semantic-version==2.10.0", "cffi==2.0.0", + "secretstorage==3.5.0", "asgiref==3.11.1", "cryptography==48.0.0", "pytest-django==4.12.0", + "doc8==2.0.0", "idna==3.14", "django==5.2.14", "keyring==25.7.0", "pycparser==3.0", + "pip-tools==7.5.3", "markdown-it-py==4.2.0", "astroid==4.0.4", "accessible-pygments==0.0.5", + "pydocstyle==6.3.0", "soupsieve==2.8.3", "attrs==26.1.0", "lxml[html-clean]==6.1.0", + "requests==2.33.1", "beautifulsoup4==4.14.3", "edx-lint==6.1.0", "sphinxcontrib-applehelp==2.0.0", + "pylint-django==2.7.0", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", + "jaraco-functools==4.4.0", "path==16.16.0", "build==1.5.0", "wheel==0.47.0", + "iniconfig==2.3.0", "code-annotations==3.0.0", "sphinxcontrib-htmlhelp==2.1.0", + "mccabe==0.7.0", "pylint-plugin-utils==0.9.0", "pygments==2.20.0", "djangoql==0.19.1", + "platformdirs==4.9.6", "rfc3986==2.0.0", "distlib==0.4.0", "sphinx==9.1.0", + "pytest==9.0.3", "edx-i18n-tools==2.0.0", "edx-ccx-keys==2.0.2", "mysqlclient==2.2.8", + "pydata-sphinx-theme==0.16.1", "chardet==7.4.3", "sphinxcontrib-jsmath==1.0.1", + "edx-django-utils==8.0.1", "edx-opaque-keys[django]==4.0.0", "python-discovery==1.3.0", + "django-extensions==4.1", "django-filter==25.2", "dill==0.4.1", "pip==26.1.1", + "pynacl==1.6.2", "cachetools==7.1.1", "django-model-utils==5.0.0", "pymongo==4.17.0", + "redis==7.4.0", "docutils==0.21.2", "roman-numerals==4.1.0", "jsonfield2==4.0.0.post0"]' django_packages: django_42: count: 14 - list: '["pytest-django", "factory-boy", "django-waffle", "edx-i18n-tools", - "pylint-django", "django-extensions", "edx-django-release-util", "code-annotations", - "django-object-actions", "django-filter", "edx-django-utils", "djangorestframework", - "edx-rbac", "edx-drf-extensions"]' + list: '["code-annotations", "django-extensions", "edx-django-utils", "django-filter", + "django-waffle", "edx-drf-extensions", "django-object-actions", "djangorestframework", + "factory-boy", "edx-i18n-tools", "pylint-django", "edx-rbac", "pytest-django", + "edx-django-release-util"]' total: count: 19 - list: '["factory-boy", "edx-i18n-tools", "edx-django-utils", "djangorestframework", - "edx-drf-extensions", "django-waffle", "drf-jwt", "code-annotations", - "django-extensions", "edx-django-release-util", "django-filter", "pytest-django", - "pylint-django", "django-model-utils", "django-simple-history", "django-object-actions", - "django-crum", "rules", "edx-rbac"]' + list: '["edx-django-utils", "django-object-actions", "django-crum", "edx-drf-extensions", + "factory-boy", "edx-django-release-util", "code-annotations", "django-filter", + "django-waffle", "drf-jwt", "djangorestframework", "edx-rbac", "django-extensions", + "django-model-utils", "edx-i18n-tools", "django-simple-history", "pylint-django", + "rules", "pytest-django"]' upgraded: count: 9 - list: '["django-waffle", "edx-i18n-tools", "django-extensions", "edx-django-release-util", - "code-annotations", "django-filter", "edx-django-utils", "edx-rbac", "edx-drf-extensions"]' + list: '["code-annotations", "django-extensions", "edx-django-utils", "django-filter", + "django-waffle", "edx-drf-extensions", "edx-i18n-tools", "edx-rbac", "edx-django-release-util"]' docs: build_badge: true python_version: null @@ -118,7 +117,7 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 26 + branch_count: 27 build_details: '{"total_duration": "4776 minutes 20 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 14 seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", @@ -140,7 +139,7 @@ github: default_branch: main description: A library that records transactions against a ledger, denominated in units of value. - disk_usage_kb: 483 + disk_usage_kb: 487 fork_count: 7 has_issues: true has_wiki: false @@ -149,9 +148,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 03:11:44 + last_push: 2026-06-08 03:12:00 license: GNU AGPLv3 - pulls_count: 2 + pulls_count: 3 github_actions: true language_bytes: css: 0 @@ -181,7 +180,9 @@ readme: - 'https://docs.openedx.org/projects/openedx-ledger: 404' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-ledger: 404' + - 'https://github.com/openedx/openedx-ledger/actions: 504' - 'https://openedx-ledger.readthedocs.io/en/latest/: 404' + - 'https://github.com/openedx/openedx-ledger/blob/main/LICENSE.txt: 504' getting-help: true good_links: - https://openedx.atlassian.net/wiki/spaces/DOC/pages/21627535/Publish+Documentation+on+Read+the+Docs @@ -195,13 +196,11 @@ readme: - https://img.shields.io/pypi/v/openedx-ledger.svg - https://pypi.python.org/pypi/openedx-ledger/ - https://github.com/openedx/openedx-ledger/workflows/Python%20CI/badge.svg?branch=main - - https://github.com/openedx/openedx-ledger/actions - https://codecov.io/github/openedx/openedx-ledger/coverage.svg?branch=main - https://codecov.io/github/openedx/openedx-ledger?branch=main - https://readthedocs.org/projects/openedx-ledger/badge/?version=latest - https://img.shields.io/pypi/pyversions/openedx-ledger.svg - https://img.shields.io/github/license/openedx/openedx-ledger.svg - - https://github.com/openedx/openedx-ledger/blob/main/LICENSE.txt - https://img.shields.io/badge/Status-Experimental-yellow - https://img.shields.io/badge/Status-Maintained-brightgreen - https://img.shields.io/badge/Status-Deprecated-orange @@ -247,18 +246,18 @@ travis_yml: ubuntu_packages: apt_get_packages: [] docker_packages: - - locales - - pkg-config - - libmysqlclient-dev - - libssl-dev - gcc + - build-essential + - libssl-dev - install - - python3-pip + - libmysqlclient-dev + - pkg-config - language-pack-en - - python3.12-venv + - locales - python3-dev - - curl - - build-essential - python3.12 + - python3.12-venv - git + - curl + - python3-pip yml_files: '[]' diff --git a/individual_repo_data/openedx/openedx-platform_repo_health.yaml b/individual_repo_data/openedx/openedx-platform_repo_health.yaml index 079efebb..c99d8b0e 100644 --- a/individual_repo_data/openedx/openedx-platform_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-platform_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -7,7 +7,7 @@ dependabot: pip: false dependabot_alerts: {} dependencies: - count: 623 + count: 624 github: count: 0 list: '[]' @@ -51,300 +51,296 @@ dependencies: "^4", "webpack-cli": "^5"}' pypi: count: 309 - list: '["cachetools==7.1.4", "openedx-authz==1.16.0", "gunicorn==26.0.0", - "wheel==0.47.0", "tomlkit==0.15.0", "oauthlib==3.3.1", "text-unidecode==1.3", - "invoke==3.0.3", "cssutils==2.15.0", "tinycss2==1.4.0", "asgiref==3.11.1", - "requests-oauthlib==2.0.0", "edx-when==4.0.0", "crowdsourcehinter-xblock==1.0.0", - "simplejson==4.1.1", "soupsieve==2.8.4", "pillow==12.2.0", "appdirs==1.4.4", - "testfixtures==12.0.0", "google-cloud-core==2.6.0", "openedx-core==1.0.1", - "edx-django-release-util==1.5.0", "analytics-python==1.4.post1", "web-fragments==4.0.0", - "pylatexenc==2.10", "simpleeval==1.0.7", "attrs==26.1.0", "networkx==3.6.1", - "google-cloud-storage==3.10.1", "django-waffle==5.0.0", "hpack==4.1.0", - "markupsafe==3.0.3", "pynacl==1.6.2", "celery==5.6.3", "social-auth-core==4.9.1", - "openedx-filters==3.4.1", "unicodeit==0.7.5", "voluptuous==0.16.0", "urllib3==2.7.0", - "django-celery-results==2.6.0", "typing-extensions==4.15.0", "edx-opaque-keys[django]==4.0.0", - "nltk==3.9.4", "bcrypt==5.0.0", "sympy==1.14.0", "djangorestframework==3.17.1", - "django-multi-email-field==0.8.0", "inflection==0.5.1", "jsonschema==4.26.0", - "jmespath==1.1.0", "enmerkar-underscore==2.4.0", "edx-rest-api-client==7.0.0", - "glob2==0.7", "drf-spectacular==0.29.0", "chardet==7.4.3", "bleach[css]==6.3.0", - "prompt-toolkit==3.0.52", "social-auth-app-django==5.4.1", "ora2==7.0.0", - "html5lib==1.1", "nh3==0.3.5", "python3-saml==1.16.0", "unicodecsv==0.14.1", - "django-crum==0.7.9", "pyasn1==0.6.3", "django-filter==25.2", "django-mptt==0.18.0", - "h2==4.3.0", "asn1crypto==1.5.1", "pymemcache==4.0.0", "click-didyoumean==0.3.1", - "markdown==3.10.2", "mongoengine==0.29.3", "tzdata==2026.2", "edx-bulk-grades==2.0.0", - "pyparsing==3.3.2", "idna==3.16", "olxcleaner==0.3.0", "wrapt==2.2.1", - "google-auth==2.53.0", "requests==2.34.2", "edx-auth-backends==5.0.0", - "meilisearch==0.41.0", "matplotlib==3.10.9", "annotated-types==0.7.0", - "click-repl==0.3.0", "cryptography==48.0.0", "openedx-calc==5.0.0", "firebase-admin==7.4.0", - "filelock==3.29.0", "pycryptodomex==3.23.0", "referencing==0.37.0", "jsondiff==2.2.1", - "charset-normalizer==3.4.7", "msgpack==1.1.2", "beautifulsoup4==4.14.3", - "mailsnake==1.6.4", "typesense==2.0.0", "bridgekeeper==0.9", "pyjwt[crypto]==2.13.0", - "sailthru-client==2.2.3", "walrus==0.9.8", "bracex==2.6", "optimizely-sdk==5.5.0", - "polib==1.2.0", "edx-drf-extensions==10.6.0", "pydantic-core==2.46.4", - "edx-codejail==4.1.0", "amqp==5.3.1", "rules==3.5", "django-storages==1.14.6", - "importlib-metadata==9.0.0", "shapely==2.1.2", "multidict==6.7.1", "pymongo==4.4.0", - "xblock-google-drive==0.8.2", "super-csv==5.0.0", "djangorestframework-xml==2.0.0", - "frozenlist==1.8.0", "edx-completion==5.0.0", "sorl-thumbnail==13.0.0", - "snowflake-connector-python==4.5.0", "aiohttp==3.13.5", "mysqlclient==2.2.8", - "django-classy-tags==4.1.0", "edx-toggles==6.0.0", "drf-yasg==1.21.15", - "pyyaml==6.0.3", "packaging==26.2", "scipy==1.17.1", "python-slugify==8.0.4", - "billiard==4.2.4", "cachecontrol==0.14.4", "hyperframe==6.1.0", "edx-sga==0.28.0", - "tqdm==4.67.3", "ipaddress==1.0.23", "httpx[http2]==0.28.1", "edx-enterprise==8.0.14", - "sqlparse==0.5.5", "django-ratelimit==4.1.0", "piexif==1.1.3", "django-simple-history==3.11.0", - "xss-utils==1.0.0", "enterprise-integrated-channels==0.1.58", "path==16.11.0", - "h11==0.16.0", "fs==2.4.16", "django-object-actions==5.1.1", "tincan==1.0.0", - "webob==1.8.9", "xblock-drag-and-drop-v2==5.0.6", "click==8.4.1", "django-method-override==1.0.4", - "psutil==7.2.2", "openedx-django-wiki==3.1.1", "vine==5.1.0", "maxminddb==3.1.1", - "six==1.17.0", "google-crc32c==1.8.0", "uritemplate==4.2.0", "google-api-core[grpc]==2.30.3", - "fonttools==4.63.0", "chem==2.0.0", "django-js-asset==3.1.2", "kiwisolver==1.5.0", - "edxval==4.0.1", "monotonic==1.6", "pysrt==1.1.2", "defusedxml==0.7.1", - "pyopenssl==26.2.0", "edx-django-utils==8.0.1", "httpcore==1.0.9", "django-countries==8.2.0", - "django-autocomplete-light==4.0.0", "help-tokens==4.0.0", "isodate==0.7.2", - "camel-converter[pydantic]==5.1.0", "jinja2==3.1.6", "edx-milestones==2.0.0", - "cffi==2.0.0", "lxml[html-clean]==5.3.2", "xblock-utils==4.0.0", "django-push-notifications==3.3.0", - "jwcrypto==1.5.7", "django-model-utils==5.0.0", "pynliner==0.8.0", "django-ses==4.7.2", - "edx-submissions==4.0.0", "django-mysql==4.19.0", "openedx-django-pyfs==4.0.0", - "grpcio==1.80.0", "mpmath==1.3.0", "stevedore==5.8.0", "wcwidth==0.7.0", - "openedx-django-require==3.0.0", "google-resumable-media==2.9.0", "tzlocal==5.3.1", - "kombu==5.6.2", "django-oauth-toolkit==1.7.1", "enmerkar==0.7.1", "edx-django-sites-extensions==6.0.0", - "icalendar==7.1.2", "casbin-django-orm-adapter==1.7.0", "propcache==0.5.2", - "slumber==0.7.1", "backoff==1.10.0", "redis==7.4.0", "event-tracking==4.0.0", - "pycountry==26.2.16", "edx-celeryutils==2.0.0", "openedx-events==11.2.0", - "grpcio-status==1.80.0", "django-fernet-fields-v2==0.9", "edx-rbac==3.0.0", - "pgpy==0.6.0", "pycasbin==2.8.0", "pycparser==3.0", "aniso8601==10.0.1", - "xblocks-contrib==0.16.1", "pylti1p3==2.0.0", "edx-ccx-keys==2.0.2", "typing-inspection==0.4.2", - "aiohappyeyeballs==2.6.2", "rpds-py==0.30.0", "django-pipeline==4.1.0", - "fs-s3fs==1.1.1", "openedx-forum==0.4.3", "edx-organizations==8.0.0", - "acid-xblock==0.4.1", "click-plugins==1.1.1.2", "mako==1.3.12", "webencodings==0.5.1", - "anyio==4.13.0", "botocore==1.43.14", "proto-plus==1.28.0", "platformdirs==4.9.6", - "geoip2==5.2.0", "recommender-xblock==5.0.0", "xblock[django]==6.1.0", - "babel==2.18.0", "yarl==1.24.2", "lxml-html-clean==0.4.4", "wcmatch==10.1", - "openedx-atlas==0.7.0", "path-py==12.5.0", "edx-i18n-tools==2.0.0", "joblib==1.5.3", - "contourpy==1.3.3", "django-user-tasks==4.0.0", "s3transfer==0.17.0", - "edx-ace==1.15.0", "pyrsistent==0.20.0", "code-annotations==3.0.0", "drf-jwt==1.19.2", - "python-dateutil==2.9.0.post0", "encutils==1.0.0", "xblock-poll==1.15.1", - "elasticsearch==7.9.1", "fastavro==1.12.2", "edx-proctoring==5.2.0", "lti-consumer-xblock==11.2.0", - "nodeenv==1.10.0", "django-ipware==7.0.1", "more-itertools==11.1.0", "lazy==1.6", - "codejail-includes==2.0.0", "python-swiftclient==4.10.0", "django-config-models==3.0.0", - "google-cloud-firestore==2.27.0", "laboratory==1.0.2", "pydantic==2.13.4", - "django-statici18n==2.7.1", "regex==2026.5.9", "django-cache-memoize==0.2.1", - "pytz==2026.2", "edx-api-doc-tools==3.0.0", "python-ipware==3.0.0", "googleapis-common-protos==1.75.0", - "protobuf==6.33.6", "jsonschema-specifications==2025.9.1", "xmlsec==1.3.14", - "django-appconf==1.2.0", "pyuca==1.2", "django-sekizai==4.1.0", "certifi==2026.5.20", - "python3-openid==3.2.0 ; python_version >= \"3\"", "paramiko==5.0.0", - "django-webpack-loader==3.2.4", "done-xblock==3.0.0", "jsonfield==3.2.0", - "django-cors-headers==4.9.0", "boto3==1.43.14", "zipp==4.1.0", "edx-event-bus-redis==1.0.0", - "semantic-version==2.10.0", "dnspython==2.8.0", "edx-tincan-py35==2.0.0", - "staff-graded-xblock==4.0.0", "sortedcontainers==2.4.0", "aiosignal==1.4.0", - "pyasn1-modules==0.4.2", "cycler==0.12.1", "random2==1.0.2", "psycopg2-binary==2.9.12", - "numpy==1.26.4", "edx-search==5.0.1", "edx-event-bus-kafka==6.1.0", "django==5.2.14"]' + list: '["django-ipware==7.0.1", "markupsafe==3.0.3", "tzlocal==5.3.1", "frozenlist==1.8.0", + "fastavro==1.12.2", "edx-i18n-tools==2.0.0", "olxcleaner==0.3.0", "fonttools==4.63.0", + "edx-celeryutils==2.0.0", "semantic-version==2.10.0", "python-slugify==8.0.4", + "defusedxml==0.7.1", "edx-completion==5.0.0", "chardet==7.4.3", "pymongo==4.4.0", + "gunicorn==26.0.0", "edx-drf-extensions==10.6.0", "packaging==26.2", "encutils==1.0.0", + "tqdm==4.67.3", "asgiref==3.11.1", "edx-django-utils==8.0.1", "platformdirs==4.10.0", + "xblock-google-drive==0.8.2", "idna==3.18", "aiosignal==1.4.0", "path==16.11.0", + "lxml[html-clean]==5.3.2", "google-cloud-storage==3.11.0", "cachetools==7.1.4", + "help-tokens==4.0.0", "celery==5.6.3", "edx-django-release-util==1.5.0", + "protobuf==7.35.0", "redis==8.0.0", "acid-xblock==0.4.1", "aniso8601==10.0.1", + "sortedcontainers==2.4.0", "anyio==4.13.0", "edxval==4.0.1", "pyrsistent==0.20.0", + "attrs==26.1.0", "httpcore==1.0.9", "code-annotations==3.0.0", "openedx-django-pyfs==4.0.0", + "oauthlib==3.3.1", "mongoengine==0.29.3", "tomlkit==0.15.0", "staff-graded-xblock==4.0.0", + "python-swiftclient==4.10.0", "django-webpack-loader==3.2.4", "google-resumable-media==2.10.0", + "django-model-utils==5.0.0", "amqp==5.3.1", "pyyaml==6.0.3", "tinycss2==1.4.0", + "ora2==7.0.0", "path-py==12.5.0", "boto3==1.43.21", "edx-search==5.0.1", + "nltk==3.9.4", "django-multi-email-field==0.8.0", "recommender-xblock==5.0.0", + "pyuca==1.2", "sorl-thumbnail==13.0.0", "drf-yasg==1.21.15", "cryptography==48.0.0", + "wcmatch==10.1", "django-method-override==1.0.4", "drf-spectacular==0.29.0", + "tzdata==2026.2", "edx-when==4.0.0", "xblock-poll==1.15.1", "social-auth-app-django==5.4.1", + "edx-event-bus-redis==1.0.0", "google-cloud-firestore==2.27.0", "jinja2==3.1.6", + "edx-event-bus-kafka==6.1.0", "cachecontrol==0.14.4", "openedx-authz==1.16.0", + "python3-saml==1.16.0", "msgpack==1.1.2", "enmerkar==0.7.1", "fs-s3fs==1.1.1", + "babel==2.18.0", "mailsnake==1.6.4", "django-crum==0.7.9", "wrapt==2.2.1", + "unicodecsv==0.14.1", "xss-utils==1.0.0", "pycasbin==2.8.0", "bleach[css]==6.3.0", + "casbin-django-orm-adapter==1.7.0", "enterprise-integrated-channels==0.1.59", + "grpcio-status==1.81.0", "s3transfer==0.18.0", "rules==3.5", "ipaddress==1.0.23", + "openedx-calc==5.0.0", "pyparsing==3.3.2", "zipp==4.1.0", "icalendar==7.1.2", + "elasticsearch==7.9.1", "django-config-models==3.0.0", "edx-api-doc-tools==3.0.0", + "django-mysql==4.19.0", "soupsieve==2.8.4", "laboratory==1.0.2", "python3-openid==3.2.0 + ; python_version >= \"3\"", "nh3==0.3.5", "referencing==0.37.0", "six==1.17.0", + "lazy==1.6", "pycparser==3.0", "requests==2.34.2", "xblock[django]==6.1.0", + "python-ipware==3.0.0", "django-storages==1.14.6", "appdirs==1.4.4", "pydantic==2.13.4", + "xblock-utils==4.0.0", "django-simple-history==3.11.0", "mysqlclient==2.2.8", + "click==8.4.1", "uritemplate==4.2.0", "text-unidecode==1.3", "edx-organizations==8.0.0", + "kiwisolver==1.5.0", "bcrypt==5.0.0", "codejail-includes==2.0.0", "django-user-tasks==4.0.0", + "mpmath==1.3.0", "firebase-admin==7.4.0", "djangorestframework==3.17.1", + "jmespath==1.1.0", "polib==1.2.0", "typesense==2.0.0", "scipy==1.17.1", + "django-oauth-toolkit==1.7.1", "piexif==1.1.3", "importlib-metadata==9.0.0", + "geoip2==5.2.0", "django-cache-memoize==0.2.1", "jsondiff==2.2.1", "wcwidth==0.7.0", + "regex==2026.5.9", "social-auth-core==4.9.1", "sympy==1.14.0", "django-autocomplete-light==4.0.1", + "asn1crypto==1.5.1", "sqlparse==0.5.5", "hpack==4.1.0", "markdown==3.10.2", + "edx-ccx-keys==2.0.2", "propcache==0.5.2", "django-ses==4.7.2", "openedx-django-require==3.0.0", + "event-tracking==4.0.2", "django==5.2.15", "django-pipeline==4.1.0", "edx-sga==0.28.0", + "pynacl==1.6.2", "pydantic-core==2.46.4", "walrus==0.9.8", "h2==4.3.0", + "django-countries==8.2.0", "stevedore==5.8.0", "edx-rbac==3.0.0", "typing-inspection==0.4.2", + "pgpy==0.6.0", "meilisearch==0.41.0", "bridgekeeper==0.9", "edx-submissions==4.0.0", + "jsonschema-specifications==2025.9.1", "django-cors-headers==4.9.0", "click-plugins==1.1.1.2", + "requests-oauthlib==2.0.0", "openedx-django-wiki==3.1.1", "pyasn1==0.6.3", + "botocore==1.43.21", "django-appconf==1.2.0", "simplejson==4.1.1", "googleapis-common-protos==1.75.0", + "grpcio==1.81.0", "jsonfield==3.2.0", "typing-extensions==4.15.0", "edx-bulk-grades==2.0.0", + "aiohappyeyeballs==2.6.2", "matplotlib==3.10.9", "done-xblock==3.0.0", + "pyopenssl==26.2.0", "bracex==2.6", "tincan==1.0.0", "mako==1.3.12", "pynliner==0.8.0", + "beautifulsoup4==4.14.3", "h11==0.16.0", "edx-milestones==2.0.0", "django-waffle==5.0.0", + "html5lib==1.1", "inflection==0.5.1", "isodate==0.7.2", "sailthru-client==2.2.3", + "web-fragments==4.0.0", "crowdsourcehinter-xblock==1.0.0", "annotated-types==0.7.0", + "voluptuous==0.16.0", "xmlsec==1.3.14", "cssutils==2.15.0", "unicodeit==0.7.5", + "more-itertools==11.1.0", "vine==5.1.0", "lti-consumer-xblock==11.3.1", + "pyasn1-modules==0.4.2", "glob2==0.7", "aiohttp==3.14.0", "python-dateutil==2.9.0.post0", + "joblib==1.5.3", "charset-normalizer==3.4.7", "analytics-python==1.4.post1", + "shapely==2.1.2", "camel-converter[pydantic]==5.1.0", "jsonschema==4.26.0", + "click-didyoumean==0.3.1", "django-fernet-fields-v2==0.9", "openedx-forum==0.4.3", + "edx-proctoring==5.2.0", "snowflake-connector-python==4.6.0", "slumber==0.7.1", + "django-sekizai==4.1.0", "google-crc32c==1.8.0", "edx-auth-backends==5.0.0", + "fs==2.4.16", "super-csv==5.0.0", "django-celery-results==2.6.0", "prompt-toolkit==3.0.52", + "edx-opaque-keys[django]==4.0.0", "cffi==2.0.0", "simpleeval==1.0.7", + "nodeenv==1.10.0", "google-api-core[grpc]==2.31.0", "xblock-drag-and-drop-v2==5.0.6", + "networkx==3.6.1", "yarl==1.24.2", "edx-ace==1.15.0", "hyperframe==6.1.0", + "pylatexenc==2.10", "multidict==6.7.1", "drf-jwt==1.19.2", "edx-enterprise==8.0.16", + "paramiko==5.0.0", "urllib3==2.7.0", "enmerkar-underscore==2.4.0", "testfixtures==12.0.0", + "django-ratelimit==4.1.0", "pyjwt[crypto]==2.13.0", "contourpy==1.3.3", + "google-cloud-core==2.6.0", "maxminddb==3.1.1", "wheel==0.47.0", "django-statici18n==2.7.1", + "django-push-notifications==3.3.0", "openedx-filters==3.4.1", "pylti1p3==2.0.0", + "optimizely-sdk==5.5.0", "rpds-py==2026.5.1", "psutil==7.2.2", "pytz==2026.2", + "monotonic==1.6", "jwcrypto==1.5.7", "google-auth==2.53.0", "httpx[http2]==0.28.1", + "cycler==0.12.1", "filelock==3.29.1", "edx-toggles==6.0.0", "pysrt==1.1.2", + "billiard==4.2.4", "pillow==12.2.0", "django-object-actions==5.1.2", "edx-tincan-py35==2.0.0", + "edx-rest-api-client==7.0.0", "lxml-html-clean==0.4.4", "numpy==1.26.4", + "dnspython==2.8.0", "django-filter==25.2", "django-mptt==0.18.0", "random2==1.0.2", + "webob==1.8.10", "openedx-events==11.2.0", "psycopg2-binary==2.9.12", + "backoff==1.10.0", "click-repl==0.3.0", "webencodings==0.5.1", "openedx-core==1.1.0", + "pycountry==26.2.16", "pymemcache==4.0.0", "djangorestframework-xml==2.0.0", + "invoke==3.0.3", "edx-codejail==4.1.0", "xblocks-contrib==0.16.1", "chem==2.0.0", + "kombu==5.6.2", "pycryptodomex==3.23.0", "certifi==2026.5.20", "proto-plus==1.28.0", + "openedx-atlas==0.7.0", "edx-django-sites-extensions==6.0.0", "django-js-asset==3.1.2", + "django-classy-tags==4.1.0"]' pypi_all: - count: 535 - list: '["cachetools==7.1.4", "openedx-authz==1.16.0", "gunicorn==26.0.0", - "wheel==0.47.0", "pillow==12.0.0", "tomlkit==0.15.0", "glom==25.12.0", - "oauthlib==3.3.1", "types-requests==2.33.0.20260518", "nltk==3.9.1", "text-unidecode==1.3", - "invoke==3.0.3", "click==8.3.0", "cssutils==2.15.0", "openedx-calc==3.1.2", - "tinycss2==1.4.0", "asgiref==3.11.1", "requests-oauthlib==2.0.0", "pact-python==3.4.0", - "edx-when==4.0.0", "crowdsourcehinter-xblock==1.0.0", "pytest-metadata==3.1.1", - "sphinxcontrib-serializinghtml==2.0.0", "simplejson==4.1.1", "soupsieve==2.8.4", - "pillow==12.2.0", "grimp==3.14", "rich==15.0.0", "diff-cover==10.2.1", - "pydata-sphinx-theme==0.16.1", "starlette==1.1.0", "appdirs==1.4.4", "testfixtures==12.0.0", - "google-cloud-core==2.6.0", "matplotlib==3.9.2", "markupsafe==2.1.5", - "mypy==1.19.1", "edx-django-release-util==1.5.0", "openedx-core==1.0.1", - "analytics-python==1.4.post1", "pylint-celery==0.3", "web-fragments==4.0.0", - "pylatexenc==2.10", "django-stubs-ext==6.0.5", "simpleeval==1.0.7", "sphinx-book-theme==1.2.0", - "attrs==26.1.0", "coverage==7.14.0", "sphinxcontrib-httpdomain==2.0.0", - "iniconfig==2.3.0", "pathspec==1.1.1", "opentelemetry-exporter-otlp-proto-http==1.37.0", - "networkx==3.6.1", "google-cloud-storage==3.10.1", "django-waffle==5.0.0", - "cryptography==45.0.7", "hpack==4.1.0", "markupsafe==3.0.3", "pynacl==1.6.2", - "celery==5.6.3", "social-auth-core==4.9.1", "importlib-metadata==8.7.1", - "tqdm==4.66.5", "openedx-filters==3.4.1", "unicodeit==0.7.5", "voluptuous==0.16.0", - "packaging==25.0", "urllib3==2.7.0", "django-celery-results==2.6.0", "typing-extensions==4.15.0", - "edx-opaque-keys[django]==4.0.0", "nltk==3.9.4", "opentelemetry-api==1.37.0", - "virtualenv==21.3.3", "bcrypt==5.0.0", "sympy==1.14.0", "pycparser==2.21", - "djangorestframework==3.17.1", "django-multi-email-field==0.8.0", "inflection==0.5.1", - "pytest-cov==7.1.0", "jsonschema==4.26.0", "jmespath==1.1.0", "enmerkar-underscore==2.4.0", - "fonttools==4.57.0", "edx-rest-api-client==7.0.0", "glob2==0.7", "drf-spectacular==0.29.0", - "gitpython==3.1.50", "chardet==7.4.3", "scipy==1.14.1", "unidiff==0.7.5", - "bleach[css]==6.3.0", "pyparsing==3.2.0", "prompt-toolkit==3.0.52", "librt==0.11.0", - "mdurl==0.1.2", "social-auth-app-django==5.4.1", "ora2==7.0.0", "html5lib==1.1", - "nh3==0.3.5", "django-stubs[compatible-mypy]==5.2.9", "sphinxcontrib-htmlhelp==2.1.0", - "python3-saml==1.16.0", "unicodecsv==0.14.1", "django-crum==0.7.9", "build==1.5.0", - "pyasn1==0.6.3", "django-filter==25.2", "sphinxcontrib-openapi==0.9.0", - "python-dotenv==1.2.2", "networkx==3.4.2", "django-mptt==0.18.0", "opentelemetry-util-http==0.58b0", - "h2==4.3.0", "opentelemetry-instrumentation-requests==0.58b0", "asn1crypto==1.5.1", - "opentelemetry-semantic-conventions==0.58b0", "pact-python-ffi==0.5.4.0", - "pillow==11.0.0", "python-dateutil==2.8.2", "pymemcache==4.0.0", "click-didyoumean==0.3.1", - "markdown==3.10.2", "sphinxext-rediraffe==0.3.0", "py==1.11.0", "singledispatch==4.1.2", - "mongoengine==0.29.3", "sphinx-autoapi==3.6.0", "click-log==0.4.0", "wrapt==1.17.3", - "cffi==1.17.1", "tzdata==2026.2", "edx-bulk-grades==2.0.0", "click-option-group==0.5.9", - "pyparsing==3.3.2", "pygments==2.20.0", "idna==3.16", "olxcleaner==0.3.0", - "picobox==4.0.0", "wrapt==2.2.1", "fonttools==4.51.0", "import-linter==2.11", - "google-auth==2.53.0", "requests==2.34.2", "edx-auth-backends==5.0.0", - "meilisearch==0.41.0", "joblib==1.5.2", "matplotlib==3.10.9", "sse-starlette==3.4.4", - "annotated-types==0.7.0", "click-repl==0.3.0", "cryptography==48.0.0", - "smmap==5.0.3", "opentelemetry-instrumentation-threading==0.58b0", "pip==26.1.1", - "openedx-calc==5.0.0", "firebase-admin==7.4.0", "sphinxcontrib-devhelp==2.0.0", - "fonttools==4.62.1", "filelock==3.29.0", "pycryptodomex==3.23.0", "referencing==0.37.0", - "jsondiff==2.2.1", "charset-normalizer==3.4.7", "msgpack==1.1.2", "pytest-randomly==4.1.0", - "beautifulsoup4==4.14.3", "matplotlib==3.10.7", "scipy==1.15.2", "mailsnake==1.6.4", - "contourpy==1.3.2", "typesense==2.0.0", "packaging==24.0", "bridgekeeper==0.9", - "pyjwt[crypto]==2.13.0", "sailthru-client==2.2.3", "walrus==0.9.8", "bracex==2.6", - "coverage[toml]==7.14.0", "optimizely-sdk==5.5.0", "edx-drf-extensions==10.6.0", - "polib==1.2.0", "pydantic-core==2.46.4", "edx-codejail==4.1.0", "amqp==5.3.1", - "rules==3.5", "lxml==4.9.4", "django-storages==1.14.6", "pycparser==2.22", - "importlib-metadata==9.0.0", "shapely==2.1.2", "multidict==6.7.1", "pymongo==4.4.0", - "httpx==0.28.1", "xblock-google-drive==0.8.2", "super-csv==5.0.0", "djangorestframework-xml==2.0.0", - "frozenlist==1.8.0", "lxml-html-clean==0.4.3", "opentelemetry-sdk==1.37.0", - "edx-completion==5.0.0", "markupsafe==3.0.2", "sorl-thumbnail==13.0.0", - "snowflake-connector-python==4.5.0", "aiohttp==3.13.5", "scipy==1.10.1", - "mysqlclient==2.2.8", "django-classy-tags==4.1.0", "edx-toggles==6.0.0", - "drf-yasg==1.21.15", "pyyaml==6.0.3", "exceptiongroup==1.2.2", "packaging==26.2", - "joblib==1.4.2", "mccabe==0.7.0", "scipy==1.17.1", "mcp==1.23.3", "python-slugify==8.0.4", - "packaging==24.1", "openedx-calc==4.0.2", "billiard==4.2.4", "cachecontrol==0.14.4", - "hyperframe==6.1.0", "edx-sga==0.28.0", "fonttools==4.54.1", "tqdm==4.67.3", - "ipaddress==1.0.23", "httpx[http2]==0.28.1", "gitdb==4.0.12", "edx-enterprise==8.0.14", - "colorama==0.4.6", "sqlparse==0.5.5", "ddt==1.7.2", "django-ratelimit==4.1.0", - "piexif==1.1.3", "django-simple-history==3.11.0", "xss-utils==1.0.0", - "tqdm==4.66.2", "enterprise-integrated-channels==0.1.58", "path==16.11.0", - "sphinx-design==0.7.0", "h11==0.16.0", "markdown-it-py==4.2.0", "fs==2.4.16", - "tqdm==4.66.4", "opentelemetry-exporter-otlp-proto-common==1.37.0", "vulture==2.16", - "django-object-actions==5.1.1", "snowballstemmer==3.1.0", "matplotlib==3.7.5", - "tincan==1.0.0", "regex==2026.4.4", "webob==1.8.9", "xblock-drag-and-drop-v2==5.0.6", - "pyparsing==3.1.1", "freezegun==1.5.5", "click==8.4.1", "django-method-override==1.0.4", - "psutil==7.2.2", "boltons==21.0.0", "uvicorn==0.48.0", "openedx-django-wiki==3.1.1", - "sympy==1.13.3", "python-discovery==1.3.1", "tox==4.54.0", "contourpy==1.3.0", - "ruamel-yaml-clib==0.2.15", "vine==5.1.0", "maxminddb==3.1.1", "tomli==2.4.1", - "six==1.17.0", "google-crc32c==1.8.0", "uritemplate==4.2.0", "google-api-core[grpc]==2.30.3", - "fonttools==4.63.0", "regex==2025.10.23", "chem==2.0.0", "django-js-asset==3.1.2", - "sphinxcontrib-qthelp==2.0.0", "kiwisolver==1.5.0", "edxval==4.0.1", "monotonic==1.6", - "pysrt==1.1.2", "defusedxml==0.7.1", "pyopenssl==26.2.0", "pyparsing==3.1.2", - "pytest==8.2.0", "edx-django-utils==8.0.1", "httpcore==1.0.9", "django-countries==8.2.0", - "pytest-json-report==1.5.0", "accessible-pygments==0.0.5", "nltk==3.8.1", - "kiwisolver==1.4.9", "cryptography==47.0.0", "django-autocomplete-light==4.0.0", - "help-tokens==4.0.0", "isodate==0.7.2", "django-debug-toolbar==5.2.0", - "tqdm==4.67.1", "camel-converter[pydantic]==5.1.0", "jinja2==3.1.6", "pylint==4.0.5", - "edx-milestones==2.0.0", "watchdog==6.0.0", "cffi==2.0.0", "libsass==0.10.0", - "ruamel-yaml==0.19.1", "pyparsing==3.2.3", "setuptools==81.0.0", "lxml[html-clean]==5.3.2", - "lxml-html-clean==0.4.2", "xblock-utils==4.0.0", "django-push-notifications==3.3.0", - "jwcrypto==1.5.7", "django-model-utils==5.0.0", "pynliner==0.8.0", "pylint-django==2.7.0", - "django-ses==4.7.2", "edx-submissions==4.0.0", "django-mysql==4.19.0", - "regex==2024.4.28", "importlib-resources==6.4.0", "openedx-django-pyfs==4.0.0", - "chem==1.2.0", "matplotlib==3.10.1", "cryptography==43.0.3", "pytest-attrib==0.1.3", - "six==1.16.0", "networkx==3.5", "grpcio==1.80.0", "mpmath==1.3.0", "stevedore==5.8.0", - "wcwidth==0.7.0", "openedx-django-require==3.0.0", "google-resumable-media==2.9.0", - "tzlocal==5.3.1", "kombu==5.6.2", "django-oauth-toolkit==1.7.1", "enmerkar==0.7.1", - "contourpy==1.1.1", "edx-django-sites-extensions==6.0.0", "alabaster==1.0.0", - "mock==5.2.0", "icalendar==7.1.2", "casbin-django-orm-adapter==1.7.0", - "zipp==3.18.1", "click==8.3.3", "propcache==0.5.2", "pyproject-hooks==1.2.0", - "sphinx-reredirects==1.1.0", "slumber==0.7.1", "jsonschema==4.25.1", "networkx==3.1", - "fonttools==4.49.0", "backoff==1.10.0", "httpretty==1.1.4", "redis==7.4.0", - "face==26.0.0", "faker==40.19.1", "pytest-xdist[psutil]==3.8.0", "event-tracking==4.0.0", - "mistune==3.2.1", "pycountry==26.2.16", "edx-celeryutils==2.0.0", "scipy==1.16.3", - "packaging==23.2", "isort==8.0.1", "ruff==0.15.14", "pytest-reportlog==1.0.0", - "pytest-django==4.12.0", "types-pyyaml==6.0.12.20260518", "scipy==1.7.3", - "opentelemetry-instrumentation==0.58b0", "openedx-events==11.2.0", "grpcio-status==1.80.0", - "django-fernet-fields-v2==0.9", "edx-rbac==3.0.0", "pgpy==0.6.0", "sphinx==9.1.0", - "pyquery==2.0.1", "pycasbin==2.8.0", "pycparser==3.0", "aniso8601==10.0.1", - "xblocks-contrib==0.16.1", "joblib==1.3.2", "pylti1p3==2.0.0", "zipp==3.17.0", - "chem==1.3.0", "edx-ccx-keys==2.0.2", "typing-inspection==0.4.2", "imagesize==2.0.0", - "pydantic-settings==2.14.1", "pylint-plugin-utils==0.9.0", "aiohappyeyeballs==2.6.2", - "pillow==10.3.0", "rpds-py==0.30.0", "django-pipeline==4.1.0", "fs-s3fs==1.1.1", - "openedx-forum==0.4.3", "edx-organizations==8.0.0", "execnet==2.1.2", - "docutils==0.22.4", "acid-xblock==0.4.1", "click-plugins==1.1.1.2", "wcmatch==8.5.2", - "mako==1.3.12", "webencodings==0.5.1", "pyparsing==3.2.5", "anyio==4.13.0", - "botocore==1.43.14", "proto-plus==1.28.0", "platformdirs==4.9.6", "geoip2==5.2.0", - "recommender-xblock==5.0.0", "tomli-w==1.2.0", "xblock[django]==6.1.0", - "pyproject-api==1.10.0", "babel==2.18.0", "kiwisolver==1.4.7", "yarl==1.24.2", - "lxml-html-clean==0.4.4", "sphinxcontrib-applehelp==2.0.0", "wcmatch==10.1", - "djangorestframework-stubs==3.16.9", "regex==2024.11.6", "click==8.1.8", - "openedx-atlas==0.7.0", "path-py==12.5.0", "edx-i18n-tools==2.0.0", "joblib==1.5.3", - "cffi==1.16.0", "contourpy==1.3.3", "nltk==3.9.2", "sympy==1.12", "django-user-tasks==4.0.0", - "numpy==1.22.4", "s3transfer==0.17.0", "python-multipart==0.0.29", "edx-ace==1.15.0", - "deepmerge==2.0", "pyrsistent==0.20.0", "pillow==11.2.1", "code-annotations==3.0.0", - "drf-jwt==1.19.2", "pyjwt[crypto]==2.12.1", "python-dateutil==2.9.0.post0", - "encutils==1.0.0", "sphinxcontrib-jsmath==1.0.1", "xblock-poll==1.15.1", - "elasticsearch==7.9.1", "opentelemetry-proto==1.37.0", "cryptography==42.0.7", - "fastavro==1.12.2", "pluggy==1.6.0", "semgrep==1.163.0", "dill==0.4.1", - "edx-proctoring==5.2.0", "lti-consumer-xblock==11.2.0", "nodeenv==1.10.0", - "django-ipware==7.0.1", "more-itertools==11.1.0", "lazy==1.6", "astroid==4.0.4", - "codejail-includes==2.0.0", "fonttools==4.60.1", "python-swiftclient==4.10.0", - "django-config-models==3.0.0", "factory-boy==3.3.3", "google-cloud-firestore==2.27.0", - "laboratory==1.0.2", "pywatchman==3.0.0", "pydantic==2.13.4", "django-statici18n==2.7.1", - "pylint-pytest==1.1.8", "regex==2026.5.9", "django-cache-memoize==0.2.1", - "cssselect==1.4.0", "pytz==2026.2", "edx-api-doc-tools==3.0.0", "python-ipware==3.0.0", - "numpy==1.24.4", "regex==2023.12.25", "googleapis-common-protos==1.75.0", - "protobuf==6.33.6", "pycparser==2.23", "peewee==3.19.0", "jsonschema-specifications==2025.9.1", - "pillow==10.2.0", "sphinx-mdinclude==0.6.2", "xmlsec==1.3.14", "django-appconf==1.2.0", - "pyuca==1.2", "roman-numerals==4.1.0", "django-sekizai==4.1.0", "certifi==2026.5.20", - "distlib==0.4.0", "python3-openid==3.2.0 ; python_version >= \"3\"", "codejail-includes==1.0.0", - "paramiko==5.0.0", "httpx-sse==0.4.3", "django-webpack-loader==3.2.4", - "done-xblock==3.0.0", "jsonfield==3.2.0", "django-cors-headers==4.9.0", - "boto3==1.43.14", "zipp==4.1.0", "edx-event-bus-redis==1.0.0", "django-storage-swift==1.2.19", - "semantic-version==2.10.0", "dnspython==2.8.0", "edx-tincan-py35==2.0.0", - "staff-graded-xblock==4.0.0", "lxml[html-clean,html_clean]==5.3.2", "edx-lint==6.1.0", - "cryptography==38.0.4", "click==8.1.6", "kiwisolver==1.4.5", "sortedcontainers==2.4.0", - "aiosignal==1.4.0", "pyasn1-modules==0.4.2", "cycler==0.12.1", "random2==1.0.2", - "psycopg2-binary==2.9.12", "numpy==1.26.4", "cryptography==44.0.2", "kiwisolver==1.4.8", - "mypy-extensions==1.1.0", "importlib-resources==6.1.1", "edx-search==5.0.1", - "pip-tools==7.5.3", "regex==2024.9.11", "edx-event-bus-kafka==6.1.0", - "django==5.2.14"]' + count: 536 + list: '["django-ipware==7.0.1", "isort==8.0.1", "markupsafe==3.0.3", "tzlocal==5.3.1", + "frozenlist==1.8.0", "fastavro==1.12.2", "pillow==11.0.0", "sphinxcontrib-devhelp==2.0.0", + "edx-i18n-tools==2.0.0", "olxcleaner==0.3.0", "regex==2025.10.23", "setuptools==81.0.0", + "roman-numerals==4.1.0", "fonttools==4.63.0", "mypy-extensions==1.1.0", + "edx-celeryutils==2.0.0", "semantic-version==2.10.0", "openedx-calc==3.1.2", + "scipy==1.15.2", "pytest-reportlog==1.0.0", "networkx==3.1", "python-slugify==8.0.4", + "defusedxml==0.7.1", "edx-completion==5.0.0", "chardet==7.4.3", "pymongo==4.4.0", + "gunicorn==26.0.0", "unidiff==0.7.5", "edx-drf-extensions==10.6.0", "mdurl==0.1.2", + "packaging==26.2", "encutils==1.0.0", "py==1.11.0", "sphinx-mdinclude==0.6.2", + "tqdm==4.67.3", "asgiref==3.11.1", "edx-django-utils==8.0.1", "sphinx-design==0.7.0", + "pytest==8.2.0", "freezegun==1.5.5", "deepmerge==2.0", "platformdirs==4.10.0", + "xblock-google-drive==0.8.2", "networkx==3.5", "idna==3.18", "importlib-resources==6.1.1", + "six==1.16.0", "pyproject-api==1.10.1", "aiosignal==1.4.0", "path==16.11.0", + "lxml[html-clean]==5.3.2", "google-cloud-storage==3.11.0", "cachetools==7.1.4", + "coverage==7.14.1", "help-tokens==4.0.0", "celery==5.6.3", "edx-django-release-util==1.5.0", + "protobuf==7.35.0", "redis==8.0.0", "regex==2024.9.11", "wrapt==1.17.3", + "acid-xblock==0.4.1", "alabaster==1.0.0", "pydantic-settings==2.14.1", + "aniso8601==10.0.1", "pycparser==2.22", "importlib-resources==6.4.0", + "sortedcontainers==2.4.0", "anyio==4.13.0", "edxval==4.0.1", "pyrsistent==0.20.0", + "attrs==26.1.0", "protobuf==6.33.6", "opentelemetry-instrumentation-threading==0.58b0", + "regex==2023.12.25", "httpcore==1.0.9", "code-annotations==3.0.0", "openedx-django-pyfs==4.0.0", + "oauthlib==3.3.1", "mongoengine==0.29.3", "pyparsing==3.2.0", "tomlkit==0.15.0", + "staff-graded-xblock==4.0.0", "uvicorn==0.48.0", "numpy==1.22.4", "smmap==5.0.3", + "httpx-sse==0.4.3", "python-swiftclient==4.10.0", "django-webpack-loader==3.2.4", + "pytest-xdist[psutil]==3.8.0", "google-resumable-media==2.10.0", "networkx==3.4.2", + "django-model-utils==5.0.0", "mccabe==0.7.0", "amqp==5.3.1", "pyyaml==6.0.3", + "tinycss2==1.4.0", "pyparsing==3.1.1", "pact-python==3.4.0", "lxml[html-clean,html_clean]==5.3.2", + "ora2==7.0.0", "types-pyyaml==6.0.12.20260518", "pillow==10.3.0", "path-py==12.5.0", + "boto3==1.43.21", "edx-search==5.0.1", "nltk==3.9.4", "sphinxcontrib-qthelp==2.0.0", + "django-multi-email-field==0.8.0", "recommender-xblock==5.0.0", "packaging==24.1", + "sphinxcontrib-htmlhelp==2.1.0", "pyuca==1.2", "sorl-thumbnail==13.0.0", + "drf-yasg==1.21.15", "cryptography==48.0.0", "wcmatch==10.1", "contourpy==1.1.1", + "pylint-celery==0.3", "pact-python-ffi==0.5.4.0", "django-method-override==1.0.4", + "drf-spectacular==0.29.0", "fonttools==4.49.0", "tqdm==4.66.5", "tzdata==2026.2", + "edx-when==4.0.0", "rich==15.0.0", "libsass==0.10.0", "xblock-poll==1.15.1", + "social-auth-app-django==5.4.1", "edx-event-bus-redis==1.0.0", "google-cloud-firestore==2.27.0", + "dill==0.4.1", "semgrep==1.164.0", "jinja2==3.1.6", "pyparsing==3.2.3", + "pyquery==2.0.1", "mcp==1.23.3", "click-log==0.4.0", "pytest-django==4.12.0", + "edx-event-bus-kafka==6.1.0", "pylint-plugin-utils==0.9.0", "cachecontrol==0.14.4", + "openedx-authz==1.16.0", "python3-saml==1.16.0", "msgpack==1.1.2", "enmerkar==0.7.1", + "watchdog==6.0.0", "faker==40.21.0", "fs-s3fs==1.1.1", "opentelemetry-exporter-otlp-proto-common==1.37.0", + "babel==2.18.0", "mailsnake==1.6.4", "django-crum==0.7.9", "ruamel-yaml==0.19.1", + "regex==2024.11.6", "numpy==1.24.4", "cffi==1.17.1", "scipy==1.7.3", "wrapt==2.2.1", + "iniconfig==2.3.0", "unicodecsv==0.14.1", "tqdm==4.66.2", "pytest-metadata==3.1.1", + "lxml-html-clean==0.4.2", "xss-utils==1.0.0", "pycasbin==2.8.0", "bleach[css]==6.3.0", + "casbin-django-orm-adapter==1.7.0", "enterprise-integrated-channels==0.1.59", + "pytest-json-report==1.5.0", "lxml==4.9.4", "grpcio-status==1.81.0", "s3transfer==0.18.0", + "coverage[toml]==7.14.1", "rules==3.5", "ipaddress==1.0.23", "openedx-calc==5.0.0", + "picobox==4.0.0", "pyparsing==3.3.2", "zipp==4.1.0", "icalendar==7.1.2", + "elasticsearch==7.9.1", "packaging==25.0", "django-config-models==3.0.0", + "edx-api-doc-tools==3.0.0", "django-mysql==4.19.0", "matplotlib==3.10.7", + "soupsieve==2.8.4", "laboratory==1.0.2", "python3-openid==3.2.0 ; python_version + >= \"3\"", "cryptography==47.0.0", "nh3==0.3.5", "referencing==0.37.0", + "six==1.17.0", "click==8.1.6", "lazy==1.6", "sympy==1.13.3", "pip==26.1.2", + "pycparser==3.0", "matplotlib==3.7.5", "requests==2.34.2", "xblock[django]==6.1.0", + "python-ipware==3.0.0", "django-storages==1.14.6", "appdirs==1.4.4", "pydantic==2.13.4", + "python-dotenv==1.2.2", "factory-boy==3.3.3", "xblock-utils==4.0.0", "pycparser==2.21", + "cryptography==43.0.3", "accessible-pygments==0.0.5", "django-simple-history==3.11.0", + "mysqlclient==2.2.8", "nltk==3.9.2", "cffi==1.16.0", "click==8.4.1", "joblib==1.5.2", + "uritemplate==4.2.0", "text-unidecode==1.3", "edx-organizations==8.0.0", + "kiwisolver==1.5.0", "bcrypt==5.0.0", "regex==2024.4.28", "codejail-includes==2.0.0", + "django-user-tasks==4.0.0", "mpmath==1.3.0", "firebase-admin==7.4.0", + "singledispatch==4.1.2", "fonttools==4.51.0", "djangorestframework==3.17.1", + "sphinxcontrib-serializinghtml==2.0.0", "jmespath==1.1.0", "polib==1.2.0", + "pytest-randomly==4.1.0", "typesense==2.0.0", "pluggy==1.6.0", "scipy==1.17.1", + "django-oauth-toolkit==1.7.1", "pyparsing==3.1.2", "piexif==1.1.3", "importlib-metadata==8.7.1", + "importlib-metadata==9.0.0", "kiwisolver==1.4.7", "geoip2==5.2.0", "django-cache-memoize==0.2.1", + "pylint==4.0.5", "jsondiff==2.2.1", "wcwidth==0.7.0", "pip-tools==7.5.3", + "regex==2026.5.9", "social-auth-core==4.9.1", "sympy==1.14.0", "django-autocomplete-light==4.0.1", + "asn1crypto==1.5.1", "sqlparse==0.5.5", "hpack==4.1.0", "pathspec==1.1.1", + "markdown==3.10.2", "face==26.0.0", "contourpy==1.3.2", "django-stubs-ext==6.0.5", + "wcmatch==8.5.2", "edx-ccx-keys==2.0.2", "propcache==0.5.2", "cryptography==38.0.4", + "python-dateutil==2.8.2", "django-ses==4.7.2", "openedx-django-require==3.0.0", + "opentelemetry-instrumentation==0.58b0", "exceptiongroup==1.2.2", "event-tracking==4.0.2", + "pillow==10.2.0", "kiwisolver==1.4.5", "django==5.2.15", "sphinxcontrib-jsmath==1.0.1", + "django-pipeline==4.1.0", "edx-sga==0.28.0", "build==1.5.0", "pydantic-core==2.46.4", + "pynacl==1.6.2", "codejail-includes==1.0.0", "packaging==24.0", "walrus==0.9.8", + "h2==4.3.0", "zipp==3.17.0", "django-countries==8.2.0", "scipy==1.10.1", + "stevedore==5.8.0", "edx-rbac==3.0.0", "typing-inspection==0.4.2", "grimp==3.14", + "pgpy==0.6.0", "meilisearch==0.41.0", "matplotlib==3.9.2", "bridgekeeper==0.9", + "edx-submissions==4.0.0", "jsonschema-specifications==2025.9.1", "django-cors-headers==4.9.0", + "click-plugins==1.1.1.2", "requests-oauthlib==2.0.0", "fonttools==4.62.1", + "openedx-django-wiki==3.1.1", "pyasn1==0.6.3", "botocore==1.43.21", "click-option-group==0.5.9", + "django-appconf==1.2.0", "simplejson==4.1.1", "googleapis-common-protos==1.75.0", + "grpcio==1.81.0", "jsonfield==3.2.0", "typing-extensions==4.15.0", "sphinx-reredirects==1.1.0", + "fonttools==4.60.1", "pytest-cov==7.1.0", "edx-bulk-grades==2.0.0", "aiohappyeyeballs==2.6.2", + "ruff==0.15.15", "matplotlib==3.10.9", "done-xblock==3.0.0", "pyopenssl==26.2.0", + "bracex==2.6", "tincan==1.0.0", "contourpy==1.3.0", "mako==1.3.12", "pynliner==0.8.0", + "click==8.3.0", "djangorestframework-stubs==3.16.9", "django-debug-toolbar==5.2.0", + "beautifulsoup4==4.14.3", "h11==0.16.0", "tomli==2.4.1", "opentelemetry-api==1.37.0", + "edx-milestones==2.0.0", "opentelemetry-exporter-otlp-proto-http==1.37.0", + "tqdm==4.66.4", "pylint-pytest==1.1.8", "django-waffle==5.0.0", "html5lib==1.1", + "inflection==0.5.1", "isodate==0.7.2", "sailthru-client==2.2.3", "pylint-django==2.7.0", + "vulture==2.16", "web-fragments==4.0.0", "sse-starlette==3.4.4", "execnet==2.1.2", + "virtualenv==21.4.2", "colorama==0.4.6", "boltons==21.0.0", "gitpython==3.1.50", + "crowdsourcehinter-xblock==1.0.0", "annotated-types==0.7.0", "python-discovery==1.4.0", + "voluptuous==0.16.0", "kiwisolver==1.4.8", "pywatchman==3.0.0", "xmlsec==1.3.14", + "cssutils==2.15.0", "unicodeit==0.7.5", "more-itertools==11.1.0", "opentelemetry-proto==1.37.0", + "tox==4.55.0", "vine==5.1.0", "lti-consumer-xblock==11.3.1", "pyasn1-modules==0.4.2", + "gitdb==4.0.12", "pycparser==2.23", "glob2==0.7", "tomli-w==1.2.0", "pillow==12.0.0", + "joblib==1.4.2", "aiohttp==3.14.0", "python-dateutil==2.9.0.post0", "joblib==1.5.3", + "types-requests==2.33.0.20260518", "opentelemetry-util-http==0.58b0", + "charset-normalizer==3.4.7", "analytics-python==1.4.post1", "shapely==2.1.2", + "camel-converter[pydantic]==5.1.0", "pytest-attrib==0.1.3", "nltk==3.8.1", + "jsonschema==4.26.0", "click-didyoumean==0.3.1", "sphinxcontrib-openapi==0.9.0", + "mypy==1.19.1", "django-fernet-fields-v2==0.9", "openedx-forum==0.4.3", + "edx-proctoring==5.2.0", "snowflake-connector-python==4.6.0", "import-linter==2.11", + "fonttools==4.54.1", "slumber==0.7.1", "markupsafe==2.1.5", "fonttools==4.57.0", + "django-sekizai==4.1.0", "glom==25.12.0", "google-crc32c==1.8.0", "pyproject-hooks==1.2.0", + "edx-auth-backends==5.0.0", "fs==2.4.16", "super-csv==5.0.0", "django-celery-results==2.6.0", + "prompt-toolkit==3.0.52", "edx-opaque-keys[django]==4.0.0", "cffi==2.0.0", + "simpleeval==1.0.7", "nodeenv==1.10.0", "cryptography==44.0.2", "google-api-core[grpc]==2.31.0", + "scipy==1.14.1", "xblock-drag-and-drop-v2==5.0.6", "sphinxcontrib-httpdomain==2.0.0", + "python-multipart==0.0.30", "networkx==3.6.1", "yarl==1.24.2", "edx-ace==1.15.0", + "hyperframe==6.1.0", "mock==5.2.0", "pygments==2.20.0", "pylatexenc==2.10", + "sphinx-book-theme==1.2.0", "multidict==6.7.1", "sphinx==9.1.0", "drf-jwt==1.19.2", + "starlette==1.2.1", "docutils==0.22.4", "edx-enterprise==8.0.16", "edx-lint==6.1.0", + "paramiko==5.0.0", "matplotlib==3.10.1", "urllib3==2.7.0", "regex==2026.4.4", + "enmerkar-underscore==2.4.0", "testfixtures==12.0.0", "django-ratelimit==4.1.0", + "pyjwt[crypto]==2.13.0", "httpx==0.28.1", "snowballstemmer==3.1.1", "contourpy==1.3.3", + "lxml-html-clean==0.4.3", "django-storage-swift==1.2.19", "google-cloud-core==2.6.0", + "maxminddb==3.1.1", "jsonschema==4.25.1", "cryptography==45.0.7", "wheel==0.47.0", + "opentelemetry-instrumentation-requests==0.58b0", "diff-cover==10.3.0", + "django-statici18n==2.7.1", "django-push-notifications==3.3.0", "httpretty==1.1.4", + "packaging==23.2", "zipp==3.18.1", "openedx-filters==3.4.1", "opentelemetry-sdk==1.37.0", + "pylti1p3==2.0.0", "click==8.3.3", "optimizely-sdk==5.5.0", "cryptography==42.0.7", + "rpds-py==2026.5.1", "psutil==7.2.2", "click==8.1.8", "chem==1.3.0", "markdown-it-py==4.2.0", + "pytz==2026.2", "django-stubs[compatible-mypy]==5.2.9", "openedx-calc==4.0.2", + "monotonic==1.6", "jwcrypto==1.5.7", "google-auth==2.53.0", "httpx[http2]==0.28.1", + "cycler==0.12.1", "filelock==3.29.1", "edx-toggles==6.0.0", "pysrt==1.1.2", + "sphinx-autoapi==3.6.0", "opentelemetry-semantic-conventions==0.58b0", + "scipy==1.16.3", "sphinxext-rediraffe==0.3.0", "pillow==11.2.1", "billiard==4.2.4", + "ddt==1.7.2", "pillow==12.2.0", "django-object-actions==5.1.2", "edx-tincan-py35==2.0.0", + "edx-rest-api-client==7.0.0", "mistune==3.2.1", "sphinxcontrib-applehelp==2.0.0", + "lxml-html-clean==0.4.4", "joblib==1.3.2", "pyjwt[crypto]==2.12.1", "imagesize==2.0.0", + "numpy==1.26.4", "dnspython==2.8.0", "nltk==3.9.1", "django-filter==25.2", + "django-mptt==0.18.0", "random2==1.0.2", "webob==1.8.10", "pydata-sphinx-theme==0.16.1", + "openedx-events==11.2.0", "distlib==0.4.1", "sympy==1.12", "psycopg2-binary==2.9.12", + "backoff==1.10.0", "tqdm==4.67.1", "click-repl==0.3.0", "webencodings==0.5.1", + "openedx-core==1.1.0", "pycountry==26.2.16", "markupsafe==3.0.2", "librt==0.11.0", + "pyparsing==3.2.5", "pymemcache==4.0.0", "chem==1.2.0", "djangorestframework-xml==2.0.0", + "invoke==3.0.3", "kiwisolver==1.4.9", "edx-codejail==4.1.0", "astroid==4.0.4", + "xblocks-contrib==0.16.1", "chem==2.0.0", "ruamel-yaml-clib==0.2.15", + "kombu==5.6.2", "cssselect==1.4.0", "pycryptodomex==3.23.0", "certifi==2026.5.20", + "proto-plus==1.28.0", "peewee==3.19.0", "openedx-atlas==0.7.0", "edx-django-sites-extensions==6.0.0", + "django-js-asset==3.1.2", "django-classy-tags==4.1.0"]' django_packages: django_42: count: 62 - list: '["edx-django-utils", "edx-rest-api-client", "django-celery-results", - "event-tracking", "edx-organizations", "social-auth-app-django", "django-multi-email-field", - "django-oauth-toolkit", "help-tokens", "done-xblock", "django-debug-toolbar", - "django-config-models", "django-object-actions", "factory-boy", "pylint-django", - "django-ratelimit", "django-js-asset", "django-cache-memoize", "edx-i18n-tools", - "lti-consumer-xblock", "edx-submissions", "edx-milestones", "edxval", - "django-storages", "pytest-django", "django-autocomplete-light", "django-filter", - "django-appconf", "edx-celeryutils", "django-user-tasks", "django-countries", - "django-waffle", "djangorestframework", "django-webpack-loader", "edx-completion", - "edx-proctoring", "edx-auth-backends", "code-annotations", "web-fragments", - "edx-ace", "super-csv", "xblock-google-drive", "django-pipeline", "edx-search", - "edx-when", "edx-drf-extensions", "django-sekizai", "edx-enterprise", - "edx-django-release-util", "staff-graded-xblock", "xblock-utils", "enmerkar-underscore", - "edx-django-sites-extensions", "edx-toggles", "edx-bulk-grades", "xss-utils", - "django-cors-headers", "django-classy-tags", "django-mysql", "edx-api-doc-tools", - "edx-rbac", "xblock-drag-and-drop-v2"]' + list: '["django-classy-tags", "django-config-models", "edx-search", "edx-django-release-util", + "xblock-google-drive", "django-storages", "edx-organizations", "enmerkar-underscore", + "django-countries", "edx-ace", "django-object-actions", "factory-boy", + "edx-enterprise", "django-mysql", "edx-submissions", "edx-milestones", + "djangorestframework", "xblock-utils", "django-sekizai", "django-waffle", + "edx-when", "django-ratelimit", "pytest-django", "edx-celeryutils", "edx-bulk-grades", + "event-tracking", "code-annotations", "django-webpack-loader", "super-csv", + "edx-drf-extensions", "social-auth-app-django", "django-js-asset", "edx-proctoring", + "edx-django-sites-extensions", "pylint-django", "help-tokens", "django-multi-email-field", + "edx-rbac", "django-autocomplete-light", "django-user-tasks", "xss-utils", + "django-cache-memoize", "edx-auth-backends", "edx-api-doc-tools", "edxval", + "django-appconf", "lti-consumer-xblock", "edx-i18n-tools", "edx-django-utils", + "edx-toggles", "edx-rest-api-client", "xblock-drag-and-drop-v2", "done-xblock", + "django-debug-toolbar", "web-fragments", "django-oauth-toolkit", "django-filter", + "django-celery-results", "django-cors-headers", "edx-completion", "django-pipeline", + "staff-graded-xblock"]' total: count: 81 - list: '["django-multi-email-field", "bridgekeeper", "django-mptt", "django-js-asset", - "django-cache-memoize", "drf-jwt", "edx-milestones", "edx-submissions", - "pytest-django", "django-statici18n", "djangorestframework", "django-crum", - "web-fragments", "super-csv", "edx-when", "edx-django-release-util", "djangorestframework-xml", - "django-cors-headers", "django-classy-tags", "edx-rbac", "xblock-drag-and-drop-v2", - "django-celery-results", "django-oauth-toolkit", "django-config-models", - "django-ratelimit", "rules", "edx-i18n-tools", "lti-consumer-xblock", - "django-filter", "django-countries", "edx-sga", "edx-proctoring", "django-pipeline", - "edx-ace", "xblock-google-drive", "enmerkar-underscore", "django-storage-swift", - "edx-bulk-grades", "edx-api-doc-tools", "enmerkar", "django-ipware", "edx-organizations", - "help-tokens", "django-debug-toolbar", "pylint-django", "django-simple-history", - "django-storages", "django-appconf", "django-waffle", "edx-completion", - "code-annotations", "edx-search", "django-ses", "staff-graded-xblock", - "edx-django-sites-extensions", "edx-toggles", "xblock-poll", "jsonfield", - "django-mysql", "django-model-utils", "edx-django-utils", "edx-rest-api-client", - "event-tracking", "social-auth-app-django", "done-xblock", "django-object-actions", - "factory-boy", "edxval", "edx-celeryutils", "django-user-tasks", "sorl-thumbnail", - "django-autocomplete-light", "edx-auth-backends", "django-sekizai", "drf-yasg", - "edx-drf-extensions", "edx-enterprise", "xblock-utils", "django-method-override", - "xss-utils", "django-webpack-loader"]' + list: '["django-classy-tags", "django-model-utils", "edx-django-release-util", + "xblock-google-drive", "enmerkar-underscore", "factory-boy", "edx-ace", + "edx-milestones", "django-sekizai", "django-waffle", "django-storage-swift", + "code-annotations", "django-statici18n", "django-ipware", "edx-rbac", + "django-autocomplete-light", "django-user-tasks", "xss-utils", "django-appconf", + "edx-toggles", "xblock-drag-and-drop-v2", "django-debug-toolbar", "django-oauth-toolkit", + "drf-yasg", "staff-graded-xblock", "django-storages", "edx-organizations", + "django-countries", "drf-jwt", "xblock-poll", "djangorestframework", "django-ses", + "djangorestframework-xml", "edx-celeryutils", "super-csv", "django-simple-history", + "social-auth-app-django", "django-js-asset", "enmerkar", "pylint-django", + "rules", "edx-api-doc-tools", "edx-django-utils", "sorl-thumbnail", "django-filter", + "django-method-override", "django-pipeline", "edx-sga", "django-mysql", + "xblock-utils", "edx-bulk-grades", "django-crum", "django-multi-email-field", + "django-mptt", "edx-i18n-tools", "bridgekeeper", "done-xblock", "web-fragments", + "edx-completion", "django-config-models", "edx-search", "django-object-actions", + "edx-enterprise", "edx-submissions", "django-ratelimit", "edx-when", "pytest-django", + "event-tracking", "django-webpack-loader", "edx-drf-extensions", "edx-proctoring", + "edx-django-sites-extensions", "help-tokens", "jsonfield", "django-cache-memoize", + "edx-auth-backends", "edxval", "lti-consumer-xblock", "edx-rest-api-client", + "django-celery-results", "django-cors-headers"]' upgraded: count: 52 - list: '["edx-django-utils", "edx-rest-api-client", "django-celery-results", - "event-tracking", "edx-organizations", "social-auth-app-django", "django-multi-email-field", - "help-tokens", "done-xblock", "django-debug-toolbar", "django-config-models", - "django-js-asset", "django-cache-memoize", "edx-i18n-tools", "lti-consumer-xblock", - "edx-submissions", "edx-milestones", "edxval", "django-appconf", "django-autocomplete-light", - "django-filter", "edx-celeryutils", "django-user-tasks", "django-countries", - "django-waffle", "django-webpack-loader", "edx-completion", "edx-proctoring", - "edx-auth-backends", "code-annotations", "web-fragments", "edx-ace", "super-csv", - "xblock-google-drive", "django-sekizai", "edx-search", "edx-when", "edx-drf-extensions", - "edx-enterprise", "edx-django-release-util", "staff-graded-xblock", "xblock-utils", - "enmerkar-underscore", "edx-django-sites-extensions", "edx-toggles", "edx-bulk-grades", - "xss-utils", "django-cors-headers", "django-mysql", "edx-api-doc-tools", - "edx-rbac", "xblock-drag-and-drop-v2"]' + list: '["django-config-models", "edx-search", "edx-django-release-util", "xblock-google-drive", + "edx-organizations", "enmerkar-underscore", "django-countries", "edx-ace", + "edx-enterprise", "django-mysql", "edx-submissions", "edx-milestones", + "xblock-utils", "django-sekizai", "django-waffle", "edx-when", "edx-celeryutils", + "edx-bulk-grades", "event-tracking", "code-annotations", "django-webpack-loader", + "super-csv", "edx-drf-extensions", "social-auth-app-django", "django-js-asset", + "edx-proctoring", "edx-django-sites-extensions", "help-tokens", "django-multi-email-field", + "edx-rbac", "django-autocomplete-light", "django-user-tasks", "xss-utils", + "django-cache-memoize", "edx-auth-backends", "edx-api-doc-tools", "edxval", + "django-appconf", "lti-consumer-xblock", "edx-i18n-tools", "edx-django-utils", + "edx-toggles", "edx-rest-api-client", "xblock-drag-and-drop-v2", "done-xblock", + "django-debug-toolbar", "web-fragments", "django-celery-results", "django-filter", + "django-cors-headers", "edx-completion", "staff-graded-xblock"]' docs: build_badge: false python_version: null @@ -371,23 +367,27 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 261 - build_details: '{"total_duration": "13 minutes 18 seconds", "checks": [{"name": - "check migrations (ubuntu-24.04, 3.12, pinned, 7, 8)", "duration": "13 minutes - 5 seconds"}, {"name": "static-assets-check (ubuntu-24.04, 3.12, 20, 10.7.x, - 7.0)", "duration": "6 minutes 5 seconds"}, {"name": "Analyze (javascript-typescript)", - "duration": "3 minutes 46 seconds"}, {"name": "JS (ubuntu-latest, 20, 3.12)", - "duration": "3 minutes 44 seconds"}, {"name": "Analyze (python)", "duration": - "2 minutes 44 seconds"}, {"name": "Lint Python Imports", "duration": "2 minutes - 23 seconds"}, {"name": "Analyze (actions)", "duration": "0 minutes 51 seconds"}, - {"name": "update-pip-graph", "duration": "0 minutes 41 seconds"}, {"name": - "Migrations checks successful", "duration": "0 minutes 6 seconds"}]}' + branch_count: 265 + build_details: '{"total_duration": "8 minutes 0 seconds", "checks": [{"name": + "pylint lms-2", "duration": "7 minutes 53 seconds"}, {"name": "pylint openedx-2", + "duration": "6 minutes 58 seconds"}, {"name": "pylint openedx-1", "duration": + "5 minutes 56 seconds"}, {"name": "pylint lms-1", "duration": "5 minutes 19 + seconds"}, {"name": "pylint cms", "duration": "5 minutes 18 seconds"}, {"name": + "pylint common", "duration": "5 minutes 0 seconds"}, {"name": "Analyze (python)", + "duration": "4 minutes 29 seconds"}, {"name": "Analyze (javascript-typescript)", + "duration": "3 minutes 59 seconds"}, {"name": "pylint xmodule", "duration": + "3 minutes 45 seconds"}, {"name": "JS (ubuntu-latest, 20, 3.12)", "duration": + "3 minutes 30 seconds"}, {"name": "Lint Python Imports", "duration": "1 minutes + 46 seconds"}, {"name": "test (3.12)", "duration": "1 minutes 43 seconds"}, + {"name": "Analyze (actions)", "duration": "0 minutes 46 seconds"}, {"name": + "Verify __init__.py Files", "duration": "0 minutes 21 seconds"}, {"name": + "Pylint checks successful", "duration": "0 minutes 3 seconds"}]}' code_of_conduct: Other created_at: 2013-05-30 20:20:38 default_branch: master description: The Open edX LMS & Studio, powering education sites around the world! - disk_usage_kb: 2310661 - fork_count: 4298 + disk_usage_kb: 2311317 + fork_count: 4300 has_issues: true has_wiki: false is_archived: false @@ -395,9 +395,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 04:39:38 + last_push: 2026-06-08 05:24:10 license: GNU AGPLv3 - pulls_count: 159 + pulls_count: 157 github_actions: false language_bytes: css: 181797 @@ -405,7 +405,7 @@ language_bytes: html: 1441391 javascript: 5697092 makefile: 8779 - python: 29508861 + python: 29548540 shell: 15393 makefile: pip-installed: false diff --git a/individual_repo_data/openedx/openedx-proposals_repo_health.yaml b/individual_repo_data/openedx/openedx-proposals_repo_health.yaml index 60b7db3b..9e468c10 100644 --- a/individual_repo_data/openedx/openedx-proposals_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-proposals_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,30 +22,30 @@ dependencies: list: '' pypi: count: 30 - list: '["typing-extensions==4.15.0", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", - "accessible-pygments==0.0.5", "markupsafe==3.0.3", "sphinxcontrib-devhelp==2.0.0", - "sphinxext-rediraffe==0.3.0", "sphinx-copybutton==0.5.2", "roman-numerals==4.1.0", - "pygments==2.20.0", "jinja2==3.1.6", "pydata-sphinx-theme==0.16.1", "sphinxcontrib-jsmath==1.0.1", - "soupsieve==2.8.4", "urllib3==2.7.0", "idna==3.16", "babel==2.18.0", "alabaster==1.0.0", - "snowballstemmer==3.1.0", "certifi==2026.5.20", "imagesize==2.0.0", "packaging==26.2", - "sphinxcontrib-htmlhelp==2.1.0", "docutils==0.22.4", "sphinxcontrib-qthelp==2.0.0", - "requests==2.34.2", "charset-normalizer==3.4.7", "beautifulsoup4==4.14.3", - "sphinx-book-theme==1.2.0", "sphinx==9.1.0"]' + list: '["snowballstemmer==3.1.0", "certifi==2026.5.20", "jinja2==3.1.6", "sphinxcontrib-devhelp==2.0.0", + "urllib3==2.7.0", "docutils==0.22.4", "sphinx-copybutton==0.5.2", "imagesize==2.0.0", + "accessible-pygments==0.0.5", "sphinxcontrib-serializinghtml==2.0.0", + "beautifulsoup4==4.14.3", "roman-numerals==4.1.0", "sphinxcontrib-applehelp==2.0.0", + "typing-extensions==4.15.0", "pydata-sphinx-theme==0.16.1", "markupsafe==3.0.3", + "packaging==26.2", "pygments==2.20.0", "soupsieve==2.8.4", "sphinxext-rediraffe==0.3.0", + "alabaster==1.0.0", "sphinx==9.1.0", "charset-normalizer==3.4.7", "babel==2.18.0", + "requests==2.34.2", "idna==3.17", "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", + "sphinxcontrib-htmlhelp==2.1.0", "sphinx-book-theme==1.2.0"]' pypi_all: count: 45 - list: '["typing-extensions==4.15.0", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", - "accessible-pygments==0.0.5", "markupsafe==3.0.3", "sphinxcontrib-devhelp==2.0.0", - "starlette==1.1.0", "pyproject-hooks==1.2.0", "sphinxext-rediraffe==0.3.0", - "sphinx-copybutton==0.5.2", "roman-numerals==4.1.0", "sphinx-autobuild==2025.8.25", - "pygments==2.20.0", "jinja2==3.1.6", "pydata-sphinx-theme==0.16.1", "sphinxcontrib-jsmath==1.0.1", - "pip-tools==7.5.3", "anyio==4.13.0", "wheel==0.47.0", "soupsieve==2.8.4", - "build==1.5.0", "urllib3==2.7.0", "idna==3.16", "uvicorn==0.48.0", "babel==2.18.0", - "alabaster==1.0.0", "snowballstemmer==3.1.0", "certifi==2026.5.20", "imagesize==2.0.0", - "packaging==26.2", "sphinxcontrib-htmlhelp==2.1.0", "docutils==0.22.4", - "sphinxcontrib-qthelp==2.0.0", "h11==0.16.0", "setuptools==82.0.1", "requests==2.34.2", - "websockets==16.0", "charset-normalizer==3.4.7", "colorama==0.4.6", "pip==26.1.1", - "beautifulsoup4==4.14.3", "watchfiles==1.2.0", "sphinx-book-theme==1.2.0", - "click==8.4.1", "sphinx==9.1.0"]' + list: '["snowballstemmer==3.1.0", "anyio==4.13.0", "certifi==2026.5.20", "jinja2==3.1.6", + "sphinxcontrib-devhelp==2.0.0", "urllib3==2.7.0", "docutils==0.22.4", + "sphinx-copybutton==0.5.2", "watchfiles==1.2.0", "imagesize==2.0.0", "accessible-pygments==0.0.5", + "sphinxcontrib-serializinghtml==2.0.0", "sphinx-autobuild==2025.8.25", + "beautifulsoup4==4.14.3", "roman-numerals==4.1.0", "sphinxcontrib-applehelp==2.0.0", + "typing-extensions==4.15.0", "starlette==1.2.1", "uvicorn==0.48.0", "click==8.4.1", + "pydata-sphinx-theme==0.16.1", "markupsafe==3.0.3", "packaging==26.2", + "pygments==2.20.0", "soupsieve==2.8.4", "sphinxext-rediraffe==0.3.0", + "build==1.5.0", "alabaster==1.0.0", "colorama==0.4.6", "websockets==16.0", + "setuptools==82.0.1", "charset-normalizer==3.4.7", "sphinx==9.1.0", "pip-tools==7.5.3", + "babel==2.18.0", "pip==26.1.2", "requests==2.34.2", "wheel==0.47.0", "idna==3.17", + "sphinxcontrib-qthelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", "sphinxcontrib-htmlhelp==2.1.0", + "pyproject-hooks==1.2.0", "sphinx-book-theme==1.2.0", "h11==0.16.0"]' django_packages: django_42: count: 0 @@ -83,14 +83,13 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 30 - build_details: '{"total_duration": "0 minutes 46 seconds", "checks": [{"name": - "update-pip-graph", "duration": "0 minutes 40 seconds"}, {"name": "check_for_moved_files - (ubuntu-latest, 3.12)", "duration": "0 minutes 14 seconds"}]}' + build_details: '{"total_duration": "0 minutes 15 seconds", "checks": [{"name": + "check_for_moved_files (ubuntu-latest, 3.12)", "duration": "0 minutes 15 seconds"}]}' code_of_conduct: Other created_at: 2016-03-31 15:36:33 default_branch: master description: 'Proposals for Open edX architecture, best practices and processes ' - disk_usage_kb: 10407 + disk_usage_kb: 10413 fork_count: 44 has_issues: true has_wiki: false @@ -99,7 +98,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 14:20:32 + last_push: 2026-06-03 16:32:01 license: Other pulls_count: 1 github_actions: true @@ -126,18 +125,18 @@ ownership: {} pinned_python_dependencies: 2 readme: bad_links: + - 'https://openedx.org/r/how-to-contribute: 403' + - 'https://openedx.org/code-of-conduct/: 403' - 'https://github.com/openedx/openedx-proposals/blob/main/LICENSE.txt: 404' getting-help: false good_links: - https://docs.openedx.org/projects/openedx-proposals/ - - https://openedx.org/r/how-to-contribute - https://openedx.slack.com/archives/C1L370YTZ - https://discuss.openedx.org/c/announcements/17 - https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html - https://docs.openedx.org/en/latest/developers/quickstarts/first_openedx_pr.html - http://graphviz.org/ - https://discuss.openedx.org/ - - https://openedx.org/code-of-conduct/ - https://backstage.openedx.org/catalog/default/component/openedx-proposals - https://img.shields.io/badge/License-CC_BY--SA_4.0-lightgrey.svg - https://readthedocs.org/projects/openedx-proposals/badge/?version=latest diff --git a/individual_repo_data/openedx/openedx-translations_repo_health.yaml b/individual_repo_data/openedx/openedx-translations_repo_health.yaml index ac0d7bc0..1d2bda9c 100644 --- a/individual_repo_data/openedx/openedx-translations_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-translations_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -25,17 +25,17 @@ dependencies: list: '[]' pypi_all: count: 40 - list: '["pygments==2.19.2", "packaging==25.0", "path==16.16.0", "setuptools==80.9.0", - "lxml[html-clean]==6.0.2", "asttokens==3.0.1", "charset-normalizer==3.4.4", - "polib==1.2.0", "regex==2025.11.3", "lxml-html-clean==0.4.3", "python-slugify==8.0.4", - "requests==2.32.5", "sqlparse==0.5.4", "pip==25.3", "responses==0.25.8", - "pyseeyou==1.0.2", "six==1.17.0", "transifex-python==3.7.0", "text-unidecode==1.3", - "build==1.3.0", "certifi==2025.11.12", "future==1.0.0", "coverage[toml]==7.13.0", - "pytest==9.0.2", "urllib3==2.6.2", "wheel==0.45.1", "django==5.2.9", "click==8.3.1", - "transifex-client==0.12.5", "pyyaml==6.0.3", "pyproject-hooks==1.2.0", - "idna==3.11", "toolz==1.1.0", "pytest-cov==7.0.0", "edx-i18n-tools==1.9.0", - "parsimonious==0.11.0", "pluggy==1.6.0", "asgiref==3.11.0", "iniconfig==2.3.0", - "pip-tools==7.5.2"]' + list: '["responses==0.25.8", "setuptools==80.9.0", "pytest-cov==7.0.0", "click==8.3.1", + "pip==25.3", "pluggy==1.6.0", "build==1.3.0", "future==1.0.0", "regex==2025.11.3", + "transifex-python==3.7.0", "text-unidecode==1.3", "iniconfig==2.3.0", + "packaging==25.0", "edx-i18n-tools==1.9.0", "requests==2.32.5", "charset-normalizer==3.4.4", + "django==5.2.9", "python-slugify==8.0.4", "urllib3==2.6.2", "asttokens==3.0.1", + "idna==3.11", "pyproject-hooks==1.2.0", "transifex-client==0.12.5", "pyseeyou==1.0.2", + "coverage[toml]==7.13.0", "parsimonious==0.11.0", "certifi==2025.11.12", + "path==16.16.0", "sqlparse==0.5.4", "pygments==2.19.2", "wheel==0.45.1", + "pip-tools==7.5.2", "six==1.17.0", "pytest==9.0.2", "asgiref==3.11.0", + "lxml-html-clean==0.4.3", "toolz==1.1.0", "lxml[html-clean]==6.0.2", "pyyaml==6.0.3", + "polib==1.2.0"]' django_packages: django_42: count: 1 @@ -72,21 +72,14 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 68 - build_details: '{"total_duration": "0 minutes 44 seconds", "checks": [{"name": - "Dependabot", "duration": "0 minutes 44 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 59 seconds"}]}' + branch_count: 71 + build_details: '{"total_duration": "", "checks": []}' code_of_conduct: Other created_at: 2022-08-03 20:53:06 default_branch: main description: Open edX Translation files in sync with Transifex - disk_usage_kb: 481379 - fork_count: 160 + disk_usage_kb: 481580 + fork_count: 159 has_issues: true has_wiki: false is_archived: false @@ -94,9 +87,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 02:38:43 + last_push: 2026-06-08 01:57:48 license: Creative Commons Attribution Share Alike 4.0 International - pulls_count: 53 + pulls_count: 57 github_actions: false language_bytes: css: 0 @@ -121,18 +114,20 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/openedx-atlas: 504' + - 'https://github.com/openedx/openedx-translations/actions/workflows/sync-translations.yml: + 504' - 'https://app.transifex.com/open-edx/openedx-translations/dashboard/: 403' + - 'https://github.com/openedx/openedx-translations/tree/main/.github/workflows: + 504' getting-help: false good_links: - https://app.transifex.com/open-edx/ - https://github.com/openedx/open-edx-proposals/pull/367 - - https://github.com/openedx/openedx-atlas - - https://github.com/openedx/openedx-translations/actions/workflows/sync-translations.yml - https://docs.tutor.edly.io/tutorials/nightly.html - https://github.com/openedx/openedx-platform - https://docs.tutor.edly.io/ - https://github.com/openedx/openedx-platform/tree/release/ulmo - - https://github.com/openedx/openedx-translations/tree/main/.github/workflows - https://github.com/openedx/openedx-translations/blob/main/Makefile irc-missing: true mailing-list-missing: true diff --git a/individual_repo_data/openedx/openedx-tutor-plugins_repo_health.yaml b/individual_repo_data/openedx/openedx-tutor-plugins_repo_health.yaml index 6201d153..2ef4594d 100644 --- a/individual_repo_data/openedx/openedx-tutor-plugins_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-tutor-plugins_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -104,6 +104,8 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/overhangio/cookiecutter-tutor-plugin: 504' + - 'https://github.com/openedx/openedx-tutor-plugins/issues: 504' - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/openedx-tutor-plugins: 404' getting-help: true @@ -112,9 +114,7 @@ readme: - https://github.com/openedx/openedx-tutor-plugins/blob/main/LICENSE - https://img.shields.io/badge/Status-Maintained-brightgreen - https://docs.tutor.overhang.io/install.html - - https://github.com/overhangio/cookiecutter-tutor-plugin - https://discuss.openedx.org - - https://github.com/openedx/openedx-tutor-plugins/issues - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.slack.com/archives/CGE253B7V diff --git a/individual_repo_data/openedx/openedx-user-groups_repo_health.yaml b/individual_repo_data/openedx/openedx-user-groups_repo_health.yaml index 8ae371d2..24a83f43 100644 --- a/individual_repo_data/openedx/openedx-user-groups_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-user-groups_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,44 +22,45 @@ dependencies: list: '' pypi: count: 4 - list: '["django==4.2.21", "sqlparse==0.5.3", "asgiref==3.8.1", "openedx-atlas==0.7.0"]' + list: '["django==4.2.21", "asgiref==3.8.1", "sqlparse==0.5.3", "openedx-atlas==0.7.0"]' pypi_all: count: 105 - list: '["lxml-html-clean==0.4.2", "cachetools==6.0.0", "filelock==3.18.0", - "pyproject-api==1.9.1", "packaging==25.0", "edx-lint==5.6.0", "platformdirs==4.3.8", - "pylint-django==2.6.1", "markdown-it-py==3.0.0", "rich==14.0.0", "build==1.3.0", - "path==16.16.0", "doc8==1.1.2", "pluggy==1.6.0", "tomlkit==0.13.2", "backports-tarfile==1.2.0", - "pycparser==2.22", "imagesize==1.4.1", "pylint==3.3.7", "pyproject-hooks==1.2.0", - "dill==0.4.0", "jaraco-context==6.0.1", "jinja2==3.1.6", "pytest-cov==6.1.1", - "polib==1.2.0", "mccabe==0.7.0", "code-annotations==2.3.0", "click==8.2.1", - "markupsafe==3.0.2", "django==4.2.21", "twine==6.1.0", "accessible-pygments==0.0.5", - "six==1.17.0", "keyring==25.6.0", "asgiref==3.8.1", "iniconfig==2.1.0", - "requests-toolbelt==1.0.0", "pydocstyle==6.3.0", "lxml[html-clean]==5.4.0", - "diff-cover==9.3.1", "openedx-atlas==0.7.0", "restructuredtext-lint==1.4.0", - "sphinxcontrib-applehelp==2.0.0", "beautifulsoup4==4.13.4", "astroid==3.3.10", - "pydata-sphinx-theme==0.15.4", "pytest-django==4.11.1", "virtualenv==20.31.2", - "jaraco-classes==3.4.0", "zipp==3.23.0", "sphinx-book-theme==1.1.4", "id==1.5.0", - "chardet==5.2.0", "requests==2.32.3", "typing-extensions==4.13.2", "stevedore==5.4.1", - "sqlparse==0.5.3", "jaraco-functools==4.1.0", "sphinxcontrib-htmlhelp==2.1.0", - "sphinx==8.2.3", "docutils==0.21.2", "tox==4.26.0", "soupsieve==2.7", - "snowballstemmer==3.0.1", "mdurl==0.1.2", "pygments==2.19.1", "sphinxcontrib-serializinghtml==2.0.0", - "sphinxcontrib-jsmath==1.0.1", "idna==3.10", "pyyaml==6.0.2", "python-slugify==8.0.4", - "isort==6.0.1", "build==1.2.2.post1", "rfc3986==2.0.0", "colorama==0.4.6", - "pylint-plugin-utils==0.8.2", "setuptools==80.9.0", "nh3==0.2.21", "certifi==2025.4.26", - "distlib==0.3.9", "coverage[toml]==7.8.2", "cffi==1.17.1", "cryptography==45.0.3", - "pip-tools==7.5.0", "jeepney==0.9.0", "more-itertools==10.7.0", "readme-renderer==44.0", - "secretstorage==3.3.3", "click-log==0.4.0", "alabaster==1.0.0", "pbr==6.1.1", - "edx-i18n-tools==1.9.0", "pycodestyle==2.13.0", "wheel==0.45.1", "roman-numerals-py==3.1.0", - "importlib-metadata==8.7.0", "pylint-celery==0.3", "pytest==8.3.5", "text-unidecode==1.3", - "charset-normalizer==3.4.2", "urllib3==2.2.3", "sphinxcontrib-devhelp==2.0.0", - "sphinxcontrib-qthelp==2.0.0", "pip==24.2", "babel==2.17.0"]' + list: '["jaraco-functools==4.1.0", "sphinxcontrib-applehelp==2.0.0", "edx-i18n-tools==1.9.0", + "sphinx==8.2.3", "pycodestyle==2.13.0", "click-log==0.4.0", "build==1.2.2.post1", + "filelock==3.18.0", "jaraco-classes==3.4.0", "sphinxcontrib-serializinghtml==2.0.0", + "typing-extensions==4.13.2", "diff-cover==9.3.1", "pytest-django==4.11.1", + "pytest==8.3.5", "astroid==3.3.10", "cachetools==6.0.0", "pip==24.2", + "lxml[html-clean]==5.4.0", "soupsieve==2.7", "pygments==2.19.1", "platformdirs==4.3.8", + "more-itertools==10.7.0", "jeepney==0.9.0", "twine==6.1.0", "markupsafe==3.0.2", + "pylint==3.3.7", "stevedore==5.4.1", "readme-renderer==44.0", "pycparser==2.22", + "requests-toolbelt==1.0.0", "openedx-atlas==0.7.0", "python-slugify==8.0.4", + "tomlkit==0.13.2", "isort==6.0.1", "id==1.5.0", "asgiref==3.8.1", "pluggy==1.6.0", + "lxml-html-clean==0.4.2", "beautifulsoup4==4.13.4", "pytest-cov==6.1.1", + "snowballstemmer==3.0.1", "cryptography==45.0.3", "accessible-pygments==0.0.5", + "keyring==25.6.0", "urllib3==2.2.3", "babel==2.17.0", "iniconfig==2.1.0", + "path==16.16.0", "certifi==2025.4.26", "sphinxcontrib-qthelp==2.0.0", + "rich==14.0.0", "sphinxcontrib-jsmath==1.0.1", "dill==0.4.0", "restructuredtext-lint==1.4.0", + "coverage[toml]==7.8.2", "pyyaml==6.0.2", "pip-tools==7.5.0", "sqlparse==0.5.3", + "roman-numerals-py==3.1.0", "secretstorage==3.3.3", "pydocstyle==6.3.0", + "packaging==25.0", "virtualenv==20.31.2", "click==8.2.1", "code-annotations==2.3.0", + "jinja2==3.1.6", "jaraco-context==6.0.1", "pydata-sphinx-theme==0.15.4", + "rfc3986==2.0.0", "pyproject-api==1.9.1", "charset-normalizer==3.4.2", + "mccabe==0.7.0", "sphinx-book-theme==1.1.4", "build==1.3.0", "edx-lint==5.6.0", + "markdown-it-py==3.0.0", "setuptools==80.9.0", "cffi==1.17.1", "text-unidecode==1.3", + "pylint-plugin-utils==0.8.2", "wheel==0.45.1", "pylint-django==2.6.1", + "sphinxcontrib-devhelp==2.0.0", "tox==4.26.0", "polib==1.2.0", "sphinxcontrib-htmlhelp==2.1.0", + "nh3==0.2.21", "alabaster==1.0.0", "backports-tarfile==1.2.0", "idna==3.10", + "zipp==3.23.0", "docutils==0.21.2", "distlib==0.3.9", "django==4.2.21", + "pyproject-hooks==1.2.0", "six==1.17.0", "pbr==6.1.1", "chardet==5.2.0", + "imagesize==1.4.1", "requests==2.32.3", "colorama==0.4.6", "doc8==1.1.2", + "pylint-celery==0.3", "mdurl==0.1.2", "importlib-metadata==8.7.0"]' django_packages: django_42: count: 4 - list: '["pylint-django", "code-annotations", "pytest-django", "edx-i18n-tools"]' + list: '["code-annotations", "edx-i18n-tools", "pytest-django", "pylint-django"]' total: count: 4 - list: '["pylint-django", "code-annotations", "pytest-django", "edx-i18n-tools"]' + list: '["code-annotations", "edx-i18n-tools", "pytest-django", "pylint-django"]' upgraded: count: 2 list: '["code-annotations", "edx-i18n-tools"]' diff --git a/individual_repo_data/openedx/openedx-webhooks-data-schema_repo_health.yaml b/individual_repo_data/openedx/openedx-webhooks-data-schema_repo_health.yaml index eb829b05..a3d3da6a 100644 --- a/individual_repo_data/openedx/openedx-webhooks-data-schema_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-webhooks-data-schema_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -25,33 +25,34 @@ dependencies: list: '["pyyaml==6.0.2", "schema==0.7.7"]' pypi_all: count: 74 - list: '["pyproject-api==1.9.0", "docutils==0.21.2", "diff-cover==9.2.4", "six==1.17.0", - "urllib3==2.2.3", "chardet==5.2.0", "charset-normalizer==3.4.1", "tox==4.25.0", - "idna==3.10", "build==1.2.2.post1", "sphinxcontrib-htmlhelp==2.1.0", "mccabe==0.7.0", - "doc8==1.1.2", "click-log==0.4.0", "isort==6.0.1", "nh3==0.2.21", "iniconfig==2.1.0", - "pylint-plugin-utils==0.8.2", "pbr==6.1.1", "snowballstemmer==2.2.0", - "click==8.1.8", "sphinx==8.2.3", "accessible-pygments==0.0.5", "wheel==0.45.1", - "code-annotations==2.3.0", "filelock==3.18.0", "pytest-cov==6.1.1", "pylint-celery==0.3", - "pytest==8.3.5", "pygments==2.19.1", "distlib==0.3.9", "sphinxcontrib-applehelp==2.0.0", - "pycodestyle==2.13.0", "python-slugify==8.0.4", "pip==24.2", "dill==0.4.0", - "edx-lint==5.6.0", "sphinxcontrib-qthelp==2.0.0", "alabaster==1.0.0", - "schema==0.7.7", "certifi==2025.4.26", "pylint-django==2.6.1", "babel==2.17.0", - "restructuredtext-lint==1.4.0", "sphinxcontrib-jsmath==1.0.1", "pip-tools==7.4.1", - "beautifulsoup4==4.13.4", "pydata-sphinx-theme==0.15.4", "requests==2.32.3", - "pyyaml==6.0.2", "virtualenv==20.30.0", "markupsafe==3.0.2", "platformdirs==4.3.7", - "soupsieve==2.7", "setuptools==80.1.0", "jinja2==3.1.6", "sphinx-book-theme==1.1.4", - "colorama==0.4.6", "astroid==3.3.9", "packaging==25.0", "text-unidecode==1.3", - "readme-renderer==44.0", "pluggy==1.5.0", "sphinxcontrib-serializinghtml==2.0.0", - "pylint==3.3.6", "cachetools==5.5.2", "roman-numerals-py==3.1.0", "sphinxcontrib-devhelp==2.0.0", - "stevedore==5.4.1", "typing-extensions==4.13.2", "pyproject-hooks==1.2.0", - "imagesize==1.4.1", "tomlkit==0.13.2", "coverage[toml]==7.8.0"]' + list: '["urllib3==2.2.3", "pylint-celery==0.3", "schema==0.7.7", "colorama==0.4.6", + "pyproject-hooks==1.2.0", "sphinx==8.2.3", "sphinxcontrib-jsmath==1.0.1", + "readme-renderer==44.0", "code-annotations==2.3.0", "platformdirs==4.3.7", + "edx-lint==5.6.0", "pip==24.2", "dill==0.4.0", "click-log==0.4.0", "idna==3.10", + "diff-cover==9.2.4", "text-unidecode==1.3", "chardet==5.2.0", "stevedore==5.4.1", + "certifi==2025.4.26", "astroid==3.3.9", "docutils==0.21.2", "requests==2.32.3", + "soupsieve==2.7", "six==1.17.0", "babel==2.17.0", "nh3==0.2.21", "pluggy==1.5.0", + "pbr==6.1.1", "accessible-pygments==0.0.5", "virtualenv==20.30.0", "charset-normalizer==3.4.1", + "snowballstemmer==2.2.0", "click==8.1.8", "pytest-cov==6.1.1", "pytest==8.3.5", + "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", + "filelock==3.18.0", "pylint-plugin-utils==0.8.2", "sphinxcontrib-htmlhelp==2.1.0", + "tomlkit==0.13.2", "tox==4.25.0", "pylint==3.3.6", "pip-tools==7.4.1", + "pygments==2.19.1", "mccabe==0.7.0", "pyyaml==6.0.2", "markupsafe==3.0.2", + "setuptools==80.1.0", "beautifulsoup4==4.13.4", "doc8==1.1.2", "distlib==0.3.9", + "imagesize==1.4.1", "jinja2==3.1.6", "build==1.2.2.post1", "wheel==0.45.1", + "roman-numerals-py==3.1.0", "sphinxcontrib-qthelp==2.0.0", "alabaster==1.0.0", + "coverage[toml]==7.8.0", "pyproject-api==1.9.0", "packaging==25.0", "cachetools==5.5.2", + "sphinx-book-theme==1.1.4", "typing-extensions==4.13.2", "iniconfig==2.1.0", + "isort==6.0.1", "restructuredtext-lint==1.4.0", "sphinxcontrib-applehelp==2.0.0", + "pycodestyle==2.13.0", "pydata-sphinx-theme==0.15.4", "python-slugify==8.0.4", + "pylint-django==2.6.1"]' django_packages: django_42: count: 2 - list: '["pylint-django", "code-annotations"]' + list: '["code-annotations", "pylint-django"]' total: count: 2 - list: '["pylint-django", "code-annotations"]' + list: '["code-annotations", "pylint-django"]' upgraded: count: 1 list: '["code-annotations"]' diff --git a/individual_repo_data/openedx/openedx-webhooks_repo_health.yaml b/individual_repo_data/openedx/openedx-webhooks_repo_health.yaml index ee68d086..5252666c 100644 --- a/individual_repo_data/openedx/openedx-webhooks_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-webhooks_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,54 +22,54 @@ dependencies: list: '' pypi: count: 52 - list: '["click-plugins==1.1.1.2", "sentry-sdk[flask]==2.59.0", "requests-oauthlib==2.0.0", - "jira==3.10.5", "markupsafe==3.0.3", "typing-extensions==4.15.0", "blinker==1.9.0", - "billiard==4.2.4", "uritemplate==4.2.0", "boltons==25.0.0", "glom==25.12.0", - "pyyaml==6.0.3", "celery[redis]==5.6.3", "click-repl==0.3.0", "defusedxml==0.7.1", - "attrs==26.1.0", "tzlocal==5.3.1", "jinja2==3.1.6", "requests==2.33.1", - "flask==3.1.3", "pycparser==3.0", "urllib3==2.7.0", "redis==6.4.0", "face==26.0.0", - "cachetools==7.1.1", "cffi==2.0.0", "oauthlib[signedtoken]==3.3.1", "prompt-toolkit==3.0.52", - "requests-toolbelt==1.0.0", "kombu[redis]==5.6.2", "itsdangerous==2.2.0", - "werkzeug==3.1.8", "python-dateutil==2.9.0.post0", "github3-py==4.0.1", - "tzdata==2026.2", "packaging==26.2", "urlobject==3.0.0", "gunicorn==26.0.0", - "amqp==5.3.1", "vine==5.1.0", "arrow==1.4.0", "click-didyoumean==0.3.1", - "click==8.3.3", "flask-sslify==0.1.5", "logging-tree==1.10", "cryptography==48.0.0", - "wcwidth==0.7.0", "idna==3.14", "six==1.17.0", "charset-normalizer==3.4.7", - "pyjwt[crypto]==2.12.1", "certifi==2026.4.22"]' + list: '["idna==3.17", "requests-toolbelt==1.0.0", "sentry-sdk[flask]==2.61.0", + "tzdata==2026.2", "pycparser==3.0", "prompt-toolkit==3.0.52", "glom==25.12.0", + "amqp==5.3.1", "celery[redis]==5.6.3", "defusedxml==0.7.1", "kombu[redis]==5.6.2", + "click-repl==0.3.0", "flask-sslify==0.1.5", "cffi==2.0.0", "cryptography==48.0.0", + "python-dateutil==2.9.0.post0", "cachetools==7.1.4", "face==26.0.0", "certifi==2026.5.20", + "tzlocal==5.3.1", "boltons==25.0.0", "six==1.17.0", "itsdangerous==2.2.0", + "uritemplate==4.2.0", "logging-tree==1.10", "urllib3==2.7.0", "click==8.4.1", + "jira==3.10.5", "jinja2==3.1.6", "attrs==26.1.0", "click-didyoumean==0.3.1", + "typing-extensions==4.15.0", "oauthlib[signedtoken]==3.3.1", "markupsafe==3.0.3", + "pyjwt[crypto]==2.13.0", "pyyaml==6.0.3", "requests==2.34.2", "requests-oauthlib==2.0.0", + "arrow==1.4.0", "gunicorn==26.0.0", "billiard==4.2.4", "flask==3.1.3", + "click-plugins==1.1.1.2", "vine==5.1.0", "redis==6.4.0", "wcwidth==0.7.0", + "packaging==26.2", "charset-normalizer==3.4.7", "blinker==1.9.0", "github3-py==4.0.1", + "urlobject==3.0.0", "werkzeug==3.1.8"]' pypi_all: count: 118 - list: '["jira==3.10.5", "python-slugify==8.0.4", "sphinx==9.1.0", "coverage[toml]==7.14.0", - "blinker==1.9.0", "tzlocal==5.3.1", "jinja2==3.1.6", "requests==2.33.1", - "flask==3.1.3", "pycparser==3.0", "pathspec==1.1.1", "face==26.0.0", "code-annotations==3.0.0", - "requests-toolbelt==1.0.0", "tzdata==2026.2", "stevedore==5.7.0", "gunicorn==26.0.0", - "amqp==5.3.1", "snowballstemmer==3.0.1", "types-requests==2.33.0.20260508", - "sphinxcontrib-applehelp==2.0.0", "mdurl==0.1.2", "pytest-cov==7.1.0", - "click-plugins==1.1.1.2", "certifi==2026.4.22", "pytest-repeat==0.9.4", - "readme-renderer==44.0", "mccabe==0.7.0", "pylint-plugin-utils==0.9.0", - "pylint-pytest==1.1.8", "imagesize==2.0.0", "schema==0.7.8", "glom==25.12.0", - "pyyaml==6.0.3", "celery[redis]==5.6.3", "click-repl==0.3.0", "pygments==2.20.0", - "sphinxcontrib-serializinghtml==2.0.0", "wheel==0.47.0", "alabaster==1.0.0", - "pytest==9.0.3", "pytz==2026.2", "cachetools==7.1.1", "cffi==2.0.0", "oauthlib[signedtoken]==3.3.1", - "kombu[redis]==5.6.2", "ast-serialize==0.3.0", "itsdangerous==2.2.0", - "pytest-mock==3.15.1", "werkzeug==3.1.8", "isort==8.0.1", "urlobject==3.0.0", - "edx-lint==6.1.0", "markdown-it-py==4.2.0", "types-cachetools==7.0.0.20260503", - "vine==5.1.0", "logging-tree==1.10", "click-didyoumean==0.3.1", "flask-sslify==0.1.5", - "cryptography==48.0.0", "wcwidth==0.7.0", "six==1.17.0", "charset-normalizer==3.4.7", - "sentry-sdk[flask]==2.59.0", "requests-oauthlib==2.0.0", "markupsafe==3.0.3", - "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-httpdomain==2.0.0", "typing-extensions==4.15.0", - "nh3==0.3.5", "defusedxml==0.7.1", "mypy==2.0.0", "roman-numerals==4.1.0", - "types-pyyaml==6.0.12.20260510", "attrs==26.1.0", "iniconfig==2.3.0", - "urllib3==2.7.0", "mypy-extensions==1.1.0", "redis==6.4.0", "setuptools==82.0.1", - "python-dateutil==2.9.0.post0", "python-dotenv==1.2.2", "docutils==0.22.4", - "build==1.5.0", "tomlkit==0.15.0", "pylint==4.0.5", "pytest==8.2.0", "sphinxcontrib-htmlhelp==2.1.0", - "prompt-toolkit==3.0.52", "text-unidecode==1.3", "freezegun==1.5.5", "astroid==4.0.4", - "pyproject-hooks==1.2.0", "scriv==1.8.0", "sphinxcontrib-jsmath==1.0.1", - "platformdirs==4.9.6", "billiard==4.2.4", "sphinxcontrib-qthelp==2.0.0", - "sphinx-rtd-theme==3.1.0", "uritemplate==4.2.0", "boltons==25.0.0", "requests-mock==1.12.1", - "click-log==0.4.0", "babel==2.18.0", "pluggy==1.6.0", "pip-tools==7.5.3", - "dill==0.4.1", "github3-py==4.0.1", "pylint-django==2.7.0", "packaging==26.2", - "librt==0.11.0", "sphinxcontrib-jquery==4.1", "arrow==1.4.0", "click==8.3.3", - "pylint-celery==0.3", "idna==3.14", "pip==26.1.1", "pyjwt[crypto]==2.12.1"]' + list: '["sentry-sdk[flask]==2.61.0", "amqp==5.3.1", "pluggy==1.6.0", "click-repl==0.3.0", + "python-dateutil==2.9.0.post0", "snowballstemmer==3.1.0", "mypy-extensions==1.1.0", + "certifi==2026.5.20", "tzlocal==5.3.1", "isort==8.0.1", "pytest-cov==7.1.0", + "pip==26.1.2", "pathspec==1.1.1", "edx-lint==6.1.0", "jinja2==3.1.6", + "attrs==26.1.0", "mypy==2.1.0", "pytest==9.0.3", "sphinxcontrib-devhelp==2.0.0", + "sphinxcontrib-httpdomain==2.0.0", "urlobject==3.0.0", "alabaster==1.0.0", + "tomlkit==0.15.0", "coverage[toml]==7.14.1", "pytest==8.2.0", "werkzeug==3.1.8", + "pylint-django==2.7.0", "code-annotations==3.0.0", "celery[redis]==5.6.3", + "flask-sslify==0.1.5", "python-dotenv==1.2.2", "python-slugify==8.0.4", + "pip-tools==7.5.3", "build==1.5.0", "click-didyoumean==0.3.1", "pylint-celery==0.3", + "oauthlib[signedtoken]==3.3.1", "markupsafe==3.0.3", "markdown-it-py==4.2.0", + "pygments==2.20.0", "roman-numerals==4.1.0", "pyyaml==6.0.3", "gunicorn==26.0.0", + "billiard==4.2.4", "platformdirs==4.10.0", "stevedore==5.8.0", "mccabe==0.7.0", + "blinker==1.9.0", "librt==0.11.0", "mdurl==0.1.2", "pycparser==3.0", "prompt-toolkit==3.0.52", + "pyproject-hooks==1.2.0", "sphinx==9.1.0", "schema==0.7.8", "sphinxcontrib-serializinghtml==2.0.0", + "pytz==2026.2", "defusedxml==0.7.1", "pytest-mock==3.15.1", "cryptography==48.0.0", + "types-cachetools==7.0.0.20260518", "sphinxcontrib-jquery==4.1", "dill==0.4.1", + "six==1.17.0", "uritemplate==4.2.0", "urllib3==2.7.0", "logging-tree==1.10", + "click==8.4.1", "wheel==0.47.0", "sphinxcontrib-jsmath==1.0.1", "pyjwt[crypto]==2.13.0", + "pylint==4.0.5", "requests-mock==1.12.1", "arrow==1.4.0", "text-unidecode==1.3", + "flask==3.1.3", "vine==5.1.0", "freezegun==1.5.5", "redis==6.4.0", "packaging==26.2", + "charset-normalizer==3.4.7", "github3-py==4.0.1", "astroid==4.0.4", "iniconfig==2.3.0", + "readme-renderer==44.0", "click-log==0.4.0", "idna==3.17", "babel==2.18.0", + "requests-toolbelt==1.0.0", "tzdata==2026.2", "glom==25.12.0", "sphinxcontrib-htmlhelp==2.1.0", + "kombu[redis]==5.6.2", "sphinxcontrib-qthelp==2.0.0", "cffi==2.0.0", "cachetools==7.1.4", + "face==26.0.0", "boltons==25.0.0", "scriv==1.8.0", "pylint-pytest==1.1.8", + "itsdangerous==2.2.0", "sphinx-rtd-theme==3.1.0", "jira==3.10.5", "nh3==0.3.5", + "pylint-plugin-utils==0.9.0", "setuptools==82.0.1", "docutils==0.22.4", + "types-requests==2.33.0.20260518", "typing-extensions==4.15.0", "sphinxcontrib-applehelp==2.0.0", + "requests==2.34.2", "requests-oauthlib==2.0.0", "pytest-repeat==0.9.4", + "types-pyyaml==6.0.12.20260518", "click-plugins==1.1.1.2", "wcwidth==0.7.0", + "ast-serialize==0.5.0", "imagesize==2.0.0"]' django_packages: django_42: count: 2 @@ -107,25 +107,23 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 3 - build_details: '{"total_duration": "1992 minutes 29 seconds", "checks": [{"name": + build_details: '{"total_duration": "9237 minutes 30 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 16 seconds"}, {"name": "Dependabot", "duration": "0 minutes 35 - seconds"}, {"name": "Tests (ubuntu-latest, 3.12)", "duration": "0 minutes - 34 seconds"}, {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 - seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "-1 minutes 54 seconds"}]}' + "1 minutes 15 seconds"}, {"name": "Tests (ubuntu-latest, 3.12)", "duration": + "0 minutes 39 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes + 28 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, + {"name": "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2014-07-09 17:08:56 default_branch: master description: Webhooks for the Open edX GitHub and JIRA - disk_usage_kb: 1625 + disk_usage_kb: 1633 fork_count: 21 has_issues: true has_wiki: false @@ -134,7 +132,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:43:06 + last_push: 2026-06-08 00:41:48 license: Apache License 2.0 pulls_count: 2 github_actions: true @@ -166,6 +164,7 @@ readme: - 'https://github.com/organizations/: 404' - 'https://openedx-webhooks.herokuapp.com/github/hook-receiver: 405' - 'https://openedx.org/cla: 403' + - 'http://openedx-webhooks.readthedocs.org/en/latest/: 429' getting-help: false good_links: - https://dashboard.heroku.com/apps/openedx-webhooks-staging/resources @@ -185,7 +184,6 @@ readme: - http://codecov.io/github/edx/openedx-webhooks/coverage.svg?branch=master - http://codecov.io/github/edx/openedx-webhooks?branch=master - https://readthedocs.org/projects/openedx-webhooks/badge/?version=latest - - http://openedx-webhooks.readthedocs.org/en/latest/ irc-missing: true mailing-list-missing: true security: false @@ -226,13 +224,13 @@ travis_yml: ubuntu_packages: apt_get_packages: [] docker_packages: + - ca-certificates + - libssl-dev - python3.12-dev - language-pack-en - curl + - gnupg - python3-pip - - libssl-dev - git-core - - ca-certificates - - gnupg - python3.12 yml_files: '[]' diff --git a/individual_repo_data/openedx/openedx-wordpress-ecommerce_repo_health.yaml b/individual_repo_data/openedx/openedx-wordpress-ecommerce_repo_health.yaml index 9afab150..7c8d5ba7 100644 --- a/individual_repo_data/openedx/openedx-wordpress-ecommerce_repo_health.yaml +++ b/individual_repo_data/openedx/openedx-wordpress-ecommerce_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -25,19 +25,19 @@ dependencies: list: '[]' pypi_all: count: 46 - list: '["imagesize==2.0.0", "markupsafe==3.0.3", "certifi==2026.2.25", "watchfiles==1.1.1", - "websockets==16.0", "build==1.4.2", "jinja2==3.1.6", "snowballstemmer==3.0.1", - "pyproject-hooks==1.2.0", "sphinx-copybutton==0.5.2", "typing-extensions==4.15.0", - "sphinxcontrib-qthelp==2.0.0", "pygments==2.20.0", "sphinxcontrib-mermaid==2.0.1", - "docutils==0.22.4", "sphinx-book-theme==1.2.0", "soupsieve==2.8.3", "accessible-pygments==0.0.5", - "h11==0.16.0", "anyio==4.13.0", "click==8.3.2", "pip==26.0.1", "alabaster==1.0.0", - "babel==2.18.0", "idna==3.11", "sphinx-autobuild==2025.8.25", "sphinxcontrib-applehelp==2.0.0", - "requests==2.33.1", "sphinxcontrib-jsmath==1.0.1", "charset-normalizer==3.4.7", - "colorama==0.4.6", "sphinxcontrib-serializinghtml==2.0.0", "sphinx==9.1.0", - "pyyaml==6.0.3", "beautifulsoup4==4.14.3", "packaging==26.0", "pydata-sphinx-theme==0.16.1", - "sphinxcontrib-devhelp==2.0.0", "setuptools==82.0.1", "pip-tools==7.5.3", - "wheel==0.46.3", "uvicorn==0.44.0", "starlette==1.0.0", "urllib3==2.6.3", - "roman-numerals==4.1.0", "sphinxcontrib-htmlhelp==2.1.0"]' + list: '["starlette==1.0.0", "sphinx==9.1.0", "sphinxcontrib-devhelp==2.0.0", + "websockets==16.0", "accessible-pygments==0.0.5", "h11==0.16.0", "click==8.3.2", + "certifi==2026.2.25", "soupsieve==2.8.3", "sphinx-autobuild==2025.8.25", + "anyio==4.13.0", "imagesize==2.0.0", "sphinx-copybutton==0.5.2", "sphinxcontrib-serializinghtml==2.0.0", + "typing-extensions==4.15.0", "pip==26.0.1", "pip-tools==7.5.3", "sphinxcontrib-qthelp==2.0.0", + "uvicorn==0.44.0", "beautifulsoup4==4.14.3", "pyyaml==6.0.3", "jinja2==3.1.6", + "requests==2.33.1", "pygments==2.20.0", "wheel==0.46.3", "sphinxcontrib-jsmath==1.0.1", + "babel==2.18.0", "sphinxcontrib-htmlhelp==2.1.0", "setuptools==82.0.1", + "pyproject-hooks==1.2.0", "build==1.4.2", "alabaster==1.0.0", "markupsafe==3.0.3", + "sphinxcontrib-mermaid==2.0.1", "sphinxcontrib-applehelp==2.0.0", "roman-numerals==4.1.0", + "docutils==0.22.4", "sphinx-book-theme==1.2.0", "pydata-sphinx-theme==0.16.1", + "packaging==26.0", "urllib3==2.6.3", "idna==3.11", "snowballstemmer==3.0.1", + "charset-normalizer==3.4.7", "colorama==0.4.6", "watchfiles==1.1.1"]' django_packages: django_42: count: 0 @@ -74,16 +74,17 @@ github: allows_merge_commit: false allows_rebase_merge: true allows_squash_merge: true - branch_count: 13 - build_details: '{"total_duration": "8838 minutes 27 seconds", "checks": [{"name": - "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "build-test", - "duration": "0 minutes 10 seconds"}]}' + branch_count: 14 + build_details: '{"total_duration": "20812 minutes 5 seconds", "checks": [{"name": + "Dependabot", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 24 seconds"}, {"name": "build-test", "duration": "0 + minutes 10 seconds"}]}' code_of_conduct: Other created_at: 2023-06-05 21:25:23 default_branch: main description: You can sell your Open edX courses with WooCommerce using this free and open-source WordPress plugin. - disk_usage_kb: 2183 + disk_usage_kb: 2187 fork_count: 13 has_issues: true has_wiki: false @@ -92,9 +93,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-20 00:04:34 + last_push: 2026-06-03 10:56:42 license: GNU GPLv2 - pulls_count: 1 + pulls_count: 2 github_actions: false language_bytes: css: 2477 @@ -119,15 +120,15 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: - - 'https://wordpress.org/plugins/woocommerce: 429' + - 'https://github.com/openedx/openedx-wordpress-ecommerce/issues: 504' getting-help: false good_links: - https://github.com/openedx/edx-platform - https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/decisions/0002-api-connection.html - https://openedx.org/terms-of-use/ + - https://wordpress.org/plugins/woocommerce - https://github.com/openedx/openedx-wordpress-ecommerce/releases - https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/plugin_quickstart.html - - https://github.com/openedx/openedx-wordpress-ecommerce/issues - https://docs.openedx.org/projects/wordpress-ecommerce-plugin/en/latest/index.html - https://openedx.atlassian.net/wiki/spaces/COMM/pages/941457737/How+to+Start+Contributing+Code irc-missing: true diff --git a/individual_repo_data/openedx/paragon_repo_health.yaml b/individual_repo_data/openedx/paragon_repo_health.yaml index 983d3e6a..974be1a7 100644 --- a/individual_repo_data/openedx/paragon_repo_health.yaml +++ b/individual_repo_data/openedx/paragon_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -97,25 +97,16 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 177 - build_details: '{"total_duration": "12 minutes 19 seconds", "checks": [{"name": - "Release", "duration": "12 minutes 19 seconds"}, {"name": "tests", "duration": - "10 minutes 29 seconds"}, {"name": "Pages changed - paragon-openedx-v23", - "duration": "2 minutes 33 seconds"}, {"name": "Header rules - paragon-openedx-v23", - "duration": "2 minutes 33 seconds"}, {"name": "Redirect rules - paragon-openedx-v23", - "duration": "2 minutes 33 seconds"}, {"name": "Pages changed - paragon-openedx", - "duration": "1 minutes 36 seconds"}, {"name": "Header rules - paragon-openedx", - "duration": "1 minutes 36 seconds"}, {"name": "Redirect rules - paragon-openedx", - "duration": "1 minutes 36 seconds"}, {"name": "commitlint / commitlint", "duration": - "0 minutes 16 seconds"}, {"name": "Syncing branches", "duration": "0 minutes - 8 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes - 6 seconds"}, {"name": "version-check / version-check", "duration": "0 minutes - 4 seconds"}]}' + build_details: '{"total_duration": "0 minutes 0 seconds", "checks": [{"name": + "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 54 seconds"}]}' code_of_conduct: Other created_at: 2017-04-27 18:57:22 default_branch: release-23.x description: "\U0001F48E An accessible, theme-ready design system built for learning\ \ applications and Open edX." - disk_usage_kb: 349818 + disk_usage_kb: 349963 fork_count: 99 has_issues: true has_wiki: false @@ -124,9 +115,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-31 14:54:28 + last_push: 2026-06-08 00:50:50 license: Apache License 2.0 - pulls_count: 57 + pulls_count: 56 github_actions: true language_bytes: css: 271597 @@ -152,8 +143,11 @@ pinned_python_dependencies: 0 readme: bad_links: - 'https://www.npmjs.com/package/@openedx/paragon: 403' + - 'https://openedx.org/slack: 403' - 'https://cdn.jsdelivr.net/npm/@my-brand/core.min.css: 404' - 'https://cdn.jsdelivr.net/npm/@my-brand/light.min.css: 404' + - 'https://openedx.org/r/how-to-contribute: 403' + - 'https://openedx.org/code-of-conduct/: 403' - 'https://github.com/openedx/eslint-config-edx/tree/master/packages/eslint-config-edx: 404' - 'https://www.npmjs.com/package/eslint-config-airbnb: 403' @@ -174,7 +168,6 @@ readme: - https://www.w3.org/WAI/standards-guidelines/aria/ - https://openedx.org/ - https://paragon-openedx.netlify.app/ - - https://openedx.org/slack - https://openedx.slack.com/archives/C02NR285KV4 - https://github.com/openedx/paragon/issues/new?template=blank-issue.md - https://calendar.google.com/calendar/embed?src=c_v86shrnegshsqgp4fj2k94u7bc%40group.calendar.google.com&ctz=America%2FNew_York @@ -185,8 +178,6 @@ readme: - https://github.com/openedx/paragon/tree/release-23.x - https://paragon-openedx-v23.netlify.app/ - https://github.com/openedx/paragon/tree/next - - https://openedx.org/r/how-to-contribute - - https://openedx.org/code-of-conduct/ - https://github.com/openedx/paragon/issues - https://github.com/orgs/openedx/projects/43/views/15 - https://github.com/openedx/frontend-build diff --git a/individual_repo_data/openedx/platform-plugin-aspects_repo_health.yaml b/individual_repo_data/openedx/platform-plugin-aspects_repo_health.yaml index 7b4cdeae..1558a491 100644 --- a/individual_repo_data/openedx/platform-plugin-aspects_repo_health.yaml +++ b/individual_repo_data/openedx/platform-plugin-aspects_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,78 +22,79 @@ dependencies: list: '' pypi: count: 60 - list: '["celery==5.6.3", "pycparser==3.0", "click-repl==0.3.0", "requests==2.34.2", - "psutil==7.2.2", "typing-extensions==4.15.0", "asgiref==3.11.1", "simplejson==4.1.1", - "click-didyoumean==0.3.1", "sqlparse==0.5.5", "edx-opaque-keys[django]==4.0.0", - "django-waffle==5.0.0", "django-crum==0.7.9", "click-plugins==1.1.1.2", - "mako==1.3.12", "prison==0.2.1", "edx-toggles==6.0.0", "pyyaml==6.0.3", - "kombu==5.6.2", "fs==2.4.16", "six==1.17.0", "packaging==26.2", "python-slugify==8.0.4", - "text-unidecode==1.3", "webob==1.8.9", "cffi==2.0.0", "charset-normalizer==3.4.7", - "python-dateutil==2.9.0.post0", "tzlocal==5.3.1", "pynacl==1.6.2", "lxml==6.1.1", - "click==8.4.1", "redis==7.4.0", "stevedore==5.8.0", "djangorestframework==3.17.1", - "certifi==2026.5.20", "pytz==2026.2", "edx-django-utils==8.0.1", "openedx-atlas==0.7.0", - "amqp==5.3.1", "xblock==6.1.0", "appdirs==1.4.4", "wcwidth==0.7.0", "web-fragments==4.0.0", - "dnspython==2.8.0", "billiard==4.2.4", "pymongo==4.17.0", "superset-api-client==0.6.0", - "code-annotations==3.0.0", "idna==3.16", "markupsafe==3.0.3", "urllib3==2.7.0", - "django==5.2.14", "requests-oauthlib==2.0.0", "oauthlib==3.3.1", "vine==5.1.0", - "prompt-toolkit==3.0.52", "tzdata==2026.2", "jinja2==3.1.6", "openedx-filters==3.4.0"]' + list: '["celery==5.6.3", "click-plugins==1.1.1.2", "stevedore==5.8.0", "amqp==5.3.1", + "web-fragments==4.0.0", "idna==3.17", "wcwidth==0.7.0", "openedx-atlas==0.7.0", + "edx-opaque-keys[django]==4.0.0", "text-unidecode==1.3", "oauthlib==3.3.1", + "requests-oauthlib==2.0.0", "kombu==5.6.2", "six==1.17.0", "simplejson==4.1.1", + "click==8.4.1", "pycparser==3.0", "psutil==7.2.2", "pyyaml==6.0.3", "edx-django-utils==8.0.1", + "prompt-toolkit==3.0.52", "click-didyoumean==0.3.1", "mako==1.3.12", "python-slugify==8.0.4", + "dnspython==2.8.0", "charset-normalizer==3.4.7", "markupsafe==3.0.3", + "pytz==2026.2", "webob==1.8.9", "edx-toggles==6.0.0", "djangorestframework==3.17.1", + "tzdata==2026.2", "vine==5.1.0", "xblock==6.1.0", "prison==0.2.1", "python-dateutil==2.9.0.post0", + "packaging==26.2", "appdirs==1.4.4", "openedx-filters==3.4.1", "django==5.2.14", + "jinja2==3.1.6", "tzlocal==5.3.1", "superset-api-client==0.6.0", "cffi==2.0.0", + "code-annotations==3.0.0", "django-waffle==5.0.0", "requests==2.34.2", + "billiard==4.2.4", "sqlparse==0.5.5", "lxml==6.1.1", "certifi==2026.5.20", + "django-crum==0.7.9", "typing-extensions==4.15.0", "urllib3==2.7.0", "fs==2.4.16", + "pymongo==4.17.0", "click-repl==0.3.0", "pynacl==1.6.2", "redis==8.0.0", + "asgiref==3.11.1"]' pypi_all: count: 148 - list: '["pydata-sphinx-theme==0.16.1", "pylint-celery==0.3", "docutils==0.21.2", - "wheel==0.47.0", "isort==8.0.1", "edx-opaque-keys[django]==4.0.0", "prison==0.2.1", - "cachetools==7.1.4", "django-crum==0.7.9", "tox==4.54.0", "rich==15.0.0", - "path==16.16.0", "fs==2.4.16", "pytest==9.0.3", "text-unidecode==1.3", - "webob==1.8.9", "cffi==2.0.0", "twine==6.2.0", "build==1.5.0", "billiard==4.2.4", - "pylint-plugin-utils==0.9.0", "distlib==0.4.0", "black==26.5.1", "code-annotations==3.0.0", - "id==1.6.1", "responses==0.26.1", "edx-lint==6.1.0", "chardet==7.4.3", - "requests==2.34.2", "astroid==4.0.4", "pydocstyle==6.3.0", "typing-extensions==4.15.0", - "simplejson==4.1.1", "click-didyoumean==0.3.1", "mako==1.3.12", "click-plugins==1.1.1.2", - "restructuredtext-lint==2.0.2", "doc8==2.0.0", "python-discovery==1.3.1", - "sphinxcontrib-htmlhelp==2.1.0", "packaging==26.2", "charset-normalizer==3.4.7", - "python-dateutil==2.9.0.post0", "pip-tools==7.5.3", "polib==1.2.0", "amqp==5.3.1", - "pathspec==1.1.1", "sphinxcontrib-applehelp==2.0.0", "pylint==4.0.5", - "sphinx-book-theme==1.2.0", "dnspython==2.8.0", "ddt==1.7.2", "lxml-html-clean==0.4.5", - "pytest-django==4.12.0", "django==5.2.14", "prompt-toolkit==3.0.52", "sphinxcontrib-devhelp==2.0.0", - "tzdata==2026.2", "pygments==2.20.0", "lxml[html-clean]==6.1.1", "celery==5.6.3", - "edx-i18n-tools==2.0.0", "pycparser==3.0", "click-repl==0.3.0", "psutil==7.2.2", - "django-mock-queries==2.3.0", "accessible-pygments==0.0.5", "jeepney==0.9.0", - "edx-toggles==6.0.0", "coverage[toml]==7.14.0", "pyyaml==6.0.3", "six==1.17.0", - "tomli-w==1.2.0", "tzlocal==5.3.1", "beautifulsoup4==4.14.3", "lxml==6.1.1", - "keyring==25.7.0", "tomlkit==0.15.0", "secretstorage==3.5.0", "pytz==2026.2", - "edx-django-utils==8.0.1", "filelock==3.29.0", "openedx-atlas==0.7.0", - "click-log==0.4.0", "xblock==6.1.0", "babel==2.18.0", "more-itertools==11.1.0", - "model-bakery==1.23.4", "pip==26.1.1", "sphinx==9.1.0", "pytokens==0.4.1", - "web-fragments==4.0.0", "snowballstemmer==3.1.0", "roman-numerals==4.1.0", - "pymongo==4.17.0", "mccabe==0.7.0", "markdown-it-py==4.2.0", "idna==3.16", - "requests-oauthlib==2.0.0", "vine==5.1.0", "requests-toolbelt==1.0.0", - "pyproject-api==1.10.0", "jinja2==3.1.6", "soupsieve==2.8.4", "sphinxcontrib-serializinghtml==2.0.0", - "jaraco-functools==4.5.0", "asgiref==3.11.1", "sqlparse==0.5.5", "platformdirs==4.9.6", - "django-waffle==5.0.0", "cryptography==48.0.0", "diff-cover==10.2.1", - "setuptools==82.0.1", "sphinxcontrib-jsmath==1.0.1", "kombu==5.6.2", "nh3==0.3.5", - "colorama==0.4.6", "python-slugify==8.0.4", "jaraco-context==6.1.2", "pynacl==1.6.2", - "pytest-cov==7.1.0", "readme-renderer==44.0", "click==8.4.1", "redis==7.4.0", - "mypy-extensions==1.1.0", "djangorestframework==3.17.1", "pycodestyle==2.14.0", - "stevedore==5.8.0", "alabaster==1.0.0", "certifi==2026.5.20", "imagesize==2.0.0", - "virtualenv==21.3.3", "appdirs==1.4.4", "wcwidth==0.7.0", "iniconfig==2.3.0", - "jaraco-classes==3.4.0", "pyproject-hooks==1.2.0", "superset-api-client==0.6.0", - "dill==0.4.1", "mdurl==0.1.2", "markupsafe==3.0.3", "pylint-django==2.7.0", - "urllib3==2.7.0", "rfc3986==2.0.0", "oauthlib==3.3.1", "sphinxcontrib-qthelp==2.0.0", - "pluggy==1.6.0", "openedx-filters==3.4.0"]' + list: '["tomlkit==0.15.0", "black==26.5.1", "pytokens==0.4.1", "filelock==3.29.0", + "pycodestyle==2.14.0", "coverage[toml]==7.14.1", "pathspec==1.1.1", "edx-django-utils==8.0.1", + "pyproject-hooks==1.2.0", "charset-normalizer==3.4.7", "sphinxcontrib-jsmath==1.0.1", + "webob==1.8.9", "restructuredtext-lint==2.0.2", "cryptography==48.0.0", + "chardet==7.4.3", "tzdata==2026.2", "pyproject-api==1.10.1", "sphinx-book-theme==1.2.0", + "prison==0.2.1", "responses==0.26.1", "babel==2.18.0", "pylint-django==2.7.0", + "appdirs==1.4.4", "openedx-filters==3.4.1", "pluggy==1.6.0", "sphinxcontrib-htmlhelp==2.1.0", + "jinja2==3.1.6", "mdurl==0.1.2", "id==1.6.1", "accessible-pygments==0.0.5", + "distlib==0.4.0", "edx-lint==6.1.0", "alabaster==1.0.0", "sphinx==9.1.0", + "lxml-html-clean==0.4.5", "pylint-celery==0.3", "requests==2.34.2", "imagesize==2.0.0", + "django-crum==0.7.9", "setuptools==82.0.1", "pymongo==4.17.0", "click-log==0.4.0", + "readme-renderer==44.0", "pylint-plugin-utils==0.9.0", "celery==5.6.3", + "stevedore==5.8.0", "virtualenv==21.4.2", "edx-opaque-keys[django]==4.0.0", + "rfc3986==2.0.0", "six==1.17.0", "model-bakery==1.23.4", "mccabe==0.7.0", + "click-didyoumean==0.3.1", "jaraco-functools==4.5.0", "snowballstemmer==3.1.0", + "python-slugify==8.0.4", "dnspython==2.8.0", "pytz==2026.2", "edx-i18n-tools==2.0.0", + "python-discovery==1.4.0", "jaraco-classes==3.4.0", "xblock==6.1.0", "iniconfig==2.3.0", + "packaging==26.2", "pytest==9.0.3", "soupsieve==2.8.4", "django==5.2.14", + "secretstorage==3.5.0", "platformdirs==4.10.0", "cffi==2.0.0", "typing-extensions==4.15.0", + "lxml==6.1.1", "urllib3==2.7.0", "fs==2.4.16", "roman-numerals==4.1.0", + "sphinxcontrib-serializinghtml==2.0.0", "path==16.16.0", "click-plugins==1.1.1.2", + "web-fragments==4.0.0", "amqp==5.3.1", "sphinxcontrib-devhelp==2.0.0", + "idna==3.17", "wcwidth==0.7.0", "pydocstyle==6.3.0", "text-unidecode==1.3", + "oauthlib==3.3.1", "requests-oauthlib==2.0.0", "sphinxcontrib-qthelp==2.0.0", + "kombu==5.6.2", "django-mock-queries==2.3.0", "simplejson==4.1.1", "click==8.4.1", + "lxml[html-clean]==6.1.1", "pycparser==3.0", "twine==6.2.0", "psutil==7.2.2", + "prompt-toolkit==3.0.52", "doc8==2.0.0", "rich==15.0.0", "mypy-extensions==1.1.0", + "cachetools==7.1.4", "djangorestframework==3.17.1", "pytest-cov==7.1.0", + "jeepney==0.9.0", "beautifulsoup4==4.14.3", "colorama==0.4.6", "polib==1.2.0", + "tzlocal==5.3.1", "docutils==0.21.2", "ddt==1.7.2", "billiard==4.2.4", + "build==1.5.0", "sqlparse==0.5.5", "more-itertools==11.1.0", "click-repl==0.3.0", + "redis==8.0.0", "markdown-it-py==4.2.0", "keyring==25.7.0", "openedx-atlas==0.7.0", + "pydata-sphinx-theme==0.16.1", "pyyaml==6.0.3", "pip==26.1.2", "wheel==0.47.0", + "tox==4.55.0", "sphinxcontrib-applehelp==2.0.0", "mako==1.3.12", "dill==0.4.1", + "markupsafe==3.0.3", "edx-toggles==6.0.0", "requests-toolbelt==1.0.0", + "vine==5.1.0", "isort==8.0.1", "python-dateutil==2.9.0.post0", "diff-cover==10.3.0", + "superset-api-client==0.6.0", "tomli-w==1.2.0", "nh3==0.3.5", "pip-tools==7.5.3", + "code-annotations==3.0.0", "django-waffle==5.0.0", "certifi==2026.5.20", + "pylint==4.0.5", "pytest-django==4.12.0", "pynacl==1.6.2", "pygments==2.20.0", + "astroid==4.0.4", "jaraco-context==6.1.2", "asgiref==3.11.1"]' django_packages: django_42: count: 10 - list: '["web-fragments", "django-waffle", "edx-i18n-tools", "edx-django-utils", - "edx-toggles", "pytest-django", "code-annotations", "xblock", "djangorestframework", - "pylint-django"]' + list: '["djangorestframework", "code-annotations", "pylint-django", "web-fragments", + "edx-toggles", "xblock", "pytest-django", "edx-i18n-tools", "django-waffle", + "edx-django-utils"]' total: count: 11 - list: '["web-fragments", "django-waffle", "edx-i18n-tools", "edx-django-utils", - "edx-toggles", "pytest-django", "code-annotations", "xblock", "django-crum", - "djangorestframework", "pylint-django"]' + list: '["djangorestframework", "code-annotations", "pylint-django", "web-fragments", + "edx-toggles", "xblock", "pytest-django", "edx-i18n-tools", "django-waffle", + "edx-django-utils", "django-crum"]' upgraded: count: 7 - list: '["web-fragments", "django-waffle", "edx-i18n-tools", "edx-django-utils", - "edx-toggles", "code-annotations", "xblock"]' + list: '["code-annotations", "web-fragments", "edx-toggles", "xblock", "edx-i18n-tools", + "django-waffle", "edx-django-utils"]' docs: build_badge: false python_version: null @@ -121,28 +122,25 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 14 - build_details: '{"total_duration": "4941 minutes 58 seconds", "checks": [{"name": + build_details: '{"total_duration": "6457 minutes 56 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 30 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, quality)", "duration": - "1 minutes 7 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django52)", "duration": - "1 minutes 0 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, docs)", "duration": - "0 minutes 57 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, pii_check)", - "duration": "0 minutes 50 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, - django42)", "duration": "0 minutes 49 seconds"}, {"name": "update-pip-graph", - "duration": "0 minutes 41 seconds"}, {"name": "Run tests & display coverage", - "duration": "0 minutes 11 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "1 minutes 16 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, quality)", "duration": + "1 minutes 6 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django52)", "duration": + "1 minutes 4 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, django42)", "duration": + "0 minutes 53 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, docs)", "duration": + "0 minutes 52 seconds"}, {"name": "tests (ubuntu-24.04, 3.12, pii_check)", + "duration": "0 minutes 40 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 35 seconds"}, {"name": "Run tests & display coverage", "duration": + "0 minutes 9 seconds"}, {"name": "Run tests & display coverage", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "Run tests & display coverage", - "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "-1 minutes 53 seconds"}]}' + "duration": "-1 minutes 59 seconds"}]}' code_of_conduct: Other created_at: 2024-02-29 19:49:46 default_branch: main description: Aspects plugins for the Open edX LMS and Studio - disk_usage_kb: 3364 + disk_usage_kb: 3807 fork_count: 13 has_issues: true has_wiki: false @@ -151,9 +149,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:59:59 + last_push: 2026-06-08 00:59:42 license: Apache License 2.0 - pulls_count: 3 + pulls_count: 1 github_actions: true language_bytes: css: 841 @@ -161,7 +159,7 @@ language_bytes: html: 2484 javascript: 4162 makefile: 5302 - python: 225370 + python: 234888 shell: 0 makefile: pip-installed: true @@ -178,6 +176,8 @@ ownership: {} pinned_python_dependencies: 1 readme: bad_links: + - 'https://openedx.org/getting-help: 403' + - 'https://github.com/openedx/edx-platform: 504' - 'https://www.npmjs.com/package/@superset-ui/embedded-sdk: 403' getting-help: true good_links: @@ -185,14 +185,12 @@ readme: - https://docs.openedx.org/projects/platform-plugin-aspects - https://discuss.openedx.org - https://github.com/openedx/platform-plugin-aspects/issues - - https://openedx.org/getting-help - https://openedx.org/slack - https://openedx.slack.com/ - https://openedx.org/r/how-to-contribute - https://openedx.org/code-of-conduct/ - https://backstage.openedx.org/catalog/default/component/platform-plugin-aspects - https://github.com/openedx/openedx-events - - https://github.com/openedx/edx-platform - https://clickhouse.com - https://docs.openedx.org/projects/openedx-aspects/en/latest/index.html - https://docs.openedx.org/projects/openedx-filters/en/latest/ diff --git a/individual_repo_data/openedx/platform-roadmap_repo_health.yaml b/individual_repo_data/openedx/platform-roadmap_repo_health.yaml index b7fafd06..591d66f1 100644 --- a/individual_repo_data/openedx/platform-roadmap_repo_health.yaml +++ b/individual_repo_data/openedx/platform-roadmap_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -116,10 +116,10 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/orgs/openedx/projects/4/views/1: 504' getting-help: false - good_links: - - https://github.com/orgs/openedx/projects/4/views/1 + good_links: [] irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/pr_watcher_configuration_repo_health.yaml b/individual_repo_data/openedx/pr_watcher_configuration_repo_health.yaml index 42d75eb1..2bf07902 100644 --- a/individual_repo_data/openedx/pr_watcher_configuration_repo_health.yaml +++ b/individual_repo_data/openedx/pr_watcher_configuration_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -103,10 +103,10 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/open-craft/pr_watcher_notifier: 504' getting-help: false - good_links: - - https://github.com/open-craft/pr_watcher_notifier + good_links: [] irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/pr_watcher_notifier_repo_health.yaml b/individual_repo_data/openedx/pr_watcher_notifier_repo_health.yaml index 344f3a87..4fac0f64 100644 --- a/individual_repo_data/openedx/pr_watcher_notifier_repo_health.yaml +++ b/individual_repo_data/openedx/pr_watcher_notifier_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/public-engineering_repo_health.yaml b/individual_repo_data/openedx/public-engineering_repo_health.yaml index ecbc8263..4088b811 100644 --- a/individual_repo_data/openedx/public-engineering_repo_health.yaml +++ b/individual_repo_data/openedx/public-engineering_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -63,22 +63,22 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 3 - build_details: '{"total_duration": "1941 minutes 59 seconds", "checks": [{"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 2 seconds"}, + build_details: '{"total_duration": "1211 minutes 52 seconds", "checks": [{"name": + "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, + {"name": "routeissue / add_and_notify", "duration": "0 minutes 0 seconds"}, + {"name": "routeissue / add_label", "duration": "0 minutes 0 seconds"}, {"name": + "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 - seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes - 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 + minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2021-11-22 21:15:52 diff --git a/individual_repo_data/openedx/pytest-repo-health_repo_health.yaml b/individual_repo_data/openedx/pytest-repo-health_repo_health.yaml index 8106b5c0..238919ac 100644 --- a/individual_repo_data/openedx/pytest-repo-health_repo_health.yaml +++ b/individual_repo_data/openedx/pytest-repo-health_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,37 +22,37 @@ dependencies: list: '' pypi: count: 19 - list: '["yarl==1.20.0", "iniconfig==2.1.0", "frozenlist==1.6.0", "pytest==8.3.5", - "multidict==6.4.3", "smmap==5.0.2", "pytest-aiohttp==1.1.0", "aiohttp==3.11.18", - "aiosignal==1.3.2", "pluggy==1.5.0", "propcache==0.3.1", "gitdb==4.0.12", - "gitpython==3.1.44", "attrs==25.3.0", "idna==3.10", "aiohappyeyeballs==2.6.1", - "pyyaml==6.0.2", "pytest-asyncio==0.26.0", "packaging==25.0"]' + list: '["iniconfig==2.1.0", "pytest-aiohttp==1.1.0", "packaging==25.0", "pytest-asyncio==0.26.0", + "attrs==25.3.0", "gitpython==3.1.44", "aiohappyeyeballs==2.6.1", "frozenlist==1.6.0", + "idna==3.10", "pluggy==1.5.0", "pytest==8.3.5", "propcache==0.3.1", "pyyaml==6.0.2", + "aiosignal==1.3.2", "gitdb==4.0.12", "multidict==6.4.3", "yarl==1.20.0", + "smmap==5.0.2", "aiohttp==3.11.18"]' pypi_all: count: 87 - list: '["pycodestyle==2.13.0", "pyproject-api==1.9.0", "pip-tools==7.4.1", - "sphinxcontrib-serializinghtml==2.0.0", "pytest==8.3.5", "multidict==6.4.3", - "setuptools==80.0.1", "chardet==5.2.0", "cachetools==5.5.2", "sphinxcontrib-htmlhelp==2.1.0", - "pluggy==1.5.0", "pytest-cov==6.1.1", "sphinxcontrib-applehelp==2.0.0", - "diff-cover==9.2.4", "gitpython==3.1.44", "stevedore==5.4.1", "doc8==1.1.2", - "sphinx-book-theme==1.1.4", "click-log==0.4.0", "astroid==3.3.9", "wheel==0.45.1", - "aiohappyeyeballs==2.6.1", "pytest-asyncio==0.26.0", "dill==0.4.0", "pylint-celery==0.3", - "mccabe==0.7.0", "pydocstyle==6.3.0", "pygments==2.19.1", "isort==6.0.1", - "smmap==5.0.2", "distlib==0.3.9", "readme-renderer==44.0", "nh3==0.2.21", - "pytest-aiohttp==1.1.0", "babel==2.17.0", "restructuredtext-lint==1.4.0", - "pip==24.2", "pydata-sphinx-theme==0.15.4", "attrs==25.3.0", "docutils==0.21.2", - "pylint-plugin-utils==0.8.2", "packaging==25.0", "yarl==1.20.0", "iniconfig==2.1.0", - "coverage[toml]==7.8.0", "pbr==6.1.1", "typing-extensions==4.13.2", "platformdirs==4.3.7", - "pylint-django==2.6.1", "sphinxcontrib-jsmath==1.0.1", "pyproject-hooks==1.2.0", - "alabaster==1.0.0", "aiosignal==1.3.2", "filelock==3.18.0", "pylint==3.3.6", - "text-unidecode==1.3", "sphinxcontrib-devhelp==2.0.0", "beautifulsoup4==4.13.4", - "idna==3.10", "soupsieve==2.7", "edx-lint==5.6.0", "jinja2==3.1.6", "frozenlist==1.6.0", - "virtualenv==20.30.0", "charset-normalizer==3.4.1", "snowballstemmer==2.2.0", - "requests==2.32.3", "imagesize==1.4.1", "code-annotations==2.3.0", "six==1.17.0", - "urllib3==2.2.3", "aiohttp==3.11.18", "sphinx==8.2.3", "accessible-pygments==0.0.5", - "roman-numerals-py==3.1.0", "propcache==0.3.1", "gitdb==4.0.12", "tomlkit==0.13.2", - "python-slugify==8.0.4", "build==1.2.2.post1", "colorama==0.4.6", "tox==4.25.0", - "markupsafe==3.0.2", "click==8.1.8", "sphinxcontrib-qthelp==2.0.0", "pyyaml==6.0.2", - "certifi==2025.4.26"]' + list: '["stevedore==5.4.1", "pycodestyle==2.13.0", "wheel==0.45.1", "doc8==1.1.2", + "colorama==0.4.6", "charset-normalizer==3.4.1", "roman-numerals-py==3.1.0", + "isort==6.0.1", "certifi==2025.4.26", "sphinxcontrib-jsmath==1.0.1", "idna==3.10", + "typing-extensions==4.13.2", "pylint-celery==0.3", "pydata-sphinx-theme==0.15.4", + "readme-renderer==44.0", "multidict==6.4.3", "sphinxcontrib-htmlhelp==2.1.0", + "pip-tools==7.4.1", "imagesize==1.4.1", "restructuredtext-lint==1.4.0", + "markupsafe==3.0.2", "python-slugify==8.0.4", "click==8.1.8", "requests==2.32.3", + "cachetools==5.5.2", "docutils==0.21.2", "jinja2==3.1.6", "gitpython==3.1.44", + "platformdirs==4.3.7", "snowballstemmer==2.2.0", "nh3==0.2.21", "chardet==5.2.0", + "aiosignal==1.3.2", "sphinxcontrib-serializinghtml==2.0.0", "sphinxcontrib-qthelp==2.0.0", + "diff-cover==9.2.4", "text-unidecode==1.3", "pylint-django==2.6.1", "setuptools==80.0.1", + "filelock==3.18.0", "sphinx-book-theme==1.1.4", "distlib==0.3.9", "virtualenv==20.30.0", + "pytest-asyncio==0.26.0", "attrs==25.3.0", "dill==0.4.0", "coverage[toml]==7.8.0", + "pylint==3.3.6", "astroid==3.3.9", "frozenlist==1.6.0", "pluggy==1.5.0", + "edx-lint==5.6.0", "propcache==0.3.1", "build==1.2.2.post1", "pbr==6.1.1", + "pydocstyle==6.3.0", "sphinx==8.2.3", "gitdb==4.0.12", "aiohttp==3.11.18", + "pyproject-hooks==1.2.0", "mccabe==0.7.0", "babel==2.17.0", "iniconfig==2.1.0", + "pytest-aiohttp==1.1.0", "packaging==25.0", "pylint-plugin-utils==0.8.2", + "soupsieve==2.7", "pygments==2.19.1", "urllib3==2.2.3", "sphinxcontrib-devhelp==2.0.0", + "pytest-cov==6.1.1", "aiohappyeyeballs==2.6.1", "code-annotations==2.3.0", + "accessible-pygments==0.0.5", "tomlkit==0.13.2", "pyproject-api==1.9.0", + "pytest==8.3.5", "pip==24.2", "pyyaml==6.0.2", "sphinxcontrib-applehelp==2.0.0", + "click-log==0.4.0", "beautifulsoup4==4.13.4", "tox==4.25.0", "yarl==1.20.0", + "smmap==5.0.2", "six==1.17.0", "alabaster==1.0.0"]' django_packages: django_42: count: 2 @@ -89,18 +89,22 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 10 - build_details: '{"total_duration": "0 minutes 45 seconds", "checks": [{"name": + branch_count: 11 + build_details: '{"total_duration": "6201 minutes 29 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 41 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 28 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - py)", "duration": "0 minutes 27 seconds"}, {"name": "Dependabot", "duration": - "0 minutes 26 seconds"}]}' + {"name": "Dependabot", "duration": "0 minutes 34 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 28 seconds"}, + {"name": "tests (ubuntu-latest, 3.12, py)", "duration": "0 minutes 27 seconds"}, + {"name": "Dependabot", "duration": "0 minutes 26 seconds"}, {"name": "call-upgrade-python-requirements-workflow + / upgrade_requirements", "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 25 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 24 seconds"}]}' code_of_conduct: Other created_at: 2020-03-16 16:53:00 default_branch: master description: '' - disk_usage_kb: 423 + disk_usage_kb: 426 fork_count: 8 has_issues: true has_wiki: false @@ -109,9 +113,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-30 15:32:56 + last_push: 2026-06-04 00:33:59 license: GNU AGPLv3 - pulls_count: 2 + pulls_count: 3 github_actions: true language_bytes: css: 0 @@ -136,12 +140,19 @@ ownership: {} pinned_python_dependencies: 0 readme: bad_links: + - 'https://github.com/openedx/pytest-repo-health/workflows/Python%20CI/badge.svg?branch=master: + 504' + - 'https://github.com/openedx/pytest-repo-health/actions?query=workflow%3A%22Python+CI%22: + 504' - 'https://ci.appveyor.com/api/projects/status/github/edx/pytest-repo-health?branch=master: 405' + - 'https://github.com/openedx/.github/blob/master/CONTRIBUTING.md: 504' - 'https://github.com/openedx/pytest-repo-health/blob/master/.github/PULL_REQUEST_TEMPLATE.md: - 404' + 504' - 'https://github.com/openedx/pytest-repo-health/blob/master/.github/ISSUE_TEMPLATE.md: - 404' + 504' + - 'https://github.com/openedx/edx-repo-health: 504' + - 'https://github.com/audreyr/cookiecutter: 504' - 'http://www.gnu.org/licenses/gpl-3.0.txt: HTTPConnectionPool(host=''www.gnu.org'', port=80): Max retries exceeded with url: /licenses/gpl-3.0.txt (Caused by NewConnectionError("HTTPConnection(host=''www.gnu.org'', port=80): Failed @@ -152,13 +163,8 @@ readme: - https://img.shields.io/pypi/v/pytest-repo-health.svg - https://pypi.org/project/pytest-repo-health - https://img.shields.io/pypi/pyversions/pytest-repo-health.svg - - https://github.com/openedx/pytest-repo-health/workflows/Python%20CI/badge.svg?branch=master - - https://github.com/openedx/pytest-repo-health/actions?query=workflow%3A%22Python+CI%22 - https://ci.appveyor.com/project/edx/pytest-repo-health/branch/master - - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - https://open.edx.org/getting-help - - https://github.com/openedx/edx-repo-health - - https://github.com/audreyr/cookiecutter - https://github.com/hackebrot - http://opensource.org/licenses/BSD-3-Clause - http://www.apache.org/licenses/LICENSE-2.0 diff --git a/individual_repo_data/openedx/repo-tools_repo_health.yaml b/individual_repo_data/openedx/repo-tools_repo_health.yaml index e780091f..b0fc7c06 100644 --- a/individual_repo_data/openedx/repo-tools_repo_health.yaml +++ b/individual_repo_data/openedx/repo-tools_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -81,7 +81,7 @@ github: created_at: 2013-10-16 22:30:05 default_branch: master description: Tools for repo maintenance, etc. - disk_usage_kb: 1856 + disk_usage_kb: 1859 fork_count: 46 has_issues: true has_wiki: false @@ -90,7 +90,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-28 05:20:15 + last_push: 2026-06-06 06:02:25 license: Apache License 2.0 pulls_count: 25 github_actions: true diff --git a/individual_repo_data/openedx/sample-aspects-dbt_repo_health.yaml b/individual_repo_data/openedx/sample-aspects-dbt_repo_health.yaml index 667c5b54..f77b3d9a 100644 --- a/individual_repo_data/openedx/sample-aspects-dbt_repo_health.yaml +++ b/individual_repo_data/openedx/sample-aspects-dbt_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/sample-plugin_repo_health.yaml b/individual_repo_data/openedx/sample-plugin_repo_health.yaml index 283a0c0a..c0bf797f 100644 --- a/individual_repo_data/openedx/sample-plugin_repo_health.yaml +++ b/individual_repo_data/openedx/sample-plugin_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -113,7 +113,9 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/openedx-tutor-plugins/tree/main/plugins/tutor-contrib-paragon: + 504' getting-help: false good_links: - https://docs.openedx.org/projects/edx-django-utils/en/latest/plugins/how_tos/how_to_create_a_plugin_app.html @@ -124,7 +126,6 @@ readme: - https://docs.tutor.edly.io/ - https://docs.tutor.edly.io/install.html - https://github.com/overhangio/tutor-mfe - - https://github.com/openedx/openedx-tutor-plugins/tree/main/plugins/tutor-contrib-paragon - https://cdn.jsdelivr.net/gh/openedx/sample-plugin@main/brand-sample/dist/light.min.css - https://openedx.org/slack - https://discuss.openedx.org diff --git a/individual_repo_data/openedx/staff-graded-xblock_repo_health.yaml b/individual_repo_data/openedx/staff-graded-xblock_repo_health.yaml index 5b789fe9..21af20bf 100644 --- a/individual_repo_data/openedx/staff-graded-xblock_repo_health.yaml +++ b/individual_repo_data/openedx/staff-graded-xblock_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,65 +22,66 @@ dependencies: list: '' pypi: count: 57 - list: '["prompt-toolkit==3.0.52", "fs==2.4.16", "markdown==3.10.2", "django==5.2.12", - "certifi==2026.2.25", "amqp==5.3.1", "kombu==5.6.2", "typing-extensions==4.15.0", - "tzdata==2025.3", "pymongo==4.16.0", "billiard==4.2.4", "sqlparse==0.5.5", - "markupsafe==3.0.3", "path==17.1.1", "web-fragments==3.1.0", "djangorestframework==3.16.1", - "packaging==26.0", "dnspython==2.8.0", "python-dateutil==2.9.0.post0", - "webob==1.8.9", "django-model-utils==5.0.0", "charset-normalizer==3.4.5", - "asgiref==3.11.1", "mako==1.3.10", "tzlocal==5.3.1", "appdirs==1.4.4", - "xblock==5.3.0", "click-repl==0.3.0", "pycparser==3.0", "cffi==2.0.0", - "psutil==7.2.2", "requests==2.32.5", "stevedore==5.7.0", "urllib3==2.6.3", - "edx-django-utils==8.0.1", "pytz==2026.1.post1", "super-csv==4.1.0", "click-didyoumean==0.3.1", - "pyyaml==6.0.3", "simplejson==3.20.2", "six==1.17.0", "idna==3.11", "path-py==12.5.0", - "jsonfield==3.2.0", "click==8.3.1", "celery==5.6.2", "vine==5.1.0", "edx-opaque-keys==3.1.0", - "django-waffle==5.0.0", "edx-bulk-grades==1.2.0", "pynacl==1.6.2", "django-crum==0.7.9", - "wcwidth==0.6.0", "edx-celeryutils==1.4.0", "click-plugins==1.1.1.2", - "slumber==0.7.1", "lxml==6.0.2"]' + list: '["click-repl==0.3.0", "edx-opaque-keys==3.1.0", "webob==1.8.9", "typing-extensions==4.15.0", + "web-fragments==3.1.0", "pyyaml==6.0.3", "celery==5.6.2", "lxml==6.0.2", + "asgiref==3.11.1", "markdown==3.10.2", "django-waffle==5.0.0", "fs==2.4.16", + "prompt-toolkit==3.0.52", "edx-bulk-grades==1.2.0", "charset-normalizer==3.4.5", + "tzdata==2025.3", "tzlocal==5.3.1", "cffi==2.0.0", "kombu==5.6.2", "vine==5.1.0", + "urllib3==2.6.3", "path==17.1.1", "markupsafe==3.0.3", "dnspython==2.8.0", + "django-crum==0.7.9", "psutil==7.2.2", "requests==2.32.5", "edx-django-utils==8.0.1", + "django==5.2.12", "djangorestframework==3.16.1", "pytz==2026.1.post1", + "stevedore==5.7.0", "pymongo==4.16.0", "idna==3.11", "xblock==5.3.0", + "super-csv==4.1.0", "sqlparse==0.5.5", "pycparser==3.0", "click-plugins==1.1.1.2", + "pynacl==1.6.2", "wcwidth==0.6.0", "packaging==26.0", "django-model-utils==5.0.0", + "simplejson==3.20.2", "edx-celeryutils==1.4.0", "six==1.17.0", "appdirs==1.4.4", + "billiard==4.2.4", "jsonfield==3.2.0", "certifi==2026.2.25", "mako==1.3.10", + "path-py==12.5.0", "amqp==5.3.1", "python-dateutil==2.9.0.post0", "slumber==0.7.1", + "click-didyoumean==0.3.1", "click==8.3.1"]' pypi_all: count: 100 - list: '["distlib==0.4.0", "python-slugify==8.0.4", "certifi==2026.2.25", "amqp==5.3.1", - "tzdata==2025.3", "path==17.1.1", "web-fragments==3.1.0", "astroid==4.0.4", - "webob==1.8.9", "psutil==7.2.2", "polib==1.2.0", "requests==2.32.5", "coverage[toml]==7.13.4", - "pyyaml==6.0.3", "edx-opaque-keys==3.1.0", "pynacl==1.6.2", "edx-lint==5.6.0", - "virtualenv==21.1.0", "lxml-html-clean==0.4.4", "filelock==3.25.0", "prompt-toolkit==3.0.52", - "fs==2.4.16", "markdown==3.10.2", "wheel==0.46.3", "kombu==5.6.2", "edx-i18n-tools==1.6.1", - "typing-extensions==4.15.0", "build==1.4.0", "pymongo==4.16.0", "sqlparse==0.5.5", - "mccabe==0.7.0", "dnspython==2.8.0", "django-model-utils==5.0.0", "cachetools==7.0.3", - "tzlocal==5.3.1", "pylint-celery==0.3", "appdirs==1.4.4", "setuptools==82.0.0", - "django-appconf==1.2.0", "idna==3.11", "pyproject-api==1.10.0", "django-waffle==5.0.0", - "jinja2==3.1.6", "wcwidth==0.6.0", "edx-celeryutils==1.4.0", "lxml[html-clean]==6.0.2", - "django==5.2.12", "python-discovery==1.1.1", "pytest-cov==7.0.0", "pip-tools==7.5.3", - "djangorestframework==3.16.1", "text-unidecode==1.3", "cffi==2.0.0", "urllib3==2.6.3", - "edx-django-utils==8.0.1", "pytz==2026.1.post1", "iniconfig==2.3.0", "click-didyoumean==0.3.1", - "six==1.17.0", "path-py==12.5.0", "pylint-plugin-utils==0.9.0", "jsonfield==3.2.0", - "click==8.3.1", "celery==5.6.2", "vine==5.1.0", "click-plugins==1.1.1.2", - "slumber==0.7.1", "lxml==6.0.2", "tomli-w==1.2.0", "click-log==0.4.0", - "tomlkit==0.14.0", "pyproject-hooks==1.2.0", "tox==4.49.0", "dill==0.4.1", - "django-statici18n==2.6.0", "billiard==4.2.4", "markupsafe==3.0.3", "colorama==0.4.6", - "packaging==26.0", "pluggy==1.6.0", "pylint-django==2.7.0", "python-dateutil==2.9.0.post0", - "charset-normalizer==3.4.5", "asgiref==3.11.1", "mako==1.3.10", "pylint==4.0.5", - "xblock==5.3.0", "click-repl==0.3.0", "pycparser==3.0", "platformdirs==4.9.4", - "stevedore==5.7.0", "super-csv==4.1.0", "simplejson==3.20.2", "pytest==9.0.2", - "pygments==2.19.2", "edx-bulk-grades==1.2.0", "django-crum==0.7.9", "pip==26.0.1", - "code-annotations==2.3.2", "isort==8.0.1"]' + list: '["wheel==0.46.3", "colorama==0.4.6", "edx-lint==5.6.0", "celery==5.6.2", + "django-appconf==1.2.0", "lxml[html-clean]==6.0.2", "pluggy==1.6.0", "prompt-toolkit==3.0.52", + "pygments==2.19.2", "tzlocal==5.3.1", "urllib3==2.6.3", "python-slugify==8.0.4", + "pytest-cov==7.0.0", "iniconfig==2.3.0", "pymongo==4.16.0", "mccabe==0.7.0", + "idna==3.11", "isort==8.0.1", "packaging==26.0", "six==1.17.0", "billiard==4.2.4", + "code-annotations==2.3.2", "pyproject-hooks==1.2.0", "path-py==12.5.0", + "pylint-django==2.7.0", "coverage[toml]==7.13.4", "python-discovery==1.1.1", + "click-didyoumean==0.3.1", "click==8.3.1", "web-fragments==3.1.0", "pytest==9.0.2", + "pylint-celery==0.3", "django-statici18n==2.6.0", "virtualenv==21.1.0", + "lxml-html-clean==0.4.4", "click-log==0.4.0", "cachetools==7.0.3", "edx-bulk-grades==1.2.0", + "kombu==5.6.2", "filelock==3.25.0", "path==17.1.1", "dnspython==2.8.0", + "pyproject-api==1.10.0", "psutil==7.2.2", "django==5.2.12", "stevedore==5.7.0", + "wcwidth==0.6.0", "django-model-utils==5.0.0", "distlib==0.4.0", "pylint==4.0.5", + "edx-opaque-keys==3.1.0", "tox==4.49.0", "webob==1.8.9", "pyyaml==6.0.3", + "lxml==6.0.2", "astroid==4.0.4", "asgiref==3.11.1", "django-waffle==5.0.0", + "charset-normalizer==3.4.5", "tzdata==2025.3", "cffi==2.0.0", "markupsafe==3.0.3", + "pytz==2026.1.post1", "build==1.4.0", "xblock==5.3.0", "tomlkit==0.14.0", + "pycparser==3.0", "polib==1.2.0", "edx-celeryutils==1.4.0", "simplejson==3.20.2", + "appdirs==1.4.4", "pip-tools==7.5.3", "jsonfield==3.2.0", "amqp==5.3.1", + "edx-i18n-tools==1.6.1", "pip==26.0.1", "python-dateutil==2.9.0.post0", + "slumber==0.7.1", "click-repl==0.3.0", "typing-extensions==4.15.0", "markdown==3.10.2", + "jinja2==3.1.6", "fs==2.4.16", "dill==0.4.1", "vine==5.1.0", "platformdirs==4.9.4", + "django-crum==0.7.9", "requests==2.32.5", "edx-django-utils==8.0.1", "djangorestframework==3.16.1", + "tomli-w==1.2.0", "super-csv==4.1.0", "sqlparse==0.5.5", "setuptools==82.0.0", + "click-plugins==1.1.1.2", "pynacl==1.6.2", "text-unidecode==1.3", "mako==1.3.10", + "certifi==2026.2.25", "pylint-plugin-utils==0.9.0"]' django_packages: django_42: count: 13 - list: '["xblock", "djangorestframework", "django-appconf", "edx-celeryutils", - "pylint-django", "edx-django-utils", "edx-opaque-keys", "code-annotations", - "super-csv", "edx-bulk-grades", "web-fragments", "edx-i18n-tools", "django-waffle"]' + list: '["edx-celeryutils", "super-csv", "pylint-django", "djangorestframework", + "edx-opaque-keys", "edx-bulk-grades", "edx-django-utils", "edx-i18n-tools", + "xblock", "code-annotations", "django-appconf", "web-fragments", "django-waffle"]' total: count: 17 - list: '["xblock", "djangorestframework", "django-appconf", "edx-celeryutils", - "pylint-django", "edx-django-utils", "django-model-utils", "django-statici18n", - "edx-opaque-keys", "code-annotations", "super-csv", "edx-bulk-grades", - "web-fragments", "edx-i18n-tools", "jsonfield", "django-crum", "django-waffle"]' + list: '["django-crum", "edx-celeryutils", "jsonfield", "super-csv", "pylint-django", + "djangorestframework", "edx-opaque-keys", "edx-bulk-grades", "edx-django-utils", + "django-model-utils", "edx-i18n-tools", "xblock", "code-annotations", + "django-statici18n", "django-appconf", "web-fragments", "django-waffle"]' upgraded: count: 11 - list: '["xblock", "django-appconf", "edx-celeryutils", "edx-django-utils", - "edx-opaque-keys", "code-annotations", "super-csv", "edx-bulk-grades", - "web-fragments", "edx-i18n-tools", "django-waffle"]' + list: '["edx-celeryutils", "super-csv", "edx-opaque-keys", "edx-bulk-grades", + "edx-django-utils", "edx-i18n-tools", "xblock", "code-annotations", "django-appconf", + "web-fragments", "django-waffle"]' docs: build_badge: false python_version: null @@ -107,7 +108,7 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 14 + branch_count: 16 build_details: '{"total_duration": "1992 minutes 13 seconds", "checks": [{"name": "Dependabot", "duration": "2 minutes 30 seconds"}, {"name": "Dependabot", "duration": "1 minutes 31 seconds"}, {"name": "call-upgrade-python-requirements-workflow @@ -127,7 +128,7 @@ github: created_at: 2019-05-15 18:56:20 default_branch: master description: Staff Graded Points XBlock - disk_usage_kb: 284 + disk_usage_kb: 293 fork_count: 17 has_issues: true has_wiki: false @@ -136,9 +137,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:45:32 + last_push: 2026-06-08 03:12:30 license: GNU AGPLv3 - pulls_count: 13 + pulls_count: 15 github_actions: true language_bytes: css: 208 diff --git a/individual_repo_data/openedx/stylelint-config-edx_repo_health.yaml b/individual_repo_data/openedx/stylelint-config-edx_repo_health.yaml index 69bdda85..8fc05054 100644 --- a/individual_repo_data/openedx/stylelint-config-edx_repo_health.yaml +++ b/individual_repo_data/openedx/stylelint-config-edx_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/super-csv_repo_health.yaml b/individual_repo_data/openedx/super-csv_repo_health.yaml index d8667665..42875033 100644 --- a/individual_repo_data/openedx/super-csv_repo_health.yaml +++ b/individual_repo_data/openedx/super-csv_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,67 +22,67 @@ dependencies: list: '' pypi: count: 32 - list: '["prompt-toolkit==3.0.52", "cffi==2.0.0", "edx-django-utils==8.0.1", - "pynacl==1.6.2", "tzdata==2026.2", "django==5.2.14", "python-dateutil==2.9.0.post0", - "vine==5.1.0", "django-crum==0.7.9", "billiard==4.2.4", "amqp==5.3.1", - "pycparser==3.0", "wcwidth==0.7.0", "stevedore==5.8.0", "tzlocal==5.3.1", - "click-didyoumean==0.3.1", "asgiref==3.11.1", "sqlparse==0.5.5", "simplejson==4.1.1", - "celery==5.6.3", "click-repl==0.3.0", "django-model-utils==5.0.0", "psutil==7.2.2", - "djangorestframework==3.17.1", "edx-celeryutils==2.0.0", "jsonfield==3.2.0", - "kombu==5.6.2", "click==8.4.0", "packaging==26.2", "django-waffle==5.0.0", - "six==1.17.0", "click-plugins==1.1.1.2"]' + list: '["wcwidth==0.7.0", "celery==5.6.3", "django-crum==0.7.9", "prompt-toolkit==3.0.52", + "packaging==26.2", "sqlparse==0.5.5", "click-repl==0.3.0", "cffi==2.0.0", + "click-plugins==1.1.1.2", "kombu==5.6.2", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", + "click==8.4.1", "amqp==5.3.1", "django-model-utils==5.0.0", "simplejson==4.1.1", + "edx-django-utils==8.0.1", "djangorestframework==3.17.1", "tzdata==2026.2", + "psutil==7.2.2", "six==1.17.0", "django==5.2.15", "tzlocal==5.3.1", "asgiref==3.11.1", + "django-waffle==5.0.0", "stevedore==5.8.0", "billiard==4.2.4", "vine==5.1.0", + "pycparser==3.0", "click-didyoumean==0.3.1", "edx-celeryutils==2.0.0", + "jsonfield==3.2.0"]' pypi_all: count: 134 - list: '["sphinxcontrib-htmlhelp==2.1.0", "prompt-toolkit==3.0.52", "edx-django-utils==8.0.1", - "polib==1.2.0", "pynacl==1.6.2", "jaraco-functools==4.5.0", "sqlalchemy==2.0.49", - "rfc3986==2.0.0", "billiard==4.2.4", "id==1.6.1", "jaraco-context==6.1.2", - "coverage[toml]==7.14.0", "tzlocal==5.3.1", "babel==2.18.0", "dill==0.4.1", - "click-didyoumean==0.3.1", "asgiref==3.11.1", "cryptography==48.0.0", - "alabaster==1.0.0", "beautifulsoup4==4.14.3", "pycodestyle==2.14.0", "platformdirs==4.9.6", - "python-slugify==8.0.4", "sphinx-book-theme==1.2.0", "djangorestframework==3.17.1", - "path==16.16.0", "click-log==0.4.0", "snowballstemmer==3.0.1", "sphinxcontrib-applehelp==2.0.0", - "colorama==0.4.6", "mock==5.2.0", "pylint-django==2.7.0", "mdurl==0.1.2", - "diff-cover==10.2.0", "mccabe==0.7.0", "vine==5.1.0", "sphinxcontrib-jsmath==1.0.1", - "pytest==9.0.3", "requests==2.34.2", "pycparser==3.0", "urllib3==2.7.0", - "sphinxcontrib-devhelp==2.0.0", "pylint-plugin-utils==0.9.0", "roman-numerals==4.1.0", - "pydata-sphinx-theme==0.16.1", "requests-toolbelt==1.0.0", "pylint==4.0.5", - "chardet==7.4.3", "pytest-django==4.12.0", "simplejson==4.1.1", "readme-renderer==44.0", - "click-repl==0.3.0", "celery==5.3.6", "code-annotations==3.0.0", "pylint-celery==0.3", - "click==8.4.0", "django-waffle==5.0.0", "click-plugins==1.1.1.2", "markupsafe==3.0.3", - "nh3==0.3.5", "jeepney==0.9.0", "pip-tools==7.5.3", "virtualenv==21.3.3", - "wheel==0.47.0", "edx-lint==6.1.0", "django-crum==0.7.9", "pyproject-hooks==1.2.0", - "pyyaml==6.0.3", "more-itertools==11.0.2", "imagesize==2.0.0", "tomli-w==1.2.0", - "accessible-pygments==0.0.5", "doc8==2.0.0", "freezegun==1.5.5", "python-discovery==1.3.1", - "typing-extensions==4.15.0", "lxml[html-clean]==6.1.1", "keyring==25.7.0", - "iniconfig==2.3.0", "pip==26.1.1", "celery==5.6.3", "certifi==2026.4.22", - "kombu==5.3.5", "pydocstyle==6.3.0", "ddt==1.7.2", "cachetools==7.1.3", - "build==1.5.0", "edx-celeryutils==2.0.0", "click==8.1.6", "jinja2==3.1.6", - "sphinxcontrib-serializinghtml==2.0.0", "packaging==26.2", "billiard==4.2.0", - "restructuredtext-lint==2.0.2", "markdown-it-py==4.2.0", "charset-normalizer==3.4.7", - "cffi==2.0.0", "sphinxcontrib-qthelp==2.0.0", "tzdata==2026.2", "django==5.2.14", - "python-dateutil==2.9.0.post0", "filelock==3.29.0", "secretstorage==3.5.0", - "amqp==5.3.1", "wcwidth==0.7.0", "idna==3.15", "pyproject-api==1.10.0", - "distlib==0.4.0", "astroid==4.0.4", "stevedore==5.8.0", "tomlkit==0.15.0", - "docutils==0.21.2", "twine==6.2.0", "sqlparse==0.5.5", "sphinx==9.1.0", - "tox==4.54.0", "greenlet==3.5.0", "isort==8.0.1", "edx-i18n-tools==2.0.0", - "lxml-html-clean==0.4.4", "pygments==2.20.0", "django-model-utils==5.0.0", - "psutil==7.2.2", "jaraco-classes==3.4.0", "jsonfield==3.2.0", "rich==15.0.0", - "kombu==5.6.2", "amqp==5.2.0", "six==1.17.0", "setuptools==82.0.1", "pluggy==1.6.0", - "pytest-cov==7.1.0", "soupsieve==2.8.3", "text-unidecode==1.3"]' + list: '["wcwidth==0.7.0", "django-crum==0.7.9", "coverage[toml]==7.14.1", + "pydocstyle==6.3.0", "tomlkit==0.15.0", "nh3==0.3.5", "markupsafe==3.0.3", + "sqlparse==0.5.5", "sphinxcontrib-applehelp==2.0.0", "pytest-django==4.12.0", + "path==16.16.0", "jeepney==0.9.0", "cffi==2.0.0", "more-itertools==11.1.0", + "tomli-w==1.2.0", "django-model-utils==5.0.0", "requests-toolbelt==1.0.0", + "sphinxcontrib-devhelp==2.0.0", "code-annotations==3.0.0", "roman-numerals==4.1.0", + "sphinxcontrib-serializinghtml==2.0.0", "requests==2.34.2", "lxml-html-clean==0.4.5", + "doc8==2.0.0", "asgiref==3.11.1", "amqp==5.2.0", "django-waffle==5.0.0", + "stevedore==5.8.0", "billiard==4.2.4", "python-slugify==8.0.4", "markdown-it-py==4.2.0", + "celery==5.3.6", "click-log==0.4.0", "pycodestyle==2.14.0", "pylint-django==2.7.0", + "sphinxcontrib-qthelp==2.0.0", "pyproject-api==1.10.1", "alabaster==1.0.0", + "pip-tools==7.5.3", "setuptools==82.0.1", "sphinx-book-theme==1.2.0", + "packaging==26.2", "rich==15.0.0", "build==1.5.0", "kombu==5.6.2", "pynacl==1.6.2", + "amqp==5.3.1", "pluggy==1.6.0", "pyyaml==6.0.3", "tox==4.55.1", "imagesize==2.0.0", + "python-discovery==1.4.0", "edx-django-utils==8.0.1", "filelock==3.29.1", + "pylint-plugin-utils==0.9.0", "sphinx==9.1.0", "six==1.17.0", "pygments==2.20.0", + "cachetools==7.1.4", "django==5.2.15", "diff-cover==10.3.0", "ddt==1.7.2", + "keyring==25.7.0", "sphinxcontrib-htmlhelp==2.1.0", "pip==26.1.2", "jaraco-context==6.1.2", + "pycparser==3.0", "virtualenv==21.4.2", "id==1.6.1", "mock==5.2.0", "soupsieve==2.8.4", + "sphinxcontrib-jsmath==1.0.1", "edx-lint==6.1.0", "celery==5.6.3", "jaraco-functools==4.5.0", + "prompt-toolkit==3.0.52", "secretstorage==3.5.0", "twine==6.2.0", "pylint-celery==0.3", + "text-unidecode==1.3", "snowballstemmer==3.1.1", "pytest-cov==7.1.0", + "dill==0.4.1", "docutils==0.21.2", "pyproject-hooks==1.2.0", "click-repl==0.3.0", + "mccabe==0.7.0", "urllib3==2.7.0", "freezegun==1.5.5", "cryptography==48.0.0", + "mdurl==0.1.2", "colorama==0.4.6", "djangorestframework==3.17.1", "isort==8.0.1", + "tzlocal==5.3.1", "restructuredtext-lint==2.0.2", "iniconfig==2.3.0", + "wheel==0.47.0", "platformdirs==4.10.0", "polib==1.2.0", "readme-renderer==44.0", + "chardet==7.4.3", "charset-normalizer==3.4.7", "jsonfield==3.2.0", "idna==3.18", + "astroid==4.0.4", "lxml[html-clean]==6.1.1", "pylint==4.0.5", "click-plugins==1.1.1.2", + "python-dateutil==2.9.0.post0", "click==8.4.1", "pydata-sphinx-theme==0.16.1", + "greenlet==3.5.1", "simplejson==4.1.1", "kombu==5.3.5", "jinja2==3.1.6", + "pytest==9.0.3", "distlib==0.4.1", "rfc3986==2.0.0", "tzdata==2026.2", + "psutil==7.2.2", "typing-extensions==4.15.0", "certifi==2026.5.20", "billiard==4.2.0", + "vine==5.1.0", "edx-i18n-tools==2.0.0", "click-didyoumean==0.3.1", "edx-celeryutils==2.0.0", + "click==8.1.6", "beautifulsoup4==4.14.3", "sqlalchemy==2.0.50", "accessible-pygments==0.0.5", + "babel==2.18.0", "jaraco-classes==3.4.0"]' django_packages: django_42: count: 8 - list: '["edx-celeryutils", "edx-django-utils", "code-annotations", "django-waffle", - "djangorestframework", "pytest-django", "edx-i18n-tools", "pylint-django"]' + list: '["djangorestframework", "edx-i18n-tools", "pylint-django", "edx-django-utils", + "edx-celeryutils", "pytest-django", "code-annotations", "django-waffle"]' total: count: 11 - list: '["edx-celeryutils", "edx-django-utils", "code-annotations", "django-waffle", - "djangorestframework", "pytest-django", "django-model-utils", "django-crum", - "edx-i18n-tools", "jsonfield", "pylint-django"]' + list: '["jsonfield", "django-model-utils", "djangorestframework", "edx-i18n-tools", + "pylint-django", "edx-django-utils", "django-crum", "edx-celeryutils", + "pytest-django", "code-annotations", "django-waffle"]' upgraded: count: 5 - list: '["edx-celeryutils", "edx-django-utils", "code-annotations", "django-waffle", - "edx-i18n-tools"]' + list: '["edx-i18n-tools", "edx-django-utils", "edx-celeryutils", "code-annotations", + "django-waffle"]' docs: build_badge: true python_version: null @@ -109,20 +109,20 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 10 - build_details: '{"total_duration": "15081 minutes 18 seconds", "checks": [{"name": - "update-pip-graph", "duration": "0 minutes 46 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, quality)", "duration": "0 minutes 41 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, docs)", "duration": "0 minutes 37 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, django52-celery53-drflatest)", "duration": "0 minutes 36 seconds"}, + branch_count: 12 + build_details: '{"total_duration": "3507 minutes 51 seconds", "checks": [{"name": + "update-pip-graph", "duration": "0 minutes 40 seconds"}, {"name": "Tests (ubuntu-latest, + 3.12, quality)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 34 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + django52-celery53-drflatest)", "duration": "0 minutes 33 seconds"}, {"name": + "Tests (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 32 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, pii_check)", "duration": "0 minutes - 32 seconds"}, {"name": "Dependabot", "duration": "0 minutes 27 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 17 seconds"}]}' + 28 seconds"}]}' code_of_conduct: Other created_at: 2019-05-15 20:16:52 default_branch: master description: Generic CSV Processor - disk_usage_kb: 449 + disk_usage_kb: 466 fork_count: 11 has_issues: true has_wiki: false @@ -131,9 +131,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-21 18:32:58 + last_push: 2026-06-08 03:14:18 license: Apache License 2.0 - pulls_count: 0 + pulls_count: 2 github_actions: true language_bytes: css: 0 @@ -158,19 +158,23 @@ ownership: {} pinned_python_dependencies: 4 readme: bad_links: + - 'https://github.com/openedx/super-csv/blob/master/.github/PULL_REQUEST_TEMPLATE.md: + 504' + - 'https://github.com/openedx/super-csv/blob/master/.github/ISSUE_TEMPLATE.md: + 504' + - 'https://github.com/openedx/super-csv/workflows/Python%20CI/badge.svg?branch=master: + 504' + - 'https://github.com/openedx/super-csv/actions?query=workflow%3A%22Python+CI%22: + 504' - 'http://super-csv.readthedocs.io/en/latest/: 404' getting-help: true good_links: - https://github.com/openedx/super-csv/blob/master/super_csv/csv_processor.py - https://github.com/openedx/devstack - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - - https://github.com/openedx/super-csv/blob/master/.github/PULL_REQUEST_TEMPLATE.md - - https://github.com/openedx/super-csv/blob/master/.github/ISSUE_TEMPLATE.md - https://open.edx.org/getting-help - https://img.shields.io/pypi/v/super-csv.svg - https://pypi.python.org/pypi/super-csv/ - - https://github.com/openedx/super-csv/workflows/Python%20CI/badge.svg?branch=master - - https://github.com/openedx/super-csv/actions?query=workflow%3A%22Python+CI%22 - http://codecov.io/github/edx/super-csv/coverage.svg?branch=master - http://codecov.io/github/edx/super-csv?branch=master - https://readthedocs.org/projects/super-csv/badge/?version=latest diff --git a/individual_repo_data/openedx/taxonomy-connector_repo_health.yaml b/individual_repo_data/openedx/taxonomy-connector_repo_health.yaml index 54ae9ebc..98e1ec17 100644 --- a/individual_repo_data/openedx/taxonomy-connector_repo_health.yaml +++ b/individual_repo_data/openedx/taxonomy-connector_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,93 +22,94 @@ dependencies: list: '' pypi: count: 110 - list: '["boto3==1.43.6", "tomli-w==1.2.0", "djangorestframework==3.17.1", - "factory-boy==3.3.3", "cachetools==7.1.1", "edx-opaque-keys[django]==4.0.0", - "chardet==7.4.3", "lxml-html-clean==0.4.4", "lxml[html-clean]==6.1.0", - "django-waffle==5.0.0", "billiard==4.2.4", "pytest==9.0.3", "edx-lint==6.1.0", - "edx-django-utils==8.0.1", "prompt-toolkit==3.0.52", "six==1.17.0", "click-log==0.4.0", - "amqp==5.3.1", "edx-rest-api-client==7.0.0", "django-solo==2.5.1", "edx-ccx-keys==2.0.2", - "pymongo==4.17.0", "fastavro==1.12.2", "soupsieve==2.8.3", "iniconfig==2.3.0", - "pycparser==3.0", "botocore==1.43.6", "responses==0.26.0", "packaging==26.2", - "distlib==0.4.0", "click-didyoumean==0.3.1", "click-plugins==1.1.1.2", - "certifi==2026.4.22", "pycodestyle==2.14.0", "vine==5.1.0", "idna==3.14", - "attrs==26.1.0", "pytz==2026.2", "virtualenv==21.3.1", "ddt==1.7.2", "pylint-plugin-utils==0.9.0", - "click-repl==0.3.0", "click==8.3.3", "isort==8.0.1", "mock==5.2.0", "pylint-django==2.7.0", - "faker==40.15.0", "django-object-actions==5.0.1", "stevedore==5.7.0", - "diff-cover==10.2.0", "tox==4.53.1", "testfixtures==11.0.0", "tomlkit==0.15.0", - "django-ses==4.7.2", "code-annotations==3.0.0", "colorama==0.4.6", "jmespath==1.1.0", - "python-discovery==1.3.0", "asgiref==3.11.1", "cffi==2.0.0", "kombu==5.6.2", - "wcwidth==0.7.0", "pynacl==1.6.2", "pyproject-api==1.10.0", "edx-i18n-tools==2.0.0", - "pylint==4.0.5", "algoliasearch==1.20.0", "filelock==3.29.0", "pluggy==1.6.0", - "wheel==0.47.0", "jinja2==3.1.6", "openedx-events==11.2.0", "django-model-utils==5.0.0", - "pytest-cov==7.1.0", "s3transfer==0.17.0", "coverage[toml]==7.14.0", "charset-normalizer==3.4.7", - "path==16.16.0", "pytest-django==4.12.0", "pylint-celery==0.3", "dill==0.4.1", - "pydocstyle==6.3.0", "pip-tools==7.5.3", "pyjwt==2.12.1", "markupsafe==3.0.3", - "typing-extensions==4.15.0", "psutil==7.2.2", "django-crum==0.7.9", "text-unidecode==1.3", - "mccabe==0.7.0", "sqlparse==0.5.5", "polib==1.2.0", "astroid==4.0.4", - "python-slugify==8.0.4", "urllib3==2.7.0", "django-filter==25.2", "python-dateutil==2.9.0.post0", - "django==5.2.14", "dnspython==2.8.0", "celery==5.6.3", "beautifulsoup4==4.14.3", - "snowballstemmer==3.0.1", "build==1.5.0", "tzdata==2026.2", "pyyaml==6.0.3", - "pyproject-hooks==1.2.0", "pygments==2.20.0", "requests==2.33.1", "platformdirs==4.9.6", - "tzlocal==5.3.1"]' + list: '["billiard==4.2.4", "djangorestframework==3.17.1", "snowballstemmer==3.0.1", + "mccabe==0.7.0", "psutil==7.2.2", "django-ses==4.7.2", "click-plugins==1.1.1.2", + "edx-ccx-keys==2.0.2", "prompt-toolkit==3.0.52", "build==1.5.0", "tomli-w==1.2.0", + "stevedore==5.7.0", "polib==1.2.0", "sqlparse==0.5.5", "pycodestyle==2.14.0", + "edx-django-utils==8.0.1", "openedx-events==11.2.0", "python-dateutil==2.9.0.post0", + "tomlkit==0.15.0", "pytest-cov==7.1.0", "pylint-django==2.7.0", "pycparser==3.0", + "edx-opaque-keys[django]==4.0.0", "algoliasearch==1.20.0", "colorama==0.4.6", + "click-repl==0.3.0", "idna==3.14", "amqp==5.3.1", "pylint-celery==0.3", + "responses==0.26.0", "pylint==4.0.5", "django-object-actions==5.0.1", + "pyjwt==2.12.1", "python-discovery==1.3.0", "pynacl==1.6.2", "code-annotations==3.0.0", + "click-log==0.4.0", "tzlocal==5.3.1", "pytz==2026.2", "pyyaml==6.0.3", + "click-didyoumean==0.3.1", "fastavro==1.12.2", "cachetools==7.1.1", "asgiref==3.11.1", + "pytest==9.0.3", "celery==5.6.3", "filelock==3.29.0", "edx-lint==6.1.0", + "click==8.3.3", "testfixtures==11.0.0", "django==5.2.14", "dnspython==2.8.0", + "pytest-django==4.12.0", "django-solo==2.5.1", "mock==5.2.0", "edx-rest-api-client==7.0.0", + "wheel==0.47.0", "diff-cover==10.2.0", "factory-boy==3.3.3", "attrs==26.1.0", + "six==1.17.0", "pyproject-api==1.10.0", "django-crum==0.7.9", "packaging==26.2", + "pymongo==4.17.0", "chardet==7.4.3", "s3transfer==0.17.0", "pluggy==1.6.0", + "urllib3==2.7.0", "jinja2==3.1.6", "vine==5.1.0", "pydocstyle==6.3.0", + "pip-tools==7.5.3", "edx-i18n-tools==2.0.0", "lxml-html-clean==0.4.4", + "kombu==5.6.2", "virtualenv==21.3.1", "path==16.16.0", "cffi==2.0.0", + "django-model-utils==5.0.0", "coverage[toml]==7.14.0", "tox==4.53.1", + "typing-extensions==4.15.0", "pylint-plugin-utils==0.9.0", "ddt==1.7.2", + "platformdirs==4.9.6", "lxml[html-clean]==6.1.0", "astroid==4.0.4", "pygments==2.20.0", + "python-slugify==8.0.4", "soupsieve==2.8.3", "markupsafe==3.0.3", "tzdata==2026.2", + "distlib==0.4.0", "isort==8.0.1", "faker==40.15.0", "charset-normalizer==3.4.7", + "pyproject-hooks==1.2.0", "iniconfig==2.3.0", "requests==2.33.1", "beautifulsoup4==4.14.3", + "wcwidth==0.7.0", "jmespath==1.1.0", "django-waffle==5.0.0", "django-filter==25.2", + "certifi==2026.4.22", "text-unidecode==1.3", "boto3==1.43.6", "dill==0.4.1", + "botocore==1.43.6"]' pypi_all: count: 146 - list: '["boto3==1.43.6", "tomli-w==1.2.0", "djangorestframework==3.17.1", - "factory-boy==3.3.3", "cachetools==7.1.1", "babel==2.18.0", "edx-opaque-keys[django]==4.0.0", - "sphinx==9.1.0", "chardet==7.4.3", "lxml-html-clean==0.4.4", "lxml[html-clean]==6.1.0", - "django-waffle==5.0.0", "sphinxcontrib-qthelp==2.0.0", "imagesize==2.0.0", - "billiard==4.2.4", "pytest==9.0.3", "edx-lint==6.1.0", "edx-django-utils==8.0.1", - "prompt-toolkit==3.0.52", "six==1.17.0", "click-log==0.4.0", "doc8==2.0.0", - "amqp==5.3.1", "edx-rest-api-client==7.0.0", "secretstorage==3.5.0", "django-solo==2.5.1", - "edx-ccx-keys==2.0.2", "pymongo==4.17.0", "fastavro==1.12.2", "jeepney==0.9.0", - "soupsieve==2.8.3", "iniconfig==2.3.0", "jaraco-functools==4.4.0", "pycparser==3.0", - "botocore==1.43.6", "responses==0.26.0", "packaging==26.2", "pydata-sphinx-theme==0.16.1", - "distlib==0.4.0", "click-didyoumean==0.3.1", "click-plugins==1.1.1.2", - "certifi==2026.4.22", "pycodestyle==2.14.0", "sphinx-book-theme==1.2.0", - "vine==5.1.0", "idna==3.14", "attrs==26.1.0", "pytz==2026.2", "more-itertools==11.0.2", - "virtualenv==21.3.1", "roman-numerals==4.1.0", "ddt==1.7.2", "pylint-plugin-utils==0.9.0", - "click-repl==0.3.0", "click==8.3.3", "jaraco-classes==3.4.0", "isort==8.0.1", - "mock==5.2.0", "pylint-django==2.7.0", "faker==40.15.0", "django-object-actions==5.0.1", - "sphinxcontrib-jsmath==1.0.1", "cryptography==48.0.0", "stevedore==5.7.0", - "diff-cover==10.2.0", "tox==4.53.1", "testfixtures==11.0.0", "tomlkit==0.15.0", - "alabaster==1.0.0", "django-ses==4.7.2", "mdurl==0.1.2", "code-annotations==3.0.0", - "colorama==0.4.6", "jmespath==1.1.0", "python-discovery==1.3.0", "asgiref==3.11.1", - "cffi==2.0.0", "requests-toolbelt==1.0.0", "markdown-it-py==4.2.0", "kombu==5.6.2", - "wcwidth==0.7.0", "pynacl==1.6.2", "pyproject-api==1.10.0", "edx-i18n-tools==2.0.0", - "pylint==4.0.5", "algoliasearch==1.20.0", "filelock==3.29.0", "pluggy==1.6.0", - "keyring==25.7.0", "twine==6.2.0", "wheel==0.47.0", "rich==15.0.0", "pip==26.1.1", - "jinja2==3.1.6", "openedx-events==11.2.0", "setuptools==82.0.1", "nh3==0.3.5", - "django-model-utils==5.0.0", "pytest-cov==7.1.0", "s3transfer==0.17.0", - "coverage[toml]==7.14.0", "charset-normalizer==3.4.7", "path==16.16.0", - "pytest-django==4.12.0", "pylint-celery==0.3", "dill==0.4.1", "docutils==0.21.2", - "pydocstyle==6.3.0", "pip-tools==7.5.3", "accessible-pygments==0.0.5", - "restructuredtext-lint==2.0.2", "pyjwt==2.12.1", "markupsafe==3.0.3", - "typing-extensions==4.15.0", "jaraco-context==6.1.2", "sphinxcontrib-devhelp==2.0.0", - "sphinxcontrib-serializinghtml==2.0.0", "psutil==7.2.2", "django-crum==0.7.9", - "text-unidecode==1.3", "mccabe==0.7.0", "sqlparse==0.5.5", "polib==1.2.0", - "astroid==4.0.4", "python-slugify==8.0.4", "urllib3==2.7.0", "readme-renderer==44.0", - "sphinxcontrib-applehelp==2.0.0", "django-filter==25.2", "python-dateutil==2.9.0.post0", - "rfc3986==2.0.0", "django==5.2.14", "dnspython==2.8.0", "celery==5.6.3", - "beautifulsoup4==4.14.3", "snowballstemmer==3.0.1", "build==1.5.0", "tzdata==2026.2", - "pyyaml==6.0.3", "id==1.6.1", "pyproject-hooks==1.2.0", "pygments==2.20.0", - "sphinxcontrib-htmlhelp==2.1.0", "requests==2.33.1", "platformdirs==4.9.6", - "tzlocal==5.3.1"]' + list: '["billiard==4.2.4", "djangorestframework==3.17.1", "roman-numerals==4.1.0", + "snowballstemmer==3.0.1", "mccabe==0.7.0", "readme-renderer==44.0", "psutil==7.2.2", + "django-ses==4.7.2", "alabaster==1.0.0", "sphinxcontrib-serializinghtml==2.0.0", + "click-plugins==1.1.1.2", "edx-ccx-keys==2.0.2", "prompt-toolkit==3.0.52", + "build==1.5.0", "tomli-w==1.2.0", "stevedore==5.7.0", "polib==1.2.0", + "sqlparse==0.5.5", "pycodestyle==2.14.0", "edx-django-utils==8.0.1", "sphinxcontrib-qthelp==2.0.0", + "restructuredtext-lint==2.0.2", "accessible-pygments==0.0.5", "openedx-events==11.2.0", + "python-dateutil==2.9.0.post0", "tomlkit==0.15.0", "keyring==25.7.0", + "pytest-cov==7.1.0", "pylint-django==2.7.0", "pycparser==3.0", "edx-opaque-keys[django]==4.0.0", + "doc8==2.0.0", "algoliasearch==1.20.0", "colorama==0.4.6", "click-repl==0.3.0", + "idna==3.14", "amqp==5.3.1", "pylint-celery==0.3", "responses==0.26.0", + "setuptools==82.0.1", "twine==6.2.0", "pylint==4.0.5", "django-object-actions==5.0.1", + "pyjwt==2.12.1", "python-discovery==1.3.0", "pynacl==1.6.2", "code-annotations==3.0.0", + "click-log==0.4.0", "markdown-it-py==4.2.0", "tzlocal==5.3.1", "pytz==2026.2", + "pyyaml==6.0.3", "click-didyoumean==0.3.1", "fastavro==1.12.2", "cryptography==48.0.0", + "id==1.6.1", "more-itertools==11.0.2", "cachetools==7.1.1", "asgiref==3.11.1", + "pytest==9.0.3", "jaraco-context==6.1.2", "celery==5.6.3", "nh3==0.3.5", + "filelock==3.29.0", "pydata-sphinx-theme==0.16.1", "edx-lint==6.1.0", + "click==8.3.3", "testfixtures==11.0.0", "django==5.2.14", "dnspython==2.8.0", + "pytest-django==4.12.0", "django-solo==2.5.1", "mock==5.2.0", "edx-rest-api-client==7.0.0", + "secretstorage==3.5.0", "wheel==0.47.0", "diff-cover==10.2.0", "factory-boy==3.3.3", + "sphinx==9.1.0", "attrs==26.1.0", "six==1.17.0", "pyproject-api==1.10.0", + "requests-toolbelt==1.0.0", "django-crum==0.7.9", "docutils==0.21.2", + "packaging==26.2", "pymongo==4.17.0", "chardet==7.4.3", "s3transfer==0.17.0", + "pluggy==1.6.0", "urllib3==2.7.0", "jinja2==3.1.6", "vine==5.1.0", "pydocstyle==6.3.0", + "pip-tools==7.5.3", "edx-i18n-tools==2.0.0", "lxml-html-clean==0.4.4", + "kombu==5.6.2", "virtualenv==21.3.1", "sphinxcontrib-applehelp==2.0.0", + "imagesize==2.0.0", "path==16.16.0", "jeepney==0.9.0", "mdurl==0.1.2", + "cffi==2.0.0", "django-model-utils==5.0.0", "coverage[toml]==7.14.0", + "tox==4.53.1", "typing-extensions==4.15.0", "pylint-plugin-utils==0.9.0", + "ddt==1.7.2", "rich==15.0.0", "platformdirs==4.9.6", "pip==26.1.1", "jaraco-classes==3.4.0", + "lxml[html-clean]==6.1.0", "jaraco-functools==4.4.0", "sphinxcontrib-devhelp==2.0.0", + "astroid==4.0.4", "sphinxcontrib-htmlhelp==2.1.0", "pygments==2.20.0", + "python-slugify==8.0.4", "soupsieve==2.8.3", "babel==2.18.0", "markupsafe==3.0.3", + "tzdata==2026.2", "distlib==0.4.0", "isort==8.0.1", "faker==40.15.0", + "charset-normalizer==3.4.7", "pyproject-hooks==1.2.0", "iniconfig==2.3.0", + "requests==2.33.1", "beautifulsoup4==4.14.3", "wcwidth==0.7.0", "rfc3986==2.0.0", + "jmespath==1.1.0", "django-waffle==5.0.0", "django-filter==25.2", "certifi==2026.4.22", + "sphinx-book-theme==1.2.0", "text-unidecode==1.3", "sphinxcontrib-jsmath==1.0.1", + "boto3==1.43.6", "dill==0.4.1", "botocore==1.43.6"]' django_packages: django_42: count: 12 - list: '["edx-django-utils", "edx-i18n-tools", "django-waffle", "pylint-django", - "django-object-actions", "code-annotations", "edx-rest-api-client", "pytest-django", - "django-filter", "factory-boy", "django-solo", "djangorestframework"]' + list: '["django-waffle", "edx-django-utils", "djangorestframework", "edx-rest-api-client", + "django-solo", "edx-i18n-tools", "pylint-django", "factory-boy", "pytest-django", + "django-object-actions", "django-filter", "code-annotations"]' total: count: 15 - list: '["edx-django-utils", "edx-i18n-tools", "django-ses", "django-waffle", - "pylint-django", "django-object-actions", "django-crum", "code-annotations", - "edx-rest-api-client", "pytest-django", "django-filter", "factory-boy", - "django-solo", "django-model-utils", "djangorestframework"]' + list: '["django-model-utils", "django-waffle", "edx-django-utils", "djangorestframework", + "edx-rest-api-client", "django-solo", "edx-i18n-tools", "pylint-django", + "factory-boy", "pytest-django", "django-object-actions", "django-ses", + "django-crum", "django-filter", "code-annotations"]' upgraded: count: 7 - list: '["edx-django-utils", "edx-i18n-tools", "django-waffle", "code-annotations", - "edx-rest-api-client", "django-filter", "django-solo"]' + list: '["django-waffle", "edx-django-utils", "edx-rest-api-client", "django-solo", + "edx-i18n-tools", "django-filter", "code-annotations"]' docs: build_badge: false python_version: null @@ -136,28 +137,28 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 36 - build_details: '{"total_duration": "1989 minutes 56 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 33 seconds"}, + build_details: '{"total_duration": "7898 minutes 5 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, django52)", "duration": "1 minutes 25 seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", - "duration": "1 minutes 3 seconds"}, {"name": "check migrations (ubuntu-latest, - 3.12)", "duration": "1 minutes 0 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, quality)", "duration": "0 minutes 57 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, docs)", "duration": "0 minutes 44 seconds"}, {"name": "Tests (ubuntu-latest, - 3.12, pii-annotations)", "duration": "0 minutes 30 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "-1 minutes 53 seconds"}]}' + "duration": "1 minutes 24 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, + quality)", "duration": "1 minutes 10 seconds"}, {"name": "check migrations + (ubuntu-latest, 3.12)", "duration": "0 minutes 50 seconds"}, {"name": "Tests + (ubuntu-latest, 3.12, docs)", "duration": "0 minutes 42 seconds"}, {"name": + "Tests (ubuntu-latest, 3.12, pii-annotations)", "duration": "0 minutes 37 + seconds"}, {"name": "push", "duration": "0 minutes 19 seconds"}, {"name": + "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, + {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 + seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "-1 + minutes 53 seconds"}]}' code_of_conduct: Other created_at: 2020-08-28 15:55:21 default_branch: master description: A python package that communicates with 3rd party taxonomy vendors - disk_usage_kb: 1038 + disk_usage_kb: 1054 fork_count: 18 has_issues: true has_wiki: false @@ -166,7 +167,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:43:21 + last_push: 2026-06-08 00:43:08 license: GNU AGPLv3 pulls_count: 15 github_actions: true @@ -176,7 +177,7 @@ language_bytes: html: 3100 javascript: 1016 makefile: 3852 - python: 650835 + python: 701934 shell: 0 makefile: pip-installed: true diff --git a/individual_repo_data/openedx/tinymce-language-selector_repo_health.yaml b/individual_repo_data/openedx/tinymce-language-selector_repo_health.yaml index 00f504c9..89f737b8 100644 --- a/individual_repo_data/openedx/tinymce-language-selector_repo_health.yaml +++ b/individual_repo_data/openedx/tinymce-language-selector_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -63,8 +63,9 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 5 - build_details: '{"total_duration": "0 minutes 23 seconds", "checks": [{"name": - "Dependabot", "duration": "0 minutes 23 seconds"}]}' + build_details: '{"total_duration": "11187 minutes 55 seconds", "checks": [{"name": + "Dependabot", "duration": "0 minutes 46 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 23 seconds"}]}' code_of_conduct: Other created_at: 2020-01-23 19:26:19 default_branch: master @@ -106,10 +107,10 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/semantic-release/semantic-release: 504' getting-help: false - good_links: - - https://github.com/semantic-release/semantic-release + good_links: [] irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/training-courses_repo_health.yaml b/individual_repo_data/openedx/training-courses_repo_health.yaml index 5e59a2dd..bd2c060f 100644 --- a/individual_repo_data/openedx/training-courses_repo_health.yaml +++ b/individual_repo_data/openedx/training-courses_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/tutor-contrib-aspects-sample_repo_health.yaml b/individual_repo_data/openedx/tutor-contrib-aspects-sample_repo_health.yaml index 23863b7f..ba913e55 100644 --- a/individual_repo_data/openedx/tutor-contrib-aspects-sample_repo_health.yaml +++ b/individual_repo_data/openedx/tutor-contrib-aspects-sample_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -105,11 +105,11 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/saraburns1/tutor-contrib-aspects-sample: 504' getting-help: false good_links: - https://docs.tutor.edly.io - - https://github.com/saraburns1/tutor-contrib-aspects-sample - https://superset.apache.org/docs - https://www.getdbt.com/docs/ - https://clickhouse.com/docs diff --git a/individual_repo_data/openedx/tutor-contrib-aspects_repo_health.yaml b/individual_repo_data/openedx/tutor-contrib-aspects_repo_health.yaml index c8d15911..f15184df 100644 --- a/individual_repo_data/openedx/tutor-contrib-aspects_repo_health.yaml +++ b/individual_repo_data/openedx/tutor-contrib-aspects_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -7,7 +7,7 @@ dependabot: pip: false dependabot_alerts: {} dependencies: - count: 83 + count: 75 github: count: 0 list: '[]' @@ -21,43 +21,40 @@ dependencies: count: 0 list: '' pypi: - count: 46 - list: '["markupsafe==3.0.3", "aiohttp==3.13.5", "shandy-sqlfmt[jinjafmt]==0.26.0", - "pytokens==0.4.1", "kubernetes==36.0.0", "attrs==26.1.0", "pathspec==1.1.1", - "click==8.2.1", "appdirs==1.4.4", "pyyaml==6.0.3", "ruamel-yaml==0.19.1", - "multidict==6.7.1", "requests==2.34.2", "urllib3==2.7.0", "ast-serialize==0.5.0", - "typing-extensions==4.15.0", "zipp==4.1.0", "propcache==0.5.2", "importlib-metadata==9.0.0", - "pycryptodome==3.23.0", "frozenlist==1.8.0", "aiohappyeyeballs==2.6.2", - "mypy==2.1.0", "openedx-atlas==0.7.0", "tutor-mfe==21.0.0", "idna==3.16", - "websocket-client==1.9.0", "importlib-resources==7.1.0", "platformdirs==4.9.6", - "packaging==26.2", "six==1.17.0", "black==26.5.1", "tutor==21.0.6", "tqdm==4.67.3", - "bcrypt==5.0.0", "certifi==2026.5.20", "librt==0.11.0", "yarl==1.24.2", - "durationpy==0.10", "oauthlib==3.3.1", "charset-normalizer==3.4.7", "requests-oauthlib==2.0.0", - "aiosignal==1.4.0", "jinja2==3.1.6", "mypy-extensions==1.1.0", "python-dateutil==2.9.0.post0"]' + count: 38 + list: '["platformdirs==4.10.0", "jinja2==3.1.6", "markupsafe==3.0.3", "urllib3==2.7.0", + "click==8.2.1", "durationpy==0.10", "openedx-atlas==0.7.0", "idna==3.17", + "mypy-extensions==1.1.0", "pycryptodome==3.23.0", "importlib-resources==7.1.0", + "oauthlib==3.3.1", "pathspec==1.1.1", "pyyaml==6.0.3", "importlib-metadata==9.0.0", + "packaging==26.2", "mypy==2.1.0", "websocket-client==1.9.0", "librt==0.11.0", + "black==26.5.1", "shandy-sqlfmt[jinjafmt]==0.26.0", "ast-serialize==0.5.0", + "ruamel-yaml==0.19.1", "requests==2.34.2", "bcrypt==5.0.0", "tutor-mfe==21.0.0", + "tutor==21.0.7", "python-dateutil==2.9.0.post0", "appdirs==1.4.4", "kubernetes==35.0.0", + "typing-extensions==4.15.0", "pytokens==0.4.1", "zipp==4.1.0", "tqdm==4.67.3", + "charset-normalizer==3.4.7", "six==1.17.0", "requests-oauthlib==2.0.0", + "certifi==2026.5.20"]' pypi_all: - count: 83 - list: '["markupsafe==3.0.3", "shandy-sqlfmt[jinjafmt]==0.26.0", "kubernetes==36.0.0", - "appdirs==1.4.4", "pyyaml==6.0.3", "multidict==6.7.1", "ast-serialize==0.5.0", - "twine==6.2.0", "cffi==2.0.0", "frozenlist==1.8.0", "secretstorage==3.5.0", - "pyinstaller-hooks-contrib==2026.5", "idna==3.16", "platformdirs==4.9.6", - "black==26.5.1", "keyring==25.7.0", "pyproject-hooks==1.2.0", "yarl==1.24.2", - "durationpy==0.10", "jinja2==3.1.6", "openedx-atlas==0.7.0", "jaraco-functools==4.5.0", - "attrs==26.1.0", "click==8.4.1", "pylint==4.0.5", "astroid==4.0.4", "jeepney==0.9.0", - "readme-renderer==44.0", "zipp==4.1.0", "cryptography==48.0.0", "aiohappyeyeballs==2.6.2", - "more-itertools==11.1.0", "tutor==21.0.6", "tqdm==4.67.3", "requests-toolbelt==1.0.0", - "librt==0.11.0", "pip==26.1.1", "jaraco-classes==3.4.0", "mypy-extensions==1.1.0", - "pytokens==0.4.1", "mccabe==0.7.0", "click==8.2.1", "tomlkit==0.15.0", - "id==1.6.1", "typing-extensions==4.15.0", "importlib-metadata==9.0.0", - "pycryptodome==3.23.0", "jaraco-context==6.1.2", "mypy==2.1.0", "tutor-mfe==21.0.0", - "websocket-client==1.9.0", "importlib-resources==7.1.0", "docutils==0.22.4", - "packaging==26.2", "build==1.5.0", "certifi==2026.5.20", "requests-oauthlib==2.0.0", - "aiosignal==1.4.0", "python-dateutil==2.9.0.post0", "aiohttp==3.13.5", - "nh3==0.3.5", "pathspec==1.1.1", "rfc3986==2.0.0", "ruamel-yaml==0.19.1", - "requests==2.34.2", "urllib3==2.7.0", "pip-tools==7.5.3", "propcache==0.5.2", - "dill==0.4.1", "altgraph==0.17.5", "isort==8.0.1", "pycparser==3.0", "setuptools==82.0.1", - "six==1.17.0", "mdurl==0.1.2", "markdown-it-py==4.2.0", "bcrypt==5.0.0", - "wheel==0.47.0", "oauthlib==3.3.1", "charset-normalizer==3.4.7", "rich==15.0.0", - "pygments==2.20.0", "pyinstaller==6.20.0"]' + count: 75 + list: '["platformdirs==4.10.0", "jinja2==3.1.6", "markupsafe==3.0.3", "urllib3==2.7.0", + "pygments==2.20.0", "astroid==4.0.4", "click==8.2.1", "dill==0.4.1", "durationpy==0.10", + "openedx-atlas==0.7.0", "pyinstaller-hooks-contrib==2026.5", "readme-renderer==44.0", + "idna==3.17", "mypy-extensions==1.1.0", "pycryptodome==3.23.0", "requests-oauthlib==2.0.0", + "rich==15.0.0", "requests-toolbelt==1.0.0", "importlib-resources==7.1.0", + "oauthlib==3.3.1", "jaraco-functools==4.5.0", "pathspec==1.1.1", "pyyaml==6.0.3", + "cffi==2.0.0", "markdown-it-py==4.2.0", "pyinstaller==6.20.0", "importlib-metadata==9.0.0", + "packaging==26.2", "pylint==4.0.5", "isort==8.0.1", "mypy==2.1.0", "pycparser==3.0", + "nh3==0.3.5", "tomlkit==0.15.0", "websocket-client==1.9.0", "librt==0.11.0", + "black==26.5.1", "shandy-sqlfmt[jinjafmt]==0.26.0", "ast-serialize==0.5.0", + "ruamel-yaml==0.19.1", "cryptography==48.0.0", "requests==2.34.2", "bcrypt==5.0.0", + "tutor-mfe==21.0.0", "tutor==21.0.7", "docutils==0.23", "wheel==0.47.0", + "setuptools==82.0.1", "id==1.6.1", "jeepney==0.9.0", "appdirs==1.4.4", + "python-dateutil==2.9.0.post0", "pip==26.1.2", "pyproject-hooks==1.2.0", + "kubernetes==35.0.0", "twine==6.2.0", "typing-extensions==4.15.0", "mccabe==0.7.0", + "keyring==25.7.0", "mdurl==0.1.2", "secretstorage==3.5.0", "click==8.4.1", + "pip-tools==7.5.3", "jaraco-classes==3.4.0", "pytokens==0.4.1", "zipp==4.1.0", + "rfc3986==2.0.0", "charset-normalizer==3.4.7", "tqdm==4.67.3", "build==1.5.0", + "more-itertools==11.1.0", "six==1.17.0", "jaraco-context==6.1.2", "altgraph==0.17.5", + "certifi==2026.5.20"]' django_packages: django_42: count: 0 @@ -94,23 +91,23 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 22 - build_details: '{"total_duration": "7920 minutes 19 seconds", "checks": [{"name": + branch_count: 20 + build_details: '{"total_duration": "6465 minutes 36 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "0 minutes 54 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes - 44 seconds"}, {"name": "tests", "duration": "0 minutes 35 seconds"}, {"name": - "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes - 53 seconds"}, {"name": "add_remove_labels / add_label", "duration": "-1 minutes - 51 seconds"}]}' + "1 minutes 20 seconds"}, {"name": "release", "duration": "0 minutes 52 seconds"}, + {"name": "tests", "duration": "0 minutes 39 seconds"}, {"name": "release", + "duration": "0 minutes 10 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2023-02-07 05:22:39 default_branch: main description: The Open Analytics Reference System - Tutor plugin - disk_usage_kb: 3770 + disk_usage_kb: 3671 fork_count: 30 has_issues: true has_wiki: false @@ -119,9 +116,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 01:09:49 + last_push: 2026-06-08 01:09:39 license: Apache License 2.0 - pulls_count: 11 + pulls_count: 9 github_actions: false language_bytes: css: 0 @@ -145,7 +142,8 @@ org_name: openedx ownership: {} pinned_python_dependencies: 2 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/frontend-plugin-aspects: 504' getting-help: false good_links: - https://docs.tutor.overhang.io @@ -166,7 +164,6 @@ readme: - https://superset.apache.org/docs - https://www.getdbt.com/docs/ - https://vector.dev/docs/ - - https://github.com/openedx/frontend-plugin-aspects - https://docs.openedx.org/projects/openedx-aspects/en/latest/technical_documentation/how-tos/aspects_production_configuration.html - https://docs.openedx.org/projects/openedx-aspects/en/latest/reference/in_context_dashboards.html irc-missing: true diff --git a/individual_repo_data/openedx/tutor-contrib-platform-notifications_repo_health.yaml b/individual_repo_data/openedx/tutor-contrib-platform-notifications_repo_health.yaml index d7aed66d..fa247eb8 100644 --- a/individual_repo_data/openedx/tutor-contrib-platform-notifications_repo_health.yaml +++ b/individual_repo_data/openedx/tutor-contrib-platform-notifications_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -104,12 +104,12 @@ org_name: openedx ownership: {} pinned_python_dependencies: 0 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/tutor-contrib-notifications: 504' getting-help: false good_links: - https://docs.tutor.edly.io - https://docs.openedx.org/en/latest/learners/sfd_notifications/index.html - - https://github.com/openedx/tutor-contrib-notifications irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/typescript-config_repo_health.yaml b/individual_repo_data/openedx/typescript-config_repo_health.yaml index a64f4bd2..de5f73f5 100644 --- a/individual_repo_data/openedx/typescript-config_repo_health.yaml +++ b/individual_repo_data/openedx/typescript-config_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -109,6 +109,8 @@ readme: bad_links: - 'https://www.npmjs.com/package/@edx/typescript-config: 403' - 'https://www.npmjs.com/package/@edx/tpyescript-config: 403' + - 'https://github.com/openedx/typescript-config/blob/main/LICENSE: 504' + - 'https://github.com/semantic-release/semantic-release: 504' getting-help: false good_links: - https://github.com/openedx/typescript-config/actions/workflows/release.yml/badge.svg @@ -116,9 +118,7 @@ readme: - https://img.shields.io/npm/v/@edx/typescript-config.svg - https://img.shields.io/npm/dt/@edx/typescript-config.svg - https://img.shields.io/npm/l/@edx/typescript-config.svg - - https://github.com/openedx/typescript-config/blob/main/LICENSE - https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg - - https://github.com/semantic-release/semantic-release - https://www.typescriptlang.org/docs/handbook/tsconfig-json.html irc-missing: true mailing-list-missing: true diff --git a/individual_repo_data/openedx/web-fragments_repo_health.yaml b/individual_repo_data/openedx/web-fragments_repo_health.yaml index 58107e18..f0da057f 100644 --- a/individual_repo_data/openedx/web-fragments_repo_health.yaml +++ b/individual_repo_data/openedx/web-fragments_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -25,44 +25,45 @@ dependencies: list: '[]' pypi_all: count: 105 - list: '["sqlparse==0.5.5", "text-unidecode==1.3", "jaraco-functools==4.5.0", - "path==16.16.0", "iniconfig==2.3.0", "alabaster==1.0.0", "jaraco-classes==3.4.0", - "readme-renderer==44.0", "pycodestyle==2.14.0", "click-log==0.4.0", "asgiref==3.11.1", - "cryptography==48.0.0", "mccabe==0.7.0", "sphinx-book-theme==1.2.0", "pluggy==1.6.0", - "jaraco-context==6.1.2", "idna==3.17", "jinja2==3.1.6", "accessible-pygments==0.0.5", - "dill==0.4.1", "markdown-it-py==4.2.0", "virtualenv==21.4.1", "pytest==9.0.3", - "astroid==4.0.4", "more-itertools==11.1.0", "babel==2.18.0", "click==8.4.1", - "soupsieve==2.8.4", "colorama==0.4.6", "polib==1.2.0", "pyproject-api==1.10.1", - "docutils==0.21.2", "rfc3986==2.0.0", "rich==15.0.0", "sphinxcontrib-applehelp==2.0.0", - "edx-i18n-tools==2.0.0", "filelock==3.29.0", "snowballstemmer==3.1.0", - "pip==26.1.1", "id==1.6.1", "pockets==0.9.1", "jeepney==0.9.0", "requests==2.34.2", - "requests-toolbelt==1.0.0", "typing-extensions==4.15.0", "lxml-html-clean==0.4.5", - "platformdirs==4.10.0", "sphinxcontrib-serializinghtml==2.0.0", "sphinxcontrib-qthelp==2.0.0", - "lxml[html-clean]==6.1.1", "sphinxcontrib-devhelp==2.0.0", "isort==8.0.1", - "six==1.17.0", "distlib==0.4.0", "charset-normalizer==3.4.7", "coverage[toml]==7.14.1", - "restructuredtext-lint==2.0.2", "nh3==0.3.5", "stevedore==5.8.0", "beautifulsoup4==4.14.3", - "pylint==4.0.5", "markupsafe==3.0.3", "pytest-cov==7.1.0", "keyring==25.7.0", - "mdurl==0.1.2", "pylint-celery==0.3", "pyproject-hooks==1.2.0", "packaging==26.2", - "certifi==2026.5.20", "tomli-w==1.2.0", "secretstorage==3.5.0", "pylint-django==2.7.0", - "setuptools==82.0.1", "tox==4.55.0", "urllib3==2.7.0", "cffi==2.0.0", - "python-slugify==8.0.4", "sphinxcontrib-napoleon==0.7", "tomlkit==0.15.0", - "chardet==7.4.3", "wheel==0.47.0", "imagesize==2.0.0", "sphinxcontrib-htmlhelp==2.1.0", - "django==5.2.14", "ddt==1.3.1", "pip-tools==7.5.3", "sphinx==9.1.0", "edx-lint==6.1.0", - "docutils==0.23", "pydocstyle==6.3.0", "pyyaml==6.0.3", "roman-numerals==4.1.0", - "build==1.5.0", "python-discovery==1.4.0", "sphinxcontrib-jsmath==1.0.1", - "cachetools==7.1.4", "pycparser==3.0", "pytest-django==4.12.0", "code-annotations==3.0.0", - "pygments==2.20.0", "pydata-sphinx-theme==0.16.1", "twine==6.2.0", "pylint-plugin-utils==0.9.0", - "doc8==2.0.0", "diff-cover==10.2.1"]' + list: '["wheel==0.47.0", "asgiref==3.11.1", "jinja2==3.1.6", "typing-extensions==4.15.0", + "python-discovery==1.4.0", "sphinxcontrib-jsmath==1.0.1", "pockets==0.9.1", + "pyyaml==6.0.3", "secretstorage==3.5.0", "click-log==0.4.0", "readme-renderer==44.0", + "isort==8.0.1", "doc8==2.0.0", "soupsieve==2.8.4", "sphinxcontrib-applehelp==2.0.0", + "cryptography==48.0.0", "pylint==4.0.5", "astroid==4.0.4", "charset-normalizer==3.4.7", + "lxml-html-clean==0.4.5", "rich==15.0.0", "imagesize==2.0.0", "twine==6.2.0", + "pylint-plugin-utils==0.9.0", "platformdirs==4.10.0", "edx-lint==6.1.0", + "diff-cover==10.3.0", "more-itertools==11.1.0", "markupsafe==3.0.3", "pylint-django==2.7.0", + "pydocstyle==6.3.0", "pycodestyle==2.14.0", "pip-tools==7.5.3", "click==8.4.1", + "pyproject-hooks==1.2.0", "code-annotations==3.0.0", "pycparser==3.0", + "beautifulsoup4==4.14.3", "rfc3986==2.0.0", "pydata-sphinx-theme==0.16.1", + "pip==26.1.2", "sphinxcontrib-qthelp==2.0.0", "stevedore==5.8.0", "six==1.17.0", + "accessible-pygments==0.0.5", "jeepney==0.9.0", "pytest==9.0.3", "lxml[html-clean]==6.1.1", + "tomli-w==1.2.0", "pytest-django==4.12.0", "jaraco-context==6.1.2", "sphinx==9.1.0", + "sphinxcontrib-serializinghtml==2.0.0", "virtualenv==21.4.2", "docutils==0.23", + "mdurl==0.1.2", "pytest-cov==7.1.0", "jaraco-classes==3.4.0", "keyring==25.7.0", + "ddt==1.3.1", "setuptools==82.0.1", "cachetools==7.1.4", "pylint-celery==0.3", + "build==1.5.0", "nh3==0.3.5", "roman-numerals==4.1.0", "cffi==2.0.0", + "chardet==7.4.3", "pygments==2.20.0", "polib==1.2.0", "snowballstemmer==3.1.1", + "sphinxcontrib-htmlhelp==2.1.0", "edx-i18n-tools==2.0.0", "dill==0.4.1", + "markdown-it-py==4.2.0", "distlib==0.4.1", "filelock==3.29.1", "sqlparse==0.5.5", + "jaraco-functools==4.5.0", "coverage[toml]==7.14.1", "python-slugify==8.0.4", + "pyproject-api==1.10.1", "tox==4.55.1", "docutils==0.21.2", "babel==2.18.0", + "mccabe==0.7.0", "idna==3.18", "alabaster==1.0.0", "tomlkit==0.15.0", + "requests==2.34.2", "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-napoleon==0.7", + "django==5.2.15", "pluggy==1.6.0", "path==16.16.0", "id==1.6.1", "urllib3==2.7.0", + "text-unidecode==1.3", "certifi==2026.5.20", "sphinx-book-theme==1.2.0", + "requests-toolbelt==1.0.0", "iniconfig==2.3.0", "restructuredtext-lint==2.0.2", + "colorama==0.4.6", "packaging==26.2"]' django_packages: django_42: count: 4 - list: '["edx-i18n-tools", "pytest-django", "pylint-django", "code-annotations"]' + list: '["pytest-django", "code-annotations", "pylint-django", "edx-i18n-tools"]' total: count: 4 - list: '["edx-i18n-tools", "pytest-django", "pylint-django", "code-annotations"]' + list: '["pytest-django", "code-annotations", "pylint-django", "edx-i18n-tools"]' upgraded: count: 2 - list: '["edx-i18n-tools", "code-annotations"]' + list: '["code-annotations", "edx-i18n-tools"]' docs: build_badge: false python_version: null @@ -89,19 +90,18 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 42 - build_details: '{"total_duration": "242 minutes 41 seconds", "checks": [{"name": - "update-pip-graph", "duration": "0 minutes 41 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, quality)", "duration": "0 minutes 39 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, docs)", "duration": "0 minutes 36 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django42)", "duration": "0 minutes 27 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django52)", "duration": "0 minutes 26 seconds"}, {"name": "Dependabot", - "duration": "0 minutes 24 seconds"}]}' + branch_count: 43 + build_details: '{"total_duration": "0 minutes 50 seconds", "checks": [{"name": + "update-pip-graph", "duration": "0 minutes 45 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, quality)", "duration": "0 minutes 43 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, django42)", "duration": "0 minutes 37 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, docs)", "duration": "0 minutes 32 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, django52)", "duration": "0 minutes 23 seconds"}]}' code_of_conduct: Other created_at: 2016-12-08 15:24:36 default_branch: master description: Provides the ability to render fragments of web pages - disk_usage_kb: 356 + disk_usage_kb: 304 fork_count: 9 has_issues: true has_wiki: false @@ -110,9 +110,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-29 07:20:08 + last_push: 2026-06-05 13:48:54 license: Apache License 2.0 - pulls_count: 1 + pulls_count: 2 github_actions: true language_bytes: css: 0 @@ -140,6 +140,7 @@ readme: - 'http://web-fragments.readthedocs.io/en/latest/?badge=latest: 404' - 'http://web-fragments.readthedocs.io/en/latest/: 404' - 'https://web-fragments.readthedocs.org: 404' + - 'https://open.edx.org/getting-help: 403' getting-help: true good_links: - https://img.shields.io/pypi/v/web-fragments.svg @@ -153,7 +154,6 @@ readme: - https://github.com/openedx/web-fragments/blob/master/LICENSE.txt - https://open-edx-proposals.readthedocs.io/en/latest/architectural-decisions/oep-0012-arch-fragment-views.html - https://github.com/openedx/.github/blob/master/CONTRIBUTING.md - - https://open.edx.org/getting-help irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/webhook-test-repo_repo_health.yaml b/individual_repo_data/openedx/webhook-test-repo_repo_health.yaml index 9aa13eb8..38fa640b 100644 --- a/individual_repo_data/openedx/webhook-test-repo_repo_health.yaml +++ b/individual_repo_data/openedx/webhook-test-repo_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/wg-build-test-release_repo_health.yaml b/individual_repo_data/openedx/wg-build-test-release_repo_health.yaml index bc3c9a12..99d80704 100644 --- a/individual_repo_data/openedx/wg-build-test-release_repo_health.yaml +++ b/individual_repo_data/openedx/wg-build-test-release_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -63,8 +63,18 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 7 - build_details: '{"total_duration": "0 minutes 24 seconds", "checks": [{"name": - "Dependabot", "duration": "0 minutes 24 seconds"}]}' + build_details: '{"total_duration": "11155 minutes 59 seconds", "checks": [{"name": + "Dependabot", "duration": "0 minutes 24 seconds"}, {"name": "move_and_notify", + "duration": "0 minutes 6 seconds"}, {"name": "move_and_notify", "duration": + "0 minutes 5 seconds"}, {"name": "move_and_notify", "duration": "0 minutes + 5 seconds"}, {"name": "add_label", "duration": "0 minutes 5 seconds"}, {"name": + "add_label", "duration": "0 minutes 2 seconds"}, {"name": "routeissue / add_and_notify", + "duration": "0 minutes 0 seconds"}, {"name": "routeissue / add_and_notify", + "duration": "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": + "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "-1 minutes 59 seconds"}, {"name": "routeissue / add_label", "duration": "-1 + minutes 52 seconds"}, {"name": "routeissue / add_label", "duration": "-1 minutes + 51 seconds"}]}' code_of_conduct: Other created_at: 2021-02-01 17:07:12 default_branch: main diff --git a/individual_repo_data/openedx/wg-data_repo_health.yaml b/individual_repo_data/openedx/wg-data_repo_health.yaml index d41da398..ae72a324 100644 --- a/individual_repo_data/openedx/wg-data_repo_health.yaml +++ b/individual_repo_data/openedx/wg-data_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/wg-devops_repo_health.yaml b/individual_repo_data/openedx/wg-devops_repo_health.yaml index 7a315e88..5463b34c 100644 --- a/individual_repo_data/openedx/wg-devops_repo_health.yaml +++ b/individual_repo_data/openedx/wg-devops_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/wg-frontend_repo_health.yaml b/individual_repo_data/openedx/wg-frontend_repo_health.yaml index 0c944cbb..1cb761a4 100644 --- a/individual_repo_data/openedx/wg-frontend_repo_health.yaml +++ b/individual_repo_data/openedx/wg-frontend_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: diff --git a/individual_repo_data/openedx/wg-governance_repo_health.yaml b/individual_repo_data/openedx/wg-governance_repo_health.yaml index 3114502f..6c99f17b 100644 --- a/individual_repo_data/openedx/wg-governance_repo_health.yaml +++ b/individual_repo_data/openedx/wg-governance_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: diff --git a/individual_repo_data/openedx/wg-maintenance_repo_health.yaml b/individual_repo_data/openedx/wg-maintenance_repo_health.yaml index 6ca2fa1f..8f252c24 100644 --- a/individual_repo_data/openedx/wg-maintenance_repo_health.yaml +++ b/individual_repo_data/openedx/wg-maintenance_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -63,28 +63,32 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 2 - build_details: '{"total_duration": "4345 minutes 3 seconds", "checks": [{"name": - "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "72 - minutes 1 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check - (3.12)", "duration": "68 minutes 31 seconds"}, {"name": "call-repo-health-job-workflow - / repo_health_check (3.12)", "duration": "63 minutes 56 seconds"}, {"name": + build_details: '{"total_duration": "5745 minutes 29 seconds", "checks": [{"name": + "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "61 + minutes 20 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check + (3.12)", "duration": "55 minutes 26 seconds"}, {"name": "call-repo-health-job-workflow + / repo_health_check (3.12)", "duration": "52 minutes 43 seconds"}, {"name": + "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "43 + minutes 24 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check + (3.12)", "duration": "0 minutes 52 seconds"}, {"name": "call-repo-health-job-workflow + / repo_health_check (3.12)", "duration": "0 minutes 48 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 - minutes 52 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check - (3.12)", "duration": "0 minutes 48 seconds"}, {"name": "call-repo-health-job-workflow - / repo_health_check (3.12)", "duration": "0 minutes 43 seconds"}, {"name": - "call-repo-health-job-workflow / repo_health_check (3.12)", "duration": "0 - minutes 37 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes - 4 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 4 seconds"}, - {"name": "set-default-inputs", "duration": "0 minutes 4 seconds"}, {"name": - "set-default-inputs", "duration": "0 minutes 3 seconds"}, {"name": "set-default-inputs", + minutes 45 seconds"}, {"name": "call-repo-health-job-workflow / repo_health_check + (3.12)", "duration": "0 minutes 43 seconds"}, {"name": "call-repo-health-job-workflow + / repo_health_check (3.12)", "duration": "0 minutes 40 seconds"}, {"name": + "set-default-inputs", "duration": "0 minutes 5 seconds"}, {"name": "set-default-inputs", + "duration": "0 minutes 4 seconds"}, {"name": "set-default-inputs", "duration": + "0 minutes 4 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes + 4 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 3 seconds"}, + {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}, {"name": + "set-default-inputs", "duration": "0 minutes 2 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}, {"name": "set-default-inputs", "duration": - "0 minutes 2 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes - 2 seconds"}, {"name": "set-default-inputs", "duration": "0 minutes 2 seconds"}]}' + "0 minutes 2 seconds"}]}' code_of_conduct: Other created_at: 2026-04-03 14:53:13 default_branch: main description: A repository for use by the Maintenance working group. - disk_usage_kb: 4680 + disk_usage_kb: 4799 fork_count: 1 has_issues: true has_wiki: false @@ -93,7 +97,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-31 06:42:45 + last_push: 2026-06-07 06:34:43 license: null pulls_count: 1 github_actions: false diff --git a/individual_repo_data/openedx/wg-marketing_repo_health.yaml b/individual_repo_data/openedx/wg-marketing_repo_health.yaml index 11f36602..4edde9c7 100644 --- a/individual_repo_data/openedx/wg-marketing_repo_health.yaml +++ b/individual_repo_data/openedx/wg-marketing_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/wg-mobile_repo_health.yaml b/individual_repo_data/openedx/wg-mobile_repo_health.yaml index 8cf02839..85f4a30d 100644 --- a/individual_repo_data/openedx/wg-mobile_repo_health.yaml +++ b/individual_repo_data/openedx/wg-mobile_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/wg-security_repo_health.yaml b/individual_repo_data/openedx/wg-security_repo_health.yaml index 3e1a4073..acdffe52 100644 --- a/individual_repo_data/openedx/wg-security_repo_health.yaml +++ b/individual_repo_data/openedx/wg-security_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: diff --git a/individual_repo_data/openedx/wg-translations_repo_health.yaml b/individual_repo_data/openedx/wg-translations_repo_health.yaml index c23b17dc..4c63e6ce 100644 --- a/individual_repo_data/openedx/wg-translations_repo_health.yaml +++ b/individual_repo_data/openedx/wg-translations_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/xapi-db-load_repo_health.yaml b/individual_repo_data/openedx/xapi-db-load_repo_health.yaml index dc6efdef..6298ce10 100644 --- a/individual_repo_data/openedx/xapi-db-load_repo_health.yaml +++ b/individual_repo_data/openedx/xapi-db-load_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -7,7 +7,7 @@ dependabot: pip: false dependabot_alerts: {} dependencies: - count: 117 + count: 123 github: count: 0 list: '[]' @@ -22,55 +22,57 @@ dependencies: list: '' pypi: count: 35 - list: '["charset-normalizer==3.4.7", "chdb==4.1.8", "requests==2.34.2", "certifi==2026.5.20", - "frozenlist==1.8.0", "clickhouse-connect[async]==1.0.1", "lz4==4.4.5", - "propcache==0.5.2", "attrs==26.1.0", "yarl==1.24.2", "chdb-core==26.3.0", - "pandas==3.0.3", "botocore==1.43.14", "aiohttp==3.13.5", "s3transfer==0.17.0", - "urllib3==2.7.0", "smart-open[s3]==7.6.1", "urwid==4.0.0", "typing-extensions==4.15.0", - "click==8.4.1", "six==1.17.0", "pyyaml==6.0.3", "aiohappyeyeballs==2.6.2", - "zstandard==0.25.0", "boto3==1.43.14", "pyarrow==24.0.0", "wcwidth==0.7.0", - "wrapt==2.2.1", "numpy==2.4.6", "python-dateutil==2.9.0.post0", "multidict==6.7.1", - "idna==3.16", "uvloop==0.22.1", "jmespath==1.1.0", "aiosignal==1.4.0"]' + list: '["pyarrow==24.0.0", "click==8.4.1", "uvloop==0.22.1", "attrs==26.1.0", + "six==1.17.0", "wcwidth==0.8.0", "propcache==0.5.2", "urwid==4.0.2", "clickhouse-connect[async]==1.1.1", + "numpy==2.4.6", "python-dateutil==2.9.0.post0", "charset-normalizer==3.4.7", + "idna==3.18", "aiosignal==1.4.0", "aiohappyeyeballs==2.6.2", "frozenlist==1.8.0", + "smart-open[s3]==7.6.1", "pandas==3.0.3", "multidict==6.7.1", "jmespath==1.1.0", + "botocore==1.43.24", "chdb-core==26.3.0", "s3transfer==0.18.0", "urllib3==2.7.0", + "requests==2.34.2", "yarl==1.24.2", "boto3==1.43.24", "aiohttp==3.14.1", + "certifi==2026.5.20", "pyyaml==6.0.3", "lz4==4.4.5", "chdb==4.1.8", "zstandard==0.25.0", + "typing-extensions==4.15.0", "wrapt==2.2.1"]' pypi_all: - count: 117 - list: '["keyring==25.7.0", "isort==8.0.1", "sphinxcontrib-applehelp==2.0.0", - "charset-normalizer==3.4.7", "chdb==4.1.8", "certifi==2026.5.20", "packaging==26.2", - "readme-renderer==44.0", "rich==15.0.0", "twine==6.2.0", "pydocstyle==6.3.0", - "pyproject-hooks==1.2.0", "chardet==7.4.3", "virtualenv==21.3.3", "setuptools==82.0.1", - "aiohttp==3.13.5", "s3transfer==0.17.0", "urllib3==2.7.0", "tomlkit==0.15.0", - "jaraco-functools==4.5.0", "cffi==2.0.0", "python-discovery==1.3.1", "docutils==0.22.4", - "cryptography==48.0.0", "zstandard==0.25.0", "sphinxcontrib-qthelp==2.0.0", - "alabaster==1.0.0", "wrapt==2.2.1", "pygments==2.20.0", "roman-numerals==4.1.0", - "pip-tools==7.5.3", "mccabe==0.7.0", "id==1.6.1", "edx-lint==6.1.0", "frozenlist==1.8.0", - "pylint-django==2.7.0", "tox==4.54.0", "pydata-sphinx-theme==0.16.1", - "imagesize==2.0.0", "tomli-w==1.2.0", "filelock==3.29.0", "jmespath==1.1.0", - "pytest-asyncio==1.3.0", "nh3==0.3.5", "smart-open[s3]==7.6.1", "distlib==0.4.0", - "code-annotations==3.0.0", "pyyaml==6.0.3", "more-itertools==11.1.0", - "markdown-it-py==4.2.0", "wheel==0.47.0", "pytest-cov==7.1.0", "sphinxcontrib-jsmath==1.0.1", - "python-dateutil==2.9.0.post0", "snowballstemmer==3.1.0", "uvloop==0.22.1", - "text-unidecode==1.3", "aiosignal==1.4.0", "sphinxcontrib-serializinghtml==2.0.0", - "platformdirs==4.9.6", "requests==2.34.2", "lz4==4.4.5", "propcache==0.5.2", - "pytest==9.0.3", "requests-toolbelt==1.0.0", "yarl==1.24.2", "click-log==0.4.0", - "pycodestyle==2.14.0", "typing-extensions==4.15.0", "click==8.4.1", "rfc3986==2.0.0", - "jinja2==3.1.6", "build==1.5.0", "jeepney==0.9.0", "pip==26.1.1", "iniconfig==2.3.0", - "pyarrow==24.0.0", "secretstorage==3.5.0", "colorama==0.4.6", "numpy==2.4.6", - "markupsafe==3.0.3", "python-slugify==8.0.4", "sphinx==9.1.0", "coverage[toml]==7.14.0", - "pluggy==1.6.0", "diff-cover==10.2.1", "dill==0.4.1", "clickhouse-connect[async]==1.0.1", - "soupsieve==2.8.4", "attrs==26.1.0", "mdurl==0.1.2", "sphinxcontrib-devhelp==2.0.0", - "jaraco-classes==3.4.0", "babel==2.18.0", "pylint-plugin-utils==0.9.0", - "chdb-core==26.3.0", "pandas==3.0.3", "cachetools==7.1.4", "botocore==1.43.14", - "accessible-pygments==0.0.5", "pylint-celery==0.3", "urwid==4.0.0", "stevedore==5.8.0", - "six==1.17.0", "pycparser==3.0", "astroid==4.0.4", "jaraco-context==6.1.2", - "pyproject-api==1.10.0", "aiohappyeyeballs==2.6.2", "sphinx-book-theme==1.2.0", - "boto3==1.43.14", "wcwidth==0.7.0", "sphinxcontrib-htmlhelp==2.1.0", "multidict==6.7.1", - "idna==3.16", "beautifulsoup4==4.14.3", "pylint==4.0.5"]' + count: 123 + list: '["packaging==26.2", "virtualenv==21.4.2", "python-slugify==8.0.4", + "isort==8.0.1", "coverage[toml]==7.14.1", "uvloop==0.22.1", "jaraco-functools==4.5.0", + "sphinx-book-theme==1.2.0", "urwid==4.0.2", "clickhouse-connect[async]==1.1.1", + "click-log==0.4.0", "python-dateutil==2.9.0.post0", "docutils==0.23", + "python-discovery==1.4.0", "wheel==0.47.0", "cachetools==7.1.4", "aiohappyeyeballs==2.6.2", + "filelock==3.29.1", "colorama==0.4.6", "diff-cover==10.3.0", "botocore==1.43.24", + "s3transfer==0.18.0", "pycparser==3.0", "keyring==25.7.0", "boto3==1.43.24", + "more-itertools==11.1.0", "jeepney==0.9.0", "accessible-pygments==0.0.5", + "pylint-django==2.7.0", "pycodestyle==2.14.0", "zstandard==0.25.0", "pydata-sphinx-theme==0.16.1", + "ast-serialize==0.5.0", "pylint-plugin-utils==0.9.0", "wrapt==2.2.1", + "yarl==1.24.2", "roman-numerals==4.1.0", "attrs==26.1.0", "imagesize==2.0.0", + "librt==0.11.0", "mypy-extensions==1.1.0", "markupsafe==3.0.3", "soupsieve==2.8.4", + "idna==3.18", "markdown-it-py==4.2.0", "sphinxcontrib-qthelp==2.0.0", + "sphinxcontrib-applehelp==2.0.0", "code-annotations==3.0.0", "distlib==0.4.1", + "frozenlist==1.8.0", "pip-tools==7.5.3", "requests-toolbelt==1.0.0", "text-unidecode==1.3", + "smart-open[s3]==7.6.1", "multidict==6.7.1", "readme-renderer==44.0", + "mdurl==0.1.2", "urllib3==2.7.0", "pyproject-api==1.10.1", "pytest-cov==7.1.0", + "babel==2.18.0", "dill==0.4.1", "chdb==4.1.8", "sphinx==9.1.0", "typing-extensions==4.15.0", + "jaraco-classes==3.4.0", "alabaster==1.0.0", "pathspec==1.1.1", "id==1.6.1", + "wcwidth==0.8.0", "sphinxcontrib-jsmath==1.0.1", "nh3==0.3.5", "propcache==0.5.2", + "cryptography==48.0.0", "platformdirs==4.10.0", "numpy==2.4.6", "pip==26.1.2", + "tomlkit==0.15.0", "charset-normalizer==3.4.7", "build==1.5.0", "aiosignal==1.4.0", + "pytest==9.0.3", "pandas==3.0.3", "requests==2.34.2", "setuptools==82.0.1", + "sphinxcontrib-htmlhelp==2.1.0", "certifi==2026.5.20", "astroid==4.0.4", + "lz4==4.4.5", "iniconfig==2.3.0", "twine==6.2.0", "pydocstyle==6.3.0", + "tomli-w==1.2.0", "rich==15.0.0", "pyarrow==24.0.0", "click==8.4.1", "pyproject-hooks==1.2.0", + "stevedore==5.8.0", "chardet==7.4.3", "six==1.17.0", "pylint-celery==0.3", + "pygments==2.20.0", "pylint==4.0.5", "beautifulsoup4==4.15.0", "tox==4.55.1", + "cffi==2.0.0", "pytest-asyncio==1.4.0", "jinja2==3.1.6", "docutils==0.22.4", + "jmespath==1.1.0", "pluggy==1.6.0", "chdb-core==26.3.0", "secretstorage==3.5.0", + "snowballstemmer==3.1.1", "edx-lint==6.1.0", "mccabe==0.7.0", "rfc3986==2.0.0", + "aiohttp==3.14.1", "pyyaml==6.0.3", "sphinxcontrib-devhelp==2.0.0", "jaraco-context==6.1.2", + "mypy==2.1.0", "sphinxcontrib-serializinghtml==2.0.0"]' django_packages: django_42: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' total: count: 2 - list: '["code-annotations", "pylint-django"]' + list: '["pylint-django", "code-annotations"]' upgraded: count: 1 list: '["code-annotations"]' @@ -100,20 +102,15 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 10 - build_details: '{"total_duration": "9645 minutes 31 seconds", "checks": [{"name": - "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 26 seconds"}, {"name": "tests (3.12)", "duration": "1 minutes 12 - seconds"}, {"name": "update-pip-graph", "duration": "0 minutes 32 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 29 seconds"}, {"name": "add_remove_labels - / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment - / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels - / add_label", "duration": "-1 minutes 51 seconds"}]}' + branch_count: 8 + build_details: '{"total_duration": "1 minutes 12 seconds", "checks": [{"name": + "tests (3.12)", "duration": "1 minutes 12 seconds"}, {"name": "update-pip-graph", + "duration": "0 minutes 33 seconds"}]}' code_of_conduct: Other created_at: 2022-11-21 15:37:46 default_branch: main description: '' - disk_usage_kb: 5910 + disk_usage_kb: 5926 fork_count: 6 has_issues: true has_wiki: false @@ -122,17 +119,17 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:39:05 + last_push: 2026-06-08 06:49:58 license: GNU AGPLv3 - pulls_count: 2 + pulls_count: 0 github_actions: true language_bytes: css: 0 dockerfile: 0 html: 0 javascript: 0 - makefile: 3008 - python: 188454 + makefile: 3027 + python: 212088 shell: 0 makefile: pip-installed: true @@ -160,6 +157,7 @@ readme: getting-help: true good_links: - https://github.com/openedx/xapi-db-load/issues + - https://vector.dev - https://pypi.org/project/smart-open/ - https://discuss.openedx.org - https://openedx.org/slack diff --git a/individual_repo_data/openedx/xblock-drag-and-drop-v2_repo_health.yaml b/individual_repo_data/openedx/xblock-drag-and-drop-v2_repo_health.yaml index 4a8abd1a..43822cec 100644 --- a/individual_repo_data/openedx/xblock-drag-and-drop-v2_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-drag-and-drop-v2_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,52 +22,52 @@ dependencies: list: '' pypi: count: 29 - list: '["asgiref==3.11.1", "xblock[django]==6.1.0", "fs-s3fs==1.1.1", "urllib3==2.7.0", - "jmespath==1.1.0", "sqlparse==0.5.5", "lazy==1.6", "botocore==1.43.14", - "simplejson==4.1.1", "markupsafe==3.0.3", "pytz==2026.2", "web-fragments==4.0.0", - "fs==2.4.16", "boto3==1.43.14", "pyyaml==6.0.3", "django==5.2.14", "s3transfer==0.17.0", - "webob==1.8.9", "appdirs==1.4.4", "bleach[css]==6.3.0", "lxml==6.1.1", - "webencodings==0.5.1", "six==1.17.0", "python-dateutil==2.9.0.post0", - "tinycss2==1.4.0", "django-statici18n==2.7.1", "mako==1.3.12", "openedx-django-pyfs==4.0.0", - "django-appconf==1.2.0"]' + list: '["lxml==6.1.1", "fs-s3fs==1.1.1", "jmespath==1.1.0", "sqlparse==0.5.5", + "asgiref==3.11.1", "mako==1.3.12", "pyyaml==6.0.3", "webob==1.8.9", "markupsafe==3.0.3", + "lazy==1.6", "appdirs==1.4.4", "bleach[css]==6.3.0", "pytz==2026.2", "urllib3==2.7.0", + "s3transfer==0.18.0", "tinycss2==1.4.0", "boto3==1.43.18", "botocore==1.43.18", + "django-statici18n==2.7.1", "xblock[django]==6.1.0", "django==5.2.14", + "django-appconf==1.2.0", "simplejson==4.1.1", "web-fragments==4.0.0", + "webencodings==0.5.1", "openedx-django-pyfs==4.0.0", "six==1.17.0", "python-dateutil==2.9.0.post0", + "fs==2.4.16"]' pypi_all: count: 91 - list: '["asgiref==3.11.1", "colorama==0.4.6", "fs-s3fs==1.1.1", "tomli-w==1.2.0", - "xblock-sdk==0.14.0", "rich==15.0.0", "jmespath==1.1.0", "simplejson==4.1.1", - "edx-lint==6.1.0", "markupsafe==3.0.3", "pytz==2026.2", "packaging==26.2", - "idna==3.16", "pyproject-hooks==1.2.0", "django==5.2.14", "mock==5.2.0", - "pylint-celery==0.3", "tomlkit==0.15.0", "iniconfig==2.3.0", "tinycss2==1.4.0", - "django-statici18n==2.7.1", "tox==4.54.0", "isort==8.0.1", "charset-normalizer==3.4.7", - "mccabe==0.7.0", "polib==1.2.0", "web-fragments==4.0.0", "pylint-django==2.7.0", - "binaryornot==0.6.0", "s3transfer==0.17.0", "astroid==4.0.4", "pypng==0.20220715.0", - "bleach[css]==6.3.0", "lxml==6.1.1", "pytest-cov==7.1.0", "six==1.17.0", - "cachetools==7.1.4", "python-discovery==1.3.1", "mdurl==0.1.2", "pycodestyle==2.14.0", - "dill==0.4.1", "mako==1.3.12", "ddt==1.7.2", "openedx-django-pyfs==4.0.0", - "xblock[django]==6.1.0", "click-log==0.4.0", "pytest-django==4.12.0", - "requests==2.34.2", "lazy==1.6", "setuptools==82.0.1", "fs==2.4.16", "pylint-plugin-utils==0.9.0", - "pip-tools==7.5.3", "python-slugify==8.0.4", "boto3==1.43.14", "pyyaml==6.0.3", - "tzdata==2026.2", "platformdirs==4.9.6", "webob==1.8.9", "lxml[html-clean]==6.1.1", - "text-unidecode==1.3", "python-dateutil==2.9.0.post0", "sqlparse==0.5.5", - "jinja2==3.1.6", "urllib3==2.7.0", "cookiecutter==2.7.1", "coverage[toml]==7.14.0", - "botocore==1.43.14", "arrow==1.4.0", "distlib==0.4.0", "markdown-it-py==4.2.0", - "pyproject-api==1.10.0", "virtualenv==21.3.3", "pluggy==1.6.0", "stevedore==5.8.0", - "click==8.4.1", "pytest==9.0.3", "edx-i18n-tools==2.0.0", "build==1.5.0", - "pylint==4.0.5", "pygments==2.20.0", "pip==26.1.1", "code-annotations==3.0.0", - "appdirs==1.4.4", "certifi==2026.5.20", "lxml-html-clean==0.4.5", "webencodings==0.5.1", - "path==16.16.0", "wheel==0.47.0", "django-appconf==1.2.0", "filelock==3.29.0"]' + list: '["lxml==6.1.1", "tox==4.55.0", "pyproject-hooks==1.2.0", "pycodestyle==2.14.0", + "pygments==2.20.0", "distlib==0.4.0", "ddt==1.7.2", "pip==26.1.2", "certifi==2026.5.20", + "appdirs==1.4.4", "bleach[css]==6.3.0", "tzdata==2026.2", "idna==3.17", + "dill==0.4.1", "rich==15.0.0", "django-statici18n==2.7.1", "xblock[django]==6.1.0", + "tomli-w==1.2.0", "text-unidecode==1.3", "pytest-cov==7.1.0", "simplejson==4.1.1", + "fs-s3fs==1.1.1", "edx-lint==6.1.0", "pyproject-api==1.10.1", "isort==8.0.1", + "mdurl==0.1.2", "pytest==9.0.3", "polib==1.2.0", "asgiref==3.11.1", "code-annotations==3.0.0", + "setuptools==82.0.1", "tomlkit==0.15.0", "binaryornot==0.6.0", "python-discovery==1.4.0", + "stevedore==5.8.0", "iniconfig==2.3.0", "python-slugify==8.0.4", "s3transfer==0.18.0", + "boto3==1.43.18", "botocore==1.43.18", "pypng==0.20220715.0", "django-appconf==1.2.0", + "pluggy==1.6.0", "pylint-plugin-utils==0.9.0", "python-dateutil==2.9.0.post0", + "fs==2.4.16", "jmespath==1.1.0", "pytest-django==4.12.0", "sqlparse==0.5.5", + "mako==1.3.12", "packaging==26.2", "wheel==0.47.0", "click==8.4.1", "jinja2==3.1.6", + "markupsafe==3.0.3", "charset-normalizer==3.4.7", "click-log==0.4.0", + "colorama==0.4.6", "urllib3==2.7.0", "pip-tools==7.5.3", "virtualenv==21.4.2", + "build==1.5.0", "requests==2.34.2", "coverage[toml]==7.14.1", "web-fragments==4.0.0", + "openedx-django-pyfs==4.0.0", "six==1.17.0", "webencodings==0.5.1", "pylint-celery==0.3", + "mccabe==0.7.0", "markdown-it-py==4.2.0", "xblock-sdk==0.14.0", "pyyaml==6.0.3", + "webob==1.8.9", "platformdirs==4.10.0", "cachetools==7.1.4", "edx-i18n-tools==2.0.0", + "mock==5.2.0", "lazy==1.6", "pytz==2026.2", "path==16.16.0", "lxml[html-clean]==6.1.1", + "tinycss2==1.4.0", "django==5.2.14", "pylint==4.0.5", "pylint-django==2.7.0", + "arrow==1.4.0", "astroid==4.0.4", "cookiecutter==2.7.1", "lxml-html-clean==0.4.5", + "filelock==3.29.0"]' django_packages: django_42: count: 7 - list: '["edx-i18n-tools", "pytest-django", "web-fragments", "code-annotations", - "xblock-sdk", "pylint-django", "django-appconf"]' + list: '["pytest-django", "django-appconf", "xblock-sdk", "edx-i18n-tools", + "web-fragments", "code-annotations", "pylint-django"]' total: count: 8 - list: '["edx-i18n-tools", "django-statici18n", "pytest-django", "web-fragments", - "code-annotations", "xblock-sdk", "pylint-django", "django-appconf"]' + list: '["pytest-django", "django-appconf", "xblock-sdk", "edx-i18n-tools", + "web-fragments", "code-annotations", "django-statici18n", "pylint-django"]' upgraded: count: 5 - list: '["edx-i18n-tools", "web-fragments", "code-annotations", "xblock-sdk", - "django-appconf"]' + list: '["django-appconf", "xblock-sdk", "edx-i18n-tools", "web-fragments", + "code-annotations"]' docs: build_badge: false python_version: null @@ -95,23 +95,22 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 29 - build_details: '{"total_duration": "9986 minutes 42 seconds", "checks": [{"name": + build_details: '{"total_duration": "6361 minutes 41 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": "1 minutes 2 seconds"}, {"name": "tests (ubuntu-latest, 3.12, translations)", - "duration": "0 minutes 50 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - quality)", "duration": "0 minutes 42 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django52)", "duration": "0 minutes 36 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django42)", "duration": "0 minutes 36 seconds"}, {"name": "update-pip-graph", - "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 - minutes 24 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}]}' + "duration": "0 minutes 49 seconds"}, {"name": "tests (ubuntu-latest, 3.12, + quality)", "duration": "0 minutes 43 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, django52)", "duration": "0 minutes 42 seconds"}, {"name": "tests (ubuntu-latest, + 3.12, django42)", "duration": "0 minutes 37 seconds"}, {"name": "Dependabot", + "duration": "0 minutes 34 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2014-06-30 15:30:30 default_branch: master description: '' - disk_usage_kb: 3538 + disk_usage_kb: 3548 fork_count: 72 has_issues: true has_wiki: false @@ -120,7 +119,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:44:25 + last_push: 2026-06-08 00:45:01 license: GNU AGPLv3 pulls_count: 1 github_actions: true diff --git a/individual_repo_data/openedx/xblock-free-text-response_repo_health.yaml b/individual_repo_data/openedx/xblock-free-text-response_repo_health.yaml index 260cdf5a..cc4bbf6c 100644 --- a/individual_repo_data/openedx/xblock-free-text-response_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-free-text-response_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,42 +22,41 @@ dependencies: list: '{"eslint": "8.12.0", "less": "4.1.2", "csslint": "1.0.5"}' pypi: count: 16 - list: '["pyyaml==6.0.2", "django==4.2.19", "fs==2.4.16", "markupsafe==3.0.2", - "python-dateutil==2.9.0.post0", "xblock==5.1.2", "appdirs==1.4.4", "pytz==2025.1", - "lxml==4.9.4", "six==1.17.0", "webob==1.8.9", "web-fragments==2.2.0", - "asgiref==3.8.1", "sqlparse==0.5.3", "simplejson==3.19.3", "mako==1.3.9"]' + list: '["python-dateutil==2.9.0.post0", "django==4.2.19", "appdirs==1.4.4", + "simplejson==3.19.3", "markupsafe==3.0.2", "pyyaml==6.0.2", "six==1.17.0", + "webob==1.8.9", "asgiref==3.8.1", "pytz==2025.1", "lxml==4.9.4", "mako==1.3.9", + "web-fragments==2.2.0", "fs==2.4.16", "xblock==5.1.2", "sqlparse==0.5.3"]' pypi_all: count: 78 - list: '["pyyaml==6.0.2", "markdown-it-py==3.0.0", "python-dateutil==2.9.0.post0", - "coveralls==4.0.1", "rich==13.9.4", "jinja2==3.1.5", "sqlparse==0.5.3", - "python-slugify==8.0.4", "s3transfer==0.11.2", "wheel==0.45.1", "jmespath==1.0.1", - "filelock==3.17.0", "binaryornot==0.4.4", "pbr==6.1.1", "pygments==2.19.1", - "requests==2.32.3", "six==1.17.0", "packaging==24.2", "docopt==0.6.2", - "pluggy==1.5.0", "setuptools==75.8.0", "virtualenv==20.29.2", "web-fragments==2.2.0", - "webob==1.8.9", "pylint==3.3.4", "certifi==2025.1.31", "coverage==7.6.11", - "build==1.2.2.post1", "edx-opaque-keys==2.11.0", "cookiecutter==2.6.0", - "mako==1.3.9", "stevedore==5.4.0", "text-unidecode==1.3", "lxml==4.9.4", - "lazy==1.6", "asgiref==3.8.1", "mock==5.1.0", "xblock-sdk==0.12.0", "botocore==1.36.17", - "pyproject-api==1.9.0", "simplejson==3.19.3", "typing-extensions==4.12.2", - "markupsafe==3.0.2", "appdirs==1.4.4", "fs-s3fs==1.1.1", "pypng==0.20220715.0", - "urllib3==2.2.3", "pytz==2025.1", "distlib==0.3.9", "types-python-dateutil==2.9.0.20241206", - "tomlkit==0.13.2", "django==4.2.19", "astroid==3.3.8", "xblock==5.1.2", - "isort==6.0.0", "ddt==1.7.2", "click==8.1.8", "tox==4.24.1", "django-pyfs==3.2.0", - "cachetools==5.5.1", "colorama==0.4.6", "pymongo==4.11.1", "charset-normalizer==3.4.1", - "pyproject-hooks==1.2.0", "coverage[toml]==7.6.11", "chardet==5.2.0", - "boto3==1.36.17", "pip-tools==7.4.1", "pycodestyle==2.12.1", "dnspython==2.7.0", - "mccabe==0.7.0", "arrow==1.3.0", "pip==24.2", "idna==3.10", "fs==2.4.16", - "platformdirs==4.3.6", "mdurl==0.1.2", "dill==0.3.9"]' + list: '["astroid==3.3.8", "django==4.2.19", "wheel==0.45.1", "asgiref==3.8.1", + "botocore==1.36.17", "pypng==0.20220715.0", "xblock==5.1.2", "tox==4.24.1", + "pytz==2025.1", "build==1.2.2.post1", "edx-opaque-keys==2.11.0", "mock==5.1.0", + "requests==2.32.3", "isort==6.0.0", "fs==2.4.16", "pylint==3.3.4", "coverage[toml]==7.6.11", + "tomlkit==0.13.2", "packaging==24.2", "mccabe==0.7.0", "typing-extensions==4.12.2", + "platformdirs==4.3.6", "pymongo==4.11.1", "python-dateutil==2.9.0.post0", + "fs-s3fs==1.1.1", "docopt==0.6.2", "click==8.1.8", "idna==3.10", "lxml==4.9.4", + "mdurl==0.1.2", "binaryornot==0.4.4", "python-slugify==8.0.4", "pbr==6.1.1", + "dnspython==2.7.0", "boto3==1.36.17", "s3transfer==0.11.2", "pycodestyle==2.12.1", + "pip==24.2", "virtualenv==20.29.2", "dill==0.3.9", "lazy==1.6", "cookiecutter==2.6.0", + "web-fragments==2.2.0", "sqlparse==0.5.3", "pyproject-hooks==1.2.0", "pyproject-api==1.9.0", + "django-pyfs==3.2.0", "pip-tools==7.4.1", "jmespath==1.0.1", "types-python-dateutil==2.9.0.20241206", + "appdirs==1.4.4", "webob==1.8.9", "stevedore==5.4.0", "pyyaml==6.0.2", + "six==1.17.0", "pluggy==1.5.0", "certifi==2025.1.31", "markupsafe==3.0.2", + "charset-normalizer==3.4.1", "filelock==3.17.0", "mako==1.3.9", "setuptools==75.8.0", + "coveralls==4.0.1", "chardet==5.2.0", "coverage==7.6.11", "text-unidecode==1.3", + "jinja2==3.1.5", "xblock-sdk==0.12.0", "markdown-it-py==3.0.0", "cachetools==5.5.1", + "ddt==1.7.2", "colorama==0.4.6", "simplejson==3.19.3", "rich==13.9.4", + "distlib==0.3.9", "pygments==2.19.1", "arrow==1.3.0", "urllib3==2.2.3"]' django_packages: django_42: count: 5 - list: '["web-fragments", "xblock", "django-pyfs", "edx-opaque-keys", "xblock-sdk"]' + list: '["xblock-sdk", "web-fragments", "xblock", "django-pyfs", "edx-opaque-keys"]' total: count: 5 - list: '["web-fragments", "xblock", "django-pyfs", "edx-opaque-keys", "xblock-sdk"]' + list: '["xblock-sdk", "web-fragments", "xblock", "django-pyfs", "edx-opaque-keys"]' upgraded: count: 4 - list: '["xblock", "edx-opaque-keys", "xblock-sdk", "web-fragments"]' + list: '["xblock-sdk", "xblock", "edx-opaque-keys", "web-fragments"]' docs: build_badge: false python_version: null @@ -112,7 +111,7 @@ github: default_branch: master description: '' disk_usage_kb: 428 - fork_count: 18 + fork_count: 20 has_issues: true has_wiki: false is_archived: false @@ -122,7 +121,7 @@ github: is_private: false last_push: 2026-05-15 04:57:19 license: GNU AGPLv3 - pulls_count: 4 + pulls_count: 5 github_actions: true language_bytes: css: 3078 @@ -146,13 +145,14 @@ org_name: openedx ownership: {} pinned_python_dependencies: 7 readme: - bad_links: [] + bad_links: + - 'https://github.com/openedx/xblock-free-text-response/actions?query=workflow%3A%22Python+CI%22: + 504' getting-help: false good_links: - https://coveralls.io/repos/github/Stanford-Online/xblock-free-text-response/badge.svg?branch=master - https://coveralls.io/github/Stanford-Online/xblock-free-text-response?branch=master - https://github.com/openedx/xblock-free-text-response/workflows/Python%20CI/badge.svg?branch=master - - https://github.com/openedx/xblock-free-text-response/actions?query=workflow%3A%22Python+CI%22 irc-missing: true mailing-list-missing: true security: false diff --git a/individual_repo_data/openedx/xblock-google-drive_repo_health.yaml b/individual_repo_data/openedx/xblock-google-drive_repo_health.yaml index b5930b74..241f071f 100644 --- a/individual_repo_data/openedx/xblock-google-drive_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-google-drive_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,66 +22,67 @@ dependencies: list: '' pypi: count: 81 - list: '["markupsafe==3.0.3", "fs-s3fs==1.1.1", "requests==2.34.2", "pylint==4.0.5", - "simplejson==4.1.1", "snowballstemmer==3.1.0", "pyproject-hooks==1.2.0", - "fs==2.4.16", "distlib==0.4.0", "backports-functools-lru-cache==2.0.0", - "mock==5.2.0", "botocore==1.43.14", "asgiref==3.11.1", "binaryornot==0.6.0", - "s3transfer==0.17.0", "iniconfig==2.3.0", "openedx-django-pyfs==4.0.0", - "cookiecutter==2.7.1", "charset-normalizer==3.4.7", "pip-tools==7.5.3", - "build==1.5.0", "click-log==0.4.0", "stevedore==5.8.0", "chardet==7.4.3", - "pylint-celery==0.3", "xblock[django]==6.1.0", "boto3==1.43.14", "webob==1.8.9", - "python-slugify==8.0.4", "pluggy==1.6.0", "text-unidecode==1.3", "lxml-html-clean==0.4.5", - "urllib3==2.7.0", "xblock-sdk==0.14.0", "coverage[toml]==7.14.0", "diff-cover==10.2.1", - "wheel==0.47.0", "sqlparse==0.5.5", "pygments==2.20.0", "pypng==0.20220715.0", - "ddt==1.7.2", "platformdirs==4.9.6", "jinja2==3.1.6", "idna==3.16", "pylint-plugin-utils==0.9.0", - "packaging==26.2", "caniusepython3==7.3.0", "pytest==9.0.3", "isort==8.0.1", - "mdurl==0.1.2", "astroid==4.0.4", "pylint-django==2.7.0", "pytest-cov==7.1.0", - "tzdata==2026.2", "tomlkit==0.15.0", "lxml[html-clean]==6.1.1", "pycodestyle==2.14.0", - "lazy==1.6", "django==5.2.14", "polib==1.2.0", "edx-lint==6.1.0", "pytest-django==4.12.0", - "rich==15.0.0", "code-annotations==3.0.0", "appdirs==1.4.4", "pydocstyle==6.3.0", - "markdown-it-py==4.2.0", "python-dateutil==2.9.0.post0", "click==8.4.1", - "pyyaml==6.0.3", "arrow==1.4.0", "edx-i18n-tools==2.0.0", "dill==0.4.1", - "path==16.16.0", "web-fragments==4.0.0", "certifi==2026.5.20", "six==1.17.0", - "mccabe==0.7.0", "jmespath==1.1.0", "pytz==2026.2", "mako==1.3.12"]' + list: '["stevedore==5.8.0", "python-slugify==8.0.4", "fs-s3fs==1.1.1", "pyproject-hooks==1.2.0", + "django==5.2.14", "asgiref==3.11.1", "markupsafe==3.0.3", "web-fragments==4.0.0", + "platformdirs==4.10.0", "code-annotations==3.0.0", "click-log==0.4.0", + "chardet==7.4.3", "xblock[django]==6.1.0", "mako==1.3.12", "simplejson==4.1.1", + "edx-lint==6.1.0", "iniconfig==2.3.0", "pylint-django==2.7.0", "diff-cover==10.3.0", + "botocore==1.43.18", "charset-normalizer==3.4.7", "lxml[html-clean]==6.1.1", + "packaging==26.2", "pip-tools==7.5.3", "caniusepython3==7.3.0", "click==8.4.1", + "wheel==0.47.0", "edx-i18n-tools==2.0.0", "ddt==1.7.2", "pylint-celery==0.3", + "backports-functools-lru-cache==2.0.0", "arrow==1.4.0", "lazy==1.6", "polib==1.2.0", + "pytz==2026.2", "certifi==2026.5.20", "python-dateutil==2.9.0.post0", + "jinja2==3.1.6", "dill==0.4.1", "pypng==0.20220715.0", "tomlkit==0.15.0", + "pytest-cov==7.1.0", "openedx-django-pyfs==4.0.0", "isort==8.0.1", "requests==2.34.2", + "boto3==1.43.18", "binaryornot==0.6.0", "cookiecutter==2.7.1", "urllib3==2.7.0", + "pluggy==1.6.0", "rich==15.0.0", "pylint-plugin-utils==0.9.0", "mdurl==0.1.2", + "pytest==9.0.3", "mccabe==0.7.0", "jmespath==1.1.0", "distlib==0.4.0", + "sqlparse==0.5.5", "xblock-sdk==0.14.0", "appdirs==1.4.4", "pytest-django==4.12.0", + "markdown-it-py==4.2.0", "idna==3.17", "mock==5.2.0", "webob==1.8.9", + "pycodestyle==2.14.0", "pygments==2.20.0", "pyyaml==6.0.3", "tzdata==2026.2", + "lxml-html-clean==0.4.5", "coverage[toml]==7.14.1", "snowballstemmer==3.1.0", + "astroid==4.0.4", "pydocstyle==6.3.0", "text-unidecode==1.3", "pylint==4.0.5", + "build==1.5.0", "s3transfer==0.18.0", "six==1.17.0", "path==16.16.0", + "fs==2.4.16"]' pypi_all: count: 95 - list: '["markupsafe==3.0.3", "setuptools==82.0.1", "fs-s3fs==1.1.1", "requests==2.34.2", - "pylint==4.0.5", "simplejson==4.1.1", "snowballstemmer==3.1.0", "pyproject-hooks==1.2.0", - "fs==2.4.16", "distlib==0.4.0", "backports-functools-lru-cache==2.0.0", - "mock==5.2.0", "botocore==1.43.14", "asgiref==3.11.1", "binaryornot==0.6.0", - "cachetools==7.1.4", "s3transfer==0.17.0", "iniconfig==2.3.0", "openedx-django-pyfs==4.0.0", - "python-discovery==1.3.1", "coveralls==4.1.0", "cookiecutter==2.7.1", - "charset-normalizer==3.4.7", "pip-tools==7.5.3", "build==1.5.0", "click-log==0.4.0", - "stevedore==5.8.0", "colorama==0.4.6", "chardet==7.4.3", "pip==26.1.1", - "pylint-celery==0.3", "xblock[django]==6.1.0", "boto3==1.43.14", "webob==1.8.9", - "python-slugify==8.0.4", "pluggy==1.6.0", "virtualenv==21.3.3", "pyproject-api==1.10.0", - "shellingham==1.5.4", "text-unidecode==1.3", "lxml-html-clean==0.4.5", - "urllib3==2.7.0", "xblock-sdk==0.14.0", "filelock==3.29.0", "coverage[toml]==7.14.0", - "diff-cover==10.2.1", "wheel==0.47.0", "annotated-doc==0.0.4", "sqlparse==0.5.5", - "pygments==2.20.0", "pypng==0.20220715.0", "ddt==1.7.2", "platformdirs==4.9.6", - "jinja2==3.1.6", "idna==3.16", "tomli-w==1.2.0", "pylint-plugin-utils==0.9.0", - "packaging==26.2", "caniusepython3==7.3.0", "pytest==9.0.3", "isort==8.0.1", - "mdurl==0.1.2", "astroid==4.0.4", "pylint-django==2.7.0", "pytest-cov==7.1.0", - "tzdata==2026.2", "tomlkit==0.15.0", "lxml[html-clean]==6.1.1", "tox==4.54.0", - "pycodestyle==2.14.0", "lazy==1.6", "django==5.2.14", "typer==0.25.1", - "polib==1.2.0", "edx-lint==6.1.0", "pytest-django==4.12.0", "rich==15.0.0", - "code-annotations==3.0.0", "appdirs==1.4.4", "pydocstyle==6.3.0", "markdown-it-py==4.2.0", - "python-dateutil==2.9.0.post0", "click==8.4.1", "pyyaml==6.0.3", "arrow==1.4.0", - "edx-i18n-tools==2.0.0", "dill==0.4.1", "path==16.16.0", "web-fragments==4.0.0", - "certifi==2026.5.20", "six==1.17.0", "mccabe==0.7.0", "jmespath==1.1.0", - "pytz==2026.2", "mako==1.3.12"]' + list: '["stevedore==5.8.0", "python-slugify==8.0.4", "fs-s3fs==1.1.1", "pyproject-hooks==1.2.0", + "django==5.2.14", "asgiref==3.11.1", "markupsafe==3.0.3", "web-fragments==4.0.0", + "platformdirs==4.10.0", "code-annotations==3.0.0", "click-log==0.4.0", + "pyproject-api==1.10.1", "chardet==7.4.3", "xblock[django]==6.1.0", "mako==1.3.12", + "simplejson==4.1.1", "edx-lint==6.1.0", "cachetools==7.1.4", "iniconfig==2.3.0", + "shellingham==1.5.4", "pylint-django==2.7.0", "diff-cover==10.3.0", "colorama==0.4.6", + "pip==26.1.2", "botocore==1.43.18", "charset-normalizer==3.4.7", "lxml[html-clean]==6.1.1", + "packaging==26.2", "pip-tools==7.5.3", "caniusepython3==7.3.0", "click==8.4.1", + "wheel==0.47.0", "edx-i18n-tools==2.0.0", "ddt==1.7.2", "pylint-celery==0.3", + "backports-functools-lru-cache==2.0.0", "arrow==1.4.0", "setuptools==82.0.1", + "lazy==1.6", "typer==0.26.4", "coveralls==4.1.0", "polib==1.2.0", "pytz==2026.2", + "certifi==2026.5.20", "python-discovery==1.4.0", "python-dateutil==2.9.0.post0", + "jinja2==3.1.6", "dill==0.4.1", "pypng==0.20220715.0", "filelock==3.29.0", + "tomlkit==0.15.0", "pytest-cov==7.1.0", "openedx-django-pyfs==4.0.0", + "isort==8.0.1", "tox==4.55.0", "requests==2.34.2", "boto3==1.43.18", "virtualenv==21.4.2", + "annotated-doc==0.0.4", "binaryornot==0.6.0", "cookiecutter==2.7.1", "urllib3==2.7.0", + "pluggy==1.6.0", "rich==15.0.0", "pylint-plugin-utils==0.9.0", "mdurl==0.1.2", + "pytest==9.0.3", "mccabe==0.7.0", "jmespath==1.1.0", "distlib==0.4.0", + "sqlparse==0.5.5", "xblock-sdk==0.14.0", "appdirs==1.4.4", "pytest-django==4.12.0", + "markdown-it-py==4.2.0", "idna==3.17", "mock==5.2.0", "webob==1.8.9", + "pycodestyle==2.14.0", "pygments==2.20.0", "pyyaml==6.0.3", "tzdata==2026.2", + "lxml-html-clean==0.4.5", "coverage[toml]==7.14.1", "snowballstemmer==3.1.0", + "astroid==4.0.4", "pydocstyle==6.3.0", "text-unidecode==1.3", "pylint==4.0.5", + "build==1.5.0", "s3transfer==0.18.0", "six==1.17.0", "path==16.16.0", + "fs==2.4.16", "tomli-w==1.2.0"]' django_packages: django_42: count: 6 - list: '["pytest-django", "pylint-django", "xblock-sdk", "code-annotations", - "edx-i18n-tools", "web-fragments"]' + list: '["code-annotations", "pytest-django", "xblock-sdk", "web-fragments", + "edx-i18n-tools", "pylint-django"]' total: count: 6 - list: '["pytest-django", "pylint-django", "xblock-sdk", "code-annotations", - "edx-i18n-tools", "web-fragments"]' + list: '["code-annotations", "pytest-django", "xblock-sdk", "web-fragments", + "edx-i18n-tools", "pylint-django"]' upgraded: count: 4 - list: '["web-fragments", "xblock-sdk", "code-annotations", "edx-i18n-tools"]' + list: '["xblock-sdk", "code-annotations", "web-fragments", "edx-i18n-tools"]' docs: build_badge: false python_version: null @@ -108,27 +109,25 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 3 - build_details: '{"total_duration": "9962 minutes 47 seconds", "checks": [{"name": - "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 1 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", - "duration": "0 minutes 58 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - quality)", "duration": "0 minutes 57 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, django42)", "duration": "0 minutes 47 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, package)", "duration": "0 minutes 41 seconds"}, {"name": "update-pip-graph", - "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": "0 - minutes 24 seconds"}, {"name": "add_remove_labels / remove_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", - "duration": "0 minutes 0 seconds"}]}' + branch_count: 4 + build_details: '{"total_duration": "9949 minutes 52 seconds", "checks": [{"name": + "Dependabot", "duration": "1 minutes 5 seconds"}, {"name": "call-upgrade-python-requirements-workflow + / upgrade_requirements", "duration": "1 minutes 3 seconds"}, {"name": "tests + (ubuntu-latest, 3.12, package)", "duration": "0 minutes 47 seconds"}, {"name": + "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 46 seconds"}, + {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 41 + seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 + minutes 38 seconds"}, {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, + {"name": "update-pip-graph", "duration": "0 minutes 32 seconds"}, {"name": + "Dependabot", "duration": "0 minutes 31 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2014-11-10 13:34:07 default_branch: master description: '' - disk_usage_kb: 326 + disk_usage_kb: 287 fork_count: 41 has_issues: true has_wiki: false @@ -137,9 +136,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:20:26 + last_push: 2026-06-08 05:14:17 license: GNU AGPLv3 - pulls_count: 1 + pulls_count: 2 github_actions: true language_bytes: css: 2558 diff --git a/individual_repo_data/openedx/xblock-image-explorer_repo_health.yaml b/individual_repo_data/openedx/xblock-image-explorer_repo_health.yaml index 4f0bf3c7..e807d9aa 100644 --- a/individual_repo_data/openedx/xblock-image-explorer_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-image-explorer_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,44 +22,43 @@ dependencies: list: '' pypi: count: 24 - list: '["jmespath==1.1.0", "pyyaml==6.0.3", "urllib3==2.7.0", "xblock[django]==6.1.0", - "lazy==1.6", "openedx-django-pyfs==4.0.0", "pytz==2026.2", "python-dateutil==2.9.0.post0", - "webob==1.8.9", "lxml==6.1.1", "mako==1.3.12", "boto3==1.43.14", "six==1.17.0", - "fs==2.4.16", "markupsafe==3.0.3", "asgiref==3.11.1", "sqlparse==0.5.5", - "django==5.2.14", "simplejson==4.1.1", "botocore==1.43.14", "s3transfer==0.17.0", - "web-fragments==4.0.0", "appdirs==1.4.4", "fs-s3fs==1.1.1"]' + list: '["python-dateutil==2.9.0.post0", "openedx-django-pyfs==4.0.0", "six==1.17.0", + "webob==1.8.9", "mako==1.3.12", "pytz==2026.2", "s3transfer==0.18.0", + "lxml==6.1.1", "pyyaml==6.0.3", "urllib3==2.7.0", "lazy==1.6", "sqlparse==0.5.5", + "appdirs==1.4.4", "web-fragments==4.0.0", "fs-s3fs==1.1.1", "simplejson==4.1.1", + "jmespath==1.1.0", "botocore==1.43.18", "xblock[django]==6.1.0", "markupsafe==3.0.3", + "asgiref==3.11.1", "boto3==1.43.18", "django==5.2.14", "fs==2.4.16"]' pypi_all: count: 80 - list: '["jmespath==1.1.0", "pyyaml==6.0.3", "xblock[django]==6.1.0", "setuptools==82.0.1", - "pyproject-api==1.10.0", "edx-lint==6.1.0", "arrow==1.4.0", "mako==1.3.12", - "fs==2.4.16", "mock==5.2.0", "pycodestyle==2.14.0", "pip==26.1.1", "asgiref==3.11.1", - "wheel==0.47.0", "django==5.2.14", "code-annotations==3.0.0", "s3transfer==0.17.0", - "fs-s3fs==1.1.1", "pytest-django==4.12.0", "urllib3==2.7.0", "lazy==1.6", - "openedx-django-pyfs==4.0.0", "pluggy==1.6.0", "python-discovery==1.3.1", - "stevedore==5.8.0", "lxml==6.1.1", "virtualenv==21.3.3", "boto3==1.43.14", - "pyproject-hooks==1.2.0", "rich==15.0.0", "tox==4.54.0", "pylint-plugin-utils==0.9.0", - "pytest-cov==7.1.0", "pytest==9.0.3", "pip-tools==7.5.3", "distlib==0.4.0", - "iniconfig==2.3.0", "sqlparse==0.5.5", "tomlkit==0.15.0", "charset-normalizer==3.4.7", - "web-fragments==4.0.0", "pypng==0.20220715.0", "certifi==2026.5.20", "tzdata==2026.2", - "pytz==2026.2", "python-dateutil==2.9.0.post0", "webob==1.8.9", "colorama==0.4.6", - "cookiecutter==2.7.1", "requests==2.34.2", "six==1.17.0", "packaging==26.2", - "python-slugify==8.0.4", "astroid==4.0.4", "platformdirs==4.9.6", "dill==0.4.1", - "pylint-celery==0.3", "tomli-w==1.2.0", "click==8.4.1", "pygments==2.20.0", - "markdown-it-py==4.2.0", "cachetools==7.1.4", "coverage[toml]==7.14.0", - "markupsafe==3.0.3", "filelock==3.29.0", "build==1.5.0", "pylint==4.0.5", - "mccabe==0.7.0", "pylint-django==2.7.0", "click-log==0.4.0", "binaryornot==0.6.0", - "jinja2==3.1.6", "botocore==1.43.14", "simplejson==4.1.1", "mdurl==0.1.2", - "isort==8.0.1", "idna==3.16", "xblock-sdk==0.14.0", "text-unidecode==1.3", - "appdirs==1.4.4"]' + list: '["pytest==9.0.3", "binaryornot==0.6.0", "certifi==2026.5.20", "coverage[toml]==7.14.1", + "pylint==4.0.5", "tomlkit==0.15.0", "colorama==0.4.6", "openedx-django-pyfs==4.0.0", + "setuptools==82.0.1", "webob==1.8.9", "pytz==2026.2", "dill==0.4.1", "idna==3.17", + "pylint-celery==0.3", "cookiecutter==2.7.1", "cachetools==7.1.4", "web-fragments==4.0.0", + "jmespath==1.1.0", "pypng==0.20220715.0", "markupsafe==3.0.3", "astroid==4.0.4", + "mdurl==0.1.2", "mock==5.2.0", "pygments==2.20.0", "boto3==1.43.18", "requests==2.34.2", + "distlib==0.4.0", "wheel==0.47.0", "python-discovery==1.4.0", "build==1.5.0", + "mccabe==0.7.0", "six==1.17.0", "s3transfer==0.18.0", "pip==26.1.2", "lxml==6.1.1", + "platformdirs==4.10.0", "pyyaml==6.0.3", "urllib3==2.7.0", "tox==4.55.0", + "stevedore==5.8.0", "appdirs==1.4.4", "markdown-it-py==4.2.0", "pylint-django==2.7.0", + "simplejson==4.1.1", "asgiref==3.11.1", "virtualenv==21.4.2", "filelock==3.29.0", + "pip-tools==7.5.3", "rich==15.0.0", "django==5.2.14", "click-log==0.4.0", + "edx-lint==6.1.0", "pytest-django==4.12.0", "python-dateutil==2.9.0.post0", + "iniconfig==2.3.0", "python-slugify==8.0.4", "pylint-plugin-utils==0.9.0", + "mako==1.3.12", "xblock-sdk==0.14.0", "pyproject-hooks==1.2.0", "click==8.4.1", + "sqlparse==0.5.5", "botocore==1.43.18", "xblock[django]==6.1.0", "pycodestyle==2.14.0", + "text-unidecode==1.3", "arrow==1.4.0", "charset-normalizer==3.4.7", "jinja2==3.1.6", + "fs==2.4.16", "isort==8.0.1", "pluggy==1.6.0", "packaging==26.2", "pytest-cov==7.1.0", + "code-annotations==3.0.0", "lazy==1.6", "tzdata==2026.2", "tomli-w==1.2.0", + "fs-s3fs==1.1.1", "pyproject-api==1.10.1"]' django_packages: django_42: count: 5 - list: '["web-fragments", "xblock-sdk", "code-annotations", "pytest-django", - "pylint-django"]' + list: '["xblock-sdk", "code-annotations", "pylint-django", "pytest-django", + "web-fragments"]' total: count: 5 - list: '["web-fragments", "xblock-sdk", "code-annotations", "pytest-django", - "pylint-django"]' + list: '["xblock-sdk", "code-annotations", "pylint-django", "pytest-django", + "web-fragments"]' upgraded: count: 3 list: '["xblock-sdk", "code-annotations", "web-fragments"]' @@ -90,23 +89,24 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 12 - build_details: '{"total_duration": "10013 minutes 9 seconds", "checks": [{"name": + build_details: '{"total_duration": "9705 minutes 42 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 0 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", - "duration": "0 minutes 35 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - package)", "duration": "0 minutes 35 seconds"}, {"name": "tests (ubuntu-latest, - 3.12, quality)", "duration": "0 minutes 35 seconds"}, {"name": "update-pip-graph", - "duration": "0 minutes 35 seconds"}, {"name": "tests (ubuntu-latest, 3.12, - django52)", "duration": "0 minutes 33 seconds"}, {"name": "Dependabot", "duration": - "0 minutes 24 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 57 seconds"}, {"name": "Dependabot", "duration": "0 minutes 47 + seconds"}, {"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 + minutes 44 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": + "0 minutes 37 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes + 34 seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": + "0 minutes 33 seconds"}, {"name": "tests (ubuntu-latest, 3.12, package)", + "duration": "0 minutes 31 seconds"}, {"name": "Dependabot", "duration": "0 + minutes 20 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}]}' + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2014-03-09 14:40:29 default_branch: master description: '' - disk_usage_kb: 1513 + disk_usage_kb: 1516 fork_count: 42 has_issues: true has_wiki: false @@ -115,7 +115,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 01:10:52 + last_push: 2026-06-08 01:10:03 license: GNU AGPLv3 pulls_count: 2 github_actions: true diff --git a/individual_repo_data/openedx/xblock-in-video-quiz_repo_health.yaml b/individual_repo_data/openedx/xblock-in-video-quiz_repo_health.yaml index 8cab318d..a09a1dcf 100644 --- a/individual_repo_data/openedx/xblock-in-video-quiz_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-in-video-quiz_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,40 +22,42 @@ dependencies: list: '' pypi: count: 16 - list: '["six==1.17.0", "python-dateutil==2.9.0.post0", "simplejson==4.1.1", - "mako==1.3.12", "fs==2.4.16", "pyyaml==6.0.3", "asgiref==3.11.1", "appdirs==1.4.4", - "webob==1.8.9", "django==5.2.14", "web-fragments==4.0.0", "lxml==6.1.1", - "pytz==2026.2", "xblock==6.1.0", "markupsafe==3.0.3", "sqlparse==0.5.5"]' + list: '["python-dateutil==2.9.0.post0", "web-fragments==4.0.0", "markupsafe==3.0.3", + "sqlparse==0.5.5", "asgiref==3.11.1", "django==5.2.14", "pytz==2026.2", + "pyyaml==6.0.3", "six==1.17.0", "xblock==6.1.0", "simplejson==4.1.1", + "webob==1.8.9", "lxml==6.1.1", "appdirs==1.4.4", "mako==1.3.12", "fs==2.4.16"]' pypi_all: count: 71 - list: '["certifi==2026.5.20", "simplejson==4.1.1", "python-slugify==8.0.4", - "click-log==0.4.0", "jinja2==3.1.6", "pycodestyle==2.14.0", "pylint-django==2.7.0", - "platformdirs==4.9.6", "setuptools==82.0.1", "packaging==26.2", "cachetools==7.1.4", - "isort==8.0.1", "pytest-django==4.12.0", "pyproject-hooks==1.2.0", "mccabe==0.7.0", - "pluggy==1.6.0", "web-fragments==4.0.0", "markdown-it-py==4.2.0", "urllib3==2.7.0", - "idna==3.16", "typer==0.25.1", "pytz==2026.2", "edx-lint==6.1.0", "pylint-celery==0.3", - "distlib==0.4.0", "six==1.17.0", "tomli-w==1.2.0", "shellingham==1.5.4", - "rich==15.0.0", "python-discovery==1.3.1", "fs==2.4.16", "asgiref==3.11.1", - "pylint==4.0.5", "lxml==6.1.1", "pip==26.1.1", "xblock==6.1.0", "markupsafe==3.0.3", - "text-unidecode==1.3", "wheel==0.47.0", "sqlparse==0.5.5", "coverage[toml]==7.14.0", - "mako==1.3.12", "pip-tools==7.5.3", "virtualenv==21.3.3", "appdirs==1.4.4", - "stevedore==5.8.0", "mock==5.2.0", "iniconfig==2.3.0", "build==1.5.0", - "requests==2.34.2", "charset-normalizer==3.4.7", "python-dateutil==2.9.0.post0", - "astroid==4.0.4", "dill==0.4.1", "coveralls==4.1.0", "tomlkit==0.15.0", - "mdurl==0.1.2", "filelock==3.29.0", "pyyaml==6.0.3", "click==8.4.1", "annotated-doc==0.0.4", - "pyproject-api==1.10.0", "tox==4.54.0", "webob==1.8.9", "pygments==2.20.0", - "django==5.2.14", "pylint-plugin-utils==0.9.0", "colorama==0.4.6", "coverage==7.14.0", - "pytest==9.0.3", "code-annotations==3.0.0"]' + list: '["python-slugify==8.0.4", "certifi==2026.5.20", "coverage[toml]==7.14.1", + "distlib==0.4.0", "rich==15.0.0", "sqlparse==0.5.5", "tomli-w==1.2.0", + "python-discovery==1.4.0", "pytz==2026.2", "pylint-celery==0.3", "packaging==26.2", + "idna==3.17", "charset-normalizer==3.4.7", "pyyaml==6.0.3", "six==1.17.0", + "lxml==6.1.1", "pygments==2.20.0", "pip-tools==7.5.3", "pycodestyle==2.14.0", + "stevedore==5.8.0", "iniconfig==2.3.0", "mccabe==0.7.0", "fs==2.4.16", + "python-dateutil==2.9.0.post0", "webob==1.8.9", "isort==8.0.1", "shellingham==1.5.4", + "urllib3==2.7.0", "asgiref==3.11.1", "pylint-django==2.7.0", "dill==0.4.1", + "pylint==4.0.5", "wheel==0.47.0", "jinja2==3.1.6", "coveralls==4.1.0", + "click==8.4.1", "text-unidecode==1.3", "pytest-django==4.12.0", "virtualenv==21.4.1", + "pylint-plugin-utils==0.9.0", "tomlkit==0.15.0", "filelock==3.29.0", "platformdirs==4.10.0", + "coverage==7.14.1", "build==1.5.0", "typer==0.26.4", "django==5.2.14", + "tox==4.55.0", "edx-lint==6.1.0", "xblock==6.1.0", "setuptools==82.0.1", + "mako==1.3.12", "mdurl==0.1.2", "appdirs==1.4.4", "annotated-doc==0.0.4", + "mock==5.2.0", "web-fragments==4.0.0", "requests==2.34.2", "markdown-it-py==4.2.0", + "pluggy==1.6.0", "pyproject-api==1.10.1", "pyproject-hooks==1.2.0", "pytest==9.0.3", + "markupsafe==3.0.3", "astroid==4.0.4", "code-annotations==3.0.0", "cachetools==7.1.4", + "simplejson==4.1.1", "colorama==0.4.6", "pip==26.1.1", "click-log==0.4.0"]' django_packages: django_42: count: 5 - list: '["code-annotations", "xblock", "pytest-django", "web-fragments", "pylint-django"]' + list: '["pytest-django", "pylint-django", "code-annotations", "web-fragments", + "xblock"]' total: count: 5 - list: '["code-annotations", "xblock", "pytest-django", "web-fragments", "pylint-django"]' + list: '["pytest-django", "pylint-django", "code-annotations", "web-fragments", + "xblock"]' upgraded: count: 3 - list: '["web-fragments", "code-annotations", "xblock"]' + list: '["xblock", "code-annotations", "web-fragments"]' docs: build_badge: false python_version: null @@ -83,21 +85,18 @@ github: allows_rebase_merge: false allows_squash_merge: false branch_count: 12 - build_details: '{"total_duration": "8222 minutes 19 seconds", "checks": [{"name": + build_details: '{"total_duration": "8147 minutes 7 seconds", "checks": [{"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 2 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes - 40 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "1 minutes 9 seconds"}, {"name": "update-pip-graph", "duration": "0 minutes + 35 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "0 minutes 0 seconds"}]}' + "0 minutes 0 seconds"}]}' code_of_conduct: Other created_at: 2020-01-27 18:10:28 default_branch: master description: '' - disk_usage_kb: 464 + disk_usage_kb: 469 fork_count: 24 has_issues: true has_wiki: false @@ -106,7 +105,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-31 01:04:06 + last_push: 2026-06-07 01:06:27 license: GNU AGPLv3 pulls_count: 2 github_actions: false @@ -133,7 +132,7 @@ ownership: {} pinned_python_dependencies: 2 readme: bad_links: - - 'https://github.com/openedx/xblock-in-video-quiz@LATEST_RELEASE: 404' + - 'https://github.com/openedx/xblock-in-video-quiz@LATEST_RELEASE: 504' getting-help: false good_links: - https://github.com/Stanford-Online/xblock-in-video-quiz diff --git a/individual_repo_data/openedx/xblock-lti-consumer_repo_health.yaml b/individual_repo_data/openedx/xblock-lti-consumer_repo_health.yaml index a8b2e881..60c4b45f 100644 --- a/individual_repo_data/openedx/xblock-lti-consumer_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-lti-consumer_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,71 +22,71 @@ dependencies: list: '' pypi: count: 46 - list: '["dnspython==2.8.0", "fs==2.4.16", "markupsafe==3.0.3", "pymongo==4.16.0", - "django-appconf==1.2.0", "webob==1.8.9", "click==8.3.2", "edx-django-utils==8.0.1", - "lazy==1.6", "pynacl==1.6.2", "django-statici18n==2.7.1", "django-filter==25.2", - "lxml==6.1.0", "openedx-events==11.1.1", "six==1.17.0", "pycryptodomex==3.23.0", - "pyyaml==6.0.3", "django-waffle==5.0.0", "edx-opaque-keys[django]==4.0.0", - "pyjwt==2.12.1", "djangorestframework==3.17.1", "django-crum==0.7.9", - "python-dateutil==2.9.0.post0", "bleach==6.3.0", "simplejson==4.0.1", - "jsonfield==3.2.0", "attrs==26.1.0", "stevedore==5.7.0", "edx-ccx-keys==2.0.2", - "xblock==6.0.0", "appdirs==1.4.4", "mako==1.3.11", "fastavro==1.12.1", - "django==5.2.13", "psutil==7.2.2", "pycparser==3.0", "webencodings==0.5.1", - "pytz==2026.1.post1", "openedx-filters==3.1.0", "sqlparse==0.5.5", "typing-extensions==4.15.0", - "cffi==2.0.0", "django-config-models==3.0.0", "asgiref==3.11.1", "web-fragments==4.0.0", - "oauthlib==3.3.1"]' + list: '["django-appconf==1.2.0", "openedx-filters==3.1.0", "six==1.17.0", + "web-fragments==4.0.0", "webencodings==0.5.1", "dnspython==2.8.0", "cffi==2.0.0", + "simplejson==4.0.1", "django-filter==25.2", "django-statici18n==2.7.1", + "fastavro==1.12.1", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", "webob==1.8.9", + "markupsafe==3.0.3", "lxml==6.1.0", "django-waffle==5.0.0", "attrs==26.1.0", + "asgiref==3.11.1", "mako==1.3.11", "pyyaml==6.0.3", "djangorestframework==3.17.1", + "django-config-models==3.0.0", "edx-ccx-keys==2.0.2", "click==8.3.2", + "pyjwt==2.12.1", "typing-extensions==4.15.0", "pytz==2026.1.post1", "edx-django-utils==8.0.1", + "oauthlib==3.3.1", "fs==2.4.16", "edx-opaque-keys[django]==4.0.0", "xblock==6.0.0", + "psutil==7.2.2", "pycryptodomex==3.23.0", "pymongo==4.16.0", "sqlparse==0.5.5", + "stevedore==5.7.0", "appdirs==1.4.4", "pycparser==3.0", "lazy==1.6", "jsonfield==3.2.0", + "bleach==6.3.0", "openedx-events==11.1.1", "django-crum==0.7.9", "django==5.2.13"]' pypi_all: count: 128 - list: '["webob==1.8.9", "mccabe==0.7.0", "mock==5.2.0", "six==1.17.0", "virtualenv==21.2.4", - "coveralls==4.1.0", "django-waffle==5.0.0", "binaryornot==0.6.0", "pylint-django==2.7.0", - "docutils==0.22.4", "distlib==0.4.0", "boto3==1.42.91", "wheel==0.46.3", - "certifi==2026.2.25", "django==5.2.13", "readme-renderer==44.0", "pycparser==3.0", - "pypng==0.20220715.0", "pygments==2.20.0", "botocore==1.42.91", "pycodestyle==2.14.0", - "cachetools==7.0.5", "markupsafe==3.0.3", "pymongo==4.16.0", "asgiref==3.11.1", - "jaraco-context==6.1.2", "keyring==25.7.0", "fs==2.4.16", "pip==26.0.1", - "pyproject-api==1.10.0", "lazy==1.6", "pynacl==1.6.2", "mdurl==0.1.2", - "markdown-it-py==4.0.0", "django-statici18n==2.7.1", "jaraco-functools==4.4.0", - "path==16.16.0", "dill==0.4.1", "lxml==6.1.0", "astroid==4.0.4", "pyyaml==6.0.3", - "edx-opaque-keys[django]==4.0.0", "cookiecutter==2.7.1", "simplejson==4.0.1", - "jsonfield==3.2.0", "python-discovery==1.2.2", "edx-ccx-keys==2.0.2", - "pyproject-hooks==1.2.0", "twine==6.2.0", "fastavro==1.12.1", "coverage[toml]==7.13.5", - "ddt==1.7.2", "platformdirs==4.9.6", "typing-extensions==4.15.0", "nh3==0.3.4", - "django-config-models==3.0.0", "urllib3==1.26.20", "dnspython==2.8.0", - "typer==0.24.1", "django==4.2.24", "django-appconf==1.2.0", "jeepney==0.9.0", - "click==8.3.2", "cryptography==46.0.7", "charset-normalizer==3.4.7", "secretstorage==3.5.0", - "pycryptodomex==3.23.0", "filelock==3.29.0", "pylint==4.0.5", "more-itertools==11.0.2", - "python-dateutil==2.9.0.post0", "polib==1.2.0", "setuptools==82.0.1", - "tomli-w==1.2.0", "text-unidecode==1.3", "tox==4.53.0", "xblock-sdk==0.14.0", - "pylint-plugin-utils==0.9.0", "idna==3.11", "requests==2.33.1", "webencodings==0.5.1", - "code-annotations==3.0.0", "arrow==1.4.0", "pytz==2026.1.post1", "packaging==26.1", - "rfc3986==2.0.0", "cffi==2.0.0", "rich==15.0.0", "edx-lint==6.0.0", "click-log==0.4.0", - "lxml-html-clean==0.4.4", "edx-django-utils==8.0.1", "django-filter==25.2", - "openedx-events==11.1.1", "id==1.5.0", "build==1.4.3", "s3transfer==0.16.0", - "colorama==0.4.6", "pyjwt==2.12.1", "djangorestframework==3.17.1", "isort==8.0.1", - "django-crum==0.7.9", "bleach==6.3.0", "jaraco-classes==3.4.0", "attrs==26.1.0", - "stevedore==5.7.0", "edx-i18n-tools==2.0.0", "xblock==6.0.0", "requests-toolbelt==1.0.0", - "appdirs==1.4.4", "jinja2==3.1.6", "jmespath==1.1.0", "mako==1.3.11", - "annotated-doc==0.0.4", "shellingham==1.5.4", "fs-s3fs==1.1.1", "python-slugify==8.0.4", - "pip-tools==7.5.3", "psutil==7.2.2", "pylint-celery==0.3", "pluggy==1.6.0", - "sqlparse==0.5.5", "openedx-filters==3.1.0", "tomlkit==0.14.0", "lxml[html-clean]==6.1.0", - "tzdata==2026.1", "web-fragments==4.0.0", "oauthlib==3.3.1"]' + list: '["django-appconf==1.2.0", "path==16.16.0", "mock==5.2.0", "text-unidecode==1.3", + "isort==8.0.1", "dnspython==2.8.0", "keyring==25.7.0", "pygments==2.20.0", + "setuptools==82.0.1", "django-statici18n==2.7.1", "platformdirs==4.9.6", + "djangorestframework==3.17.1", "idna==3.11", "binaryornot==0.6.0", "pycodestyle==2.14.0", + "jmespath==1.1.0", "click==8.3.2", "secretstorage==3.5.0", "cachetools==7.0.5", + "pyjwt==2.12.1", "typing-extensions==4.15.0", "edx-django-utils==8.0.1", + "pyproject-hooks==1.2.0", "oauthlib==3.3.1", "fs==2.4.16", "pycryptodomex==3.23.0", + "pylint-django==2.7.0", "distlib==0.4.0", "lxml[html-clean]==6.1.0", "pip-tools==7.5.3", + "pymongo==4.16.0", "certifi==2026.2.25", "nh3==0.3.4", "pycparser==3.0", + "lazy==1.6", "id==1.5.0", "web-fragments==4.0.0", "charset-normalizer==3.4.7", + "pypng==0.20220715.0", "cryptography==46.0.7", "requests-toolbelt==1.0.0", + "django-waffle==5.0.0", "boto3==1.42.91", "tomlkit==0.14.0", "rfc3986==2.0.0", + "filelock==3.29.0", "ddt==1.7.2", "coveralls==4.1.0", "jaraco-classes==3.4.0", + "cookiecutter==2.7.1", "jaraco-functools==4.4.0", "astroid==4.0.4", "requests==2.33.1", + "build==1.4.3", "code-annotations==3.0.0", "markdown-it-py==4.0.0", "dill==0.4.1", + "openedx-events==11.1.1", "more-itertools==11.0.2", "jaraco-context==6.1.2", + "webob==1.8.9", "pluggy==1.6.0", "docutils==0.22.4", "six==1.17.0", "coverage[toml]==7.13.5", + "webencodings==0.5.1", "tox==4.53.0", "cffi==2.0.0", "fs-s3fs==1.1.1", + "django-filter==25.2", "pynacl==1.6.2", "python-dateutil==2.9.0.post0", + "markupsafe==3.0.3", "lxml==6.1.0", "pylint==4.0.5", "attrs==26.1.0", + "edx-i18n-tools==2.0.0", "jeepney==0.9.0", "botocore==1.42.91", "mako==1.3.11", + "packaging==26.1", "typer==0.24.1", "annotated-doc==0.0.4", "edx-lint==6.0.0", + "shellingham==1.5.4", "python-discovery==1.2.2", "wheel==0.46.3", "polib==1.2.0", + "readme-renderer==44.0", "pylint-plugin-utils==0.9.0", "psutil==7.2.2", + "xblock-sdk==0.14.0", "sqlparse==0.5.5", "urllib3==1.26.20", "bleach==6.3.0", + "django-crum==0.7.9", "django==5.2.13", "openedx-filters==3.1.0", "arrow==1.4.0", + "python-slugify==8.0.4", "simplejson==4.0.1", "fastavro==1.12.1", "rich==15.0.0", + "click-log==0.4.0", "colorama==0.4.6", "asgiref==3.11.1", "pyyaml==6.0.3", + "django-config-models==3.0.0", "edx-ccx-keys==2.0.2", "jinja2==3.1.6", + "mdurl==0.1.2", "pyproject-api==1.10.0", "pylint-celery==0.3", "pytz==2026.1.post1", + "virtualenv==21.2.4", "s3transfer==0.16.0", "twine==6.2.0", "edx-opaque-keys[django]==4.0.0", + "xblock==6.0.0", "pip==26.0.1", "tomli-w==1.2.0", "django==4.2.24", "mccabe==0.7.0", + "stevedore==5.7.0", "appdirs==1.4.4", "jsonfield==3.2.0", "tzdata==2026.1", + "lxml-html-clean==0.4.4"]' django_packages: django_42: count: 12 - list: '["edx-django-utils", "xblock-sdk", "edx-i18n-tools", "web-fragments", - "django-config-models", "djangorestframework", "pylint-django", "xblock", - "django-filter", "django-appconf", "django-waffle", "code-annotations"]' + list: '["xblock", "django-waffle", "xblock-sdk", "django-config-models", "django-appconf", + "code-annotations", "pylint-django", "edx-i18n-tools", "edx-django-utils", + "django-filter", "web-fragments", "djangorestframework"]' total: count: 15 - list: '["edx-django-utils", "xblock-sdk", "edx-i18n-tools", "django-crum", - "web-fragments", "django-config-models", "djangorestframework", "pylint-django", - "xblock", "django-filter", "django-appconf", "django-waffle", "jsonfield", - "django-statici18n", "code-annotations"]' + list: '["xblock", "django-waffle", "xblock-sdk", "django-config-models", "django-statici18n", + "code-annotations", "pylint-django", "django-crum", "django-appconf", + "edx-i18n-tools", "jsonfield", "edx-django-utils", "django-filter", "web-fragments", + "djangorestframework"]' upgraded: count: 10 - list: '["edx-django-utils", "xblock-sdk", "edx-i18n-tools", "web-fragments", - "django-config-models", "xblock", "django-filter", "django-appconf", "django-waffle", - "code-annotations"]' + list: '["xblock", "django-waffle", "xblock-sdk", "django-config-models", "django-appconf", + "code-annotations", "edx-i18n-tools", "edx-django-utils", "django-filter", + "web-fragments"]' docs: build_badge: false python_version: null @@ -113,18 +113,27 @@ github: allows_merge_commit: true allows_rebase_merge: false allows_squash_merge: true - branch_count: 52 - build_details: '{"total_duration": "646 minutes 3 seconds", "checks": [{"name": - "Tests (ubuntu-latest, 3.12, django52)", "duration": "5 minutes 18 seconds"}, - {"name": "Dependabot", "duration": "3 minutes 3 seconds"}, {"name": "Dependabot", - "duration": "1 minutes 35 seconds"}, {"name": "Tests (ubuntu-latest, 3.12, - quality)", "duration": "1 minutes 24 seconds"}, {"name": "Dependabot", "duration": - "0 minutes 18 seconds"}]}' + branch_count: 55 + build_details: '{"total_duration": "1606 minutes 28 seconds", "checks": [{"name": + "Tests (ubuntu-latest, 3.12, django52)", "duration": "5 minutes 1 seconds"}, + {"name": "Tests (ubuntu-latest, 3.12, quality)", "duration": "1 minutes 28 + seconds"}, {"name": "call-upgrade-python-requirements-workflow / upgrade_requirements", + "duration": "1 minutes 22 seconds"}, {"name": "push", "duration": "0 minutes + 21 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2015-11-09 15:21:44 default_branch: master description: '' - disk_usage_kb: 1994 + disk_usage_kb: 2022 fork_count: 97 has_issues: true has_wiki: false @@ -133,9 +142,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-31 19:03:37 + last_push: 2026-06-08 03:13:26 license: GNU AGPLv3 - pulls_count: 4 + pulls_count: 6 github_actions: true language_bytes: css: 7508 @@ -143,7 +152,7 @@ language_bytes: html: 52292 javascript: 170308 makefile: 3797 - python: 879058 + python: 879140 shell: 0 makefile: pip-installed: false @@ -159,7 +168,11 @@ org_name: openedx ownership: {} pinned_python_dependencies: 4 readme: - bad_links: [] + bad_links: + - 'https://openedx.org/slack: 403' + - 'https://openedx.org/getting-help: 403' + - 'https://openedx.org/r/how-to-contribute: 403' + - 'https://openedx.org/code-of-conduct/: 403' getting-help: true good_links: - https://docs.tutor.edly.io/configuration.html @@ -179,11 +192,7 @@ readme: - https://github.com/open-craft/openedx-ltistore - https://discuss.openedx.org - https://github.com/openedx/xblock-lti-consumer/issues - - https://openedx.org/slack - https://openedx.slack.com/ - - https://openedx.org/getting-help - - https://openedx.org/r/how-to-contribute - - https://openedx.org/code-of-conduct/ - https://backstage.openedx.org/catalog/default/component/xblock-lti-consumer - https://github.com/openedx/xblock-lti-consumer/workflows/Python%20CI/badge.svg?branch=master - https://github.com/openedx/xblock-lti-consumer/actions?query=workflow%3A%22Python+CI%22 diff --git a/individual_repo_data/openedx/xblock-sdk_repo_health.yaml b/individual_repo_data/openedx/xblock-sdk_repo_health.yaml index f10d2788..196175d2 100644 --- a/individual_repo_data/openedx/xblock-sdk_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-sdk_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,48 +22,47 @@ dependencies: list: '' pypi: count: 41 - list: '["botocore==1.43.14", "pytz==2026.2", "jinja2==3.1.6", "certifi==2026.5.20", - "arrow==1.4.0", "lxml==6.1.1", "s3transfer==0.17.0", "asgiref==3.11.1", - "charset-normalizer==3.4.7", "markdown-it-py==4.2.0", "pypng==0.20220715.0", - "tzdata==2026.2", "click==8.4.1", "python-slugify==8.0.4", "cookiecutter==2.7.1", - "python-dateutil==2.9.0.post0", "requests==2.34.2", "mdurl==0.1.2", "sqlparse==0.5.5", - "six==1.17.0", "markupsafe==3.0.3", "openedx-django-pyfs==4.0.0", "appdirs==1.4.4", - "boto3==1.43.14", "jmespath==1.1.0", "pyyaml==6.0.3", "simplejson==4.1.1", - "text-unidecode==1.3", "idna==3.16", "web-fragments==4.0.0", "mako==1.3.12", - "fs-s3fs==1.1.1", "django==5.2.14", "lazy==1.6", "urllib3==2.7.0", "binaryornot==0.6.0", - "rich==15.0.0", "webob==1.8.9", "xblock[django]==6.1.0", "pygments==2.20.0", - "fs==2.4.16"]' + list: '["webob==1.8.9", "web-fragments==4.0.0", "xblock[django]==6.1.0", "pypng==0.20220715.0", + "charset-normalizer==3.4.7", "click==8.4.1", "certifi==2026.5.20", "django==5.2.14", + "pyyaml==6.0.3", "jmespath==1.1.0", "mako==1.3.12", "cookiecutter==2.7.1", + "text-unidecode==1.3", "asgiref==3.11.1", "jinja2==3.1.6", "markdown-it-py==4.2.0", + "urllib3==2.7.0", "markupsafe==3.0.3", "lxml==6.1.1", "appdirs==1.4.4", + "simplejson==4.1.1", "fs-s3fs==1.1.1", "python-slugify==8.0.4", "boto3==1.43.18", + "python-dateutil==2.9.0.post0", "botocore==1.43.18", "pygments==2.20.0", + "arrow==1.4.0", "lazy==1.6", "tzdata==2026.2", "s3transfer==0.18.0", "mdurl==0.1.2", + "pytz==2026.2", "rich==15.0.0", "openedx-django-pyfs==4.0.0", "sqlparse==0.5.5", + "fs==2.4.16", "six==1.17.0", "requests==2.34.2", "binaryornot==0.6.0", + "idna==3.17"]' pypi_all: count: 84 - list: '["virtualenv==21.3.3", "botocore==1.43.14", "code-annotations==3.0.0", - "jinja2==3.1.6", "certifi==2026.5.20", "mccabe==0.7.0", "packaging==26.2", - "tomlkit==0.15.0", "python-slugify==8.0.4", "pyproject-hooks==1.2.0", - "mdurl==0.1.2", "pylint-django==2.7.0", "coverage[toml]==7.14.0", "urllib3==2.7.0", - "pluggy==1.6.0", "platformdirs==4.9.6", "s3transfer==0.17.0", "asgiref==3.11.1", - "charset-normalizer==3.4.7", "mock==5.2.0", "cookiecutter==2.7.1", "requests==2.34.2", - "ddt==1.7.2", "sqlparse==0.5.5", "openedx-django-pyfs==4.0.0", "stevedore==5.8.0", - "pyyaml==6.0.3", "click-log==0.4.0", "build==1.5.0", "tomli-w==1.2.0", - "django==5.2.14", "lazy==1.6", "pyproject-api==1.10.0", "iniconfig==2.3.0", - "filelock==3.29.0", "xblock[django]==6.1.0", "wheel==0.47.0", "distlib==0.4.0", - "pytz==2026.2", "edx-lint==6.1.0", "astroid==4.0.4", "pip==26.1.1", "lxml==6.1.1", - "markdown-it-py==4.2.0", "pypng==0.20220715.0", "tzdata==2026.2", "click==8.4.1", - "pip-tools==7.5.3", "pydocstyle==6.3.0", "cachetools==7.1.4", "six==1.17.0", - "tox==4.54.0", "appdirs==1.4.4", "jmespath==1.1.0", "simplejson==4.1.1", - "web-fragments==4.0.0", "mako==1.3.12", "pycodestyle==2.14.0", "binaryornot==0.6.0", - "rich==15.0.0", "acid-xblock==0.4.1", "pygments==2.20.0", "arrow==1.4.0", - "snowballstemmer==3.0.1", "pytest-rerunfailures==16.3", "pylint-celery==0.3", - "pytest-cov==7.1.0", "python-discovery==1.3.1", "setuptools==81.0.0", - "pylint-plugin-utils==0.9.0", "python-dateutil==2.9.0.post0", "pytest-django==4.12.0", - "isort==8.0.1", "markupsafe==3.0.3", "boto3==1.43.14", "pytest==9.0.3", - "text-unidecode==1.3", "dill==0.4.1", "idna==3.16", "colorama==0.4.6", - "fs-s3fs==1.1.1", "webob==1.8.9", "pylint==4.0.5", "fs==2.4.16"]' + list: '["certifi==2026.5.20", "django==5.2.14", "ddt==1.7.2", "mako==1.3.12", + "colorama==0.4.6", "dill==0.4.1", "pylint-django==2.7.0", "click-log==0.4.0", + "astroid==4.0.4", "distlib==0.4.0", "stevedore==5.8.0", "python-slugify==8.0.4", + "edx-lint==6.1.0", "tomlkit==0.15.0", "code-annotations==3.0.0", "setuptools==81.0.0", + "cachetools==7.1.4", "acid-xblock==0.4.1", "mdurl==0.1.2", "pytz==2026.2", + "pytest==9.0.3", "isort==8.0.1", "jmespath==1.1.0", "wheel==0.47.0", "mccabe==0.7.0", + "asgiref==3.11.1", "jinja2==3.1.6", "pycodestyle==2.14.0", "appdirs==1.4.4", + "botocore==1.43.18", "pydocstyle==6.3.0", "filelock==3.29.0", "python-discovery==1.4.0", + "snowballstemmer==3.1.0", "pyproject-hooks==1.2.0", "pylint-plugin-utils==0.9.0", + "coverage[toml]==7.14.1", "pip-tools==7.5.3", "pypng==0.20220715.0", "click==8.4.1", + "pyyaml==6.0.3", "cookiecutter==2.7.1", "text-unidecode==1.3", "pytest-django==4.12.0", + "markdown-it-py==4.2.0", "urllib3==2.7.0", "markupsafe==3.0.3", "lxml==6.1.1", + "simplejson==4.1.1", "pip==26.1.1", "platformdirs==4.10.0", "virtualenv==21.4.1", + "pygments==2.20.0", "pylint==4.0.5", "lazy==1.6", "iniconfig==2.3.0", + "pytest-cov==7.1.0", "pytest-rerunfailures==16.3", "fs==2.4.16", "pyproject-api==1.10.1", + "binaryornot==0.6.0", "tox==4.55.0", "webob==1.8.9", "web-fragments==4.0.0", + "xblock[django]==6.1.0", "charset-normalizer==3.4.7", "pylint-celery==0.3", + "fs-s3fs==1.1.1", "packaging==26.2", "boto3==1.43.18", "python-dateutil==2.9.0.post0", + "pluggy==1.6.0", "mock==5.2.0", "arrow==1.4.0", "tzdata==2026.2", "s3transfer==0.18.0", + "sqlparse==0.5.5", "rich==15.0.0", "openedx-django-pyfs==4.0.0", "build==1.5.0", + "tomli-w==1.2.0", "six==1.17.0", "requests==2.34.2", "idna==3.17"]' django_packages: django_42: count: 4 - list: '["pytest-django", "code-annotations", "pylint-django", "web-fragments"]' + list: '["pytest-django", "code-annotations", "web-fragments", "pylint-django"]' total: count: 4 - list: '["pytest-django", "code-annotations", "pylint-django", "web-fragments"]' + list: '["pytest-django", "code-annotations", "web-fragments", "pylint-django"]' upgraded: count: 2 list: '["code-annotations", "web-fragments"]' @@ -93,29 +92,21 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 34 - build_details: '{"total_duration": "1042 minutes 22 seconds", "checks": [{"name": - "run_tests (3.12, quality)", "duration": "0 minutes 48 seconds"}, {"name": - "run_tests (3.12, django42)", "duration": "0 minutes 41 seconds"}, {"name": - "run_tests (3.12, django52)", "duration": "0 minutes 40 seconds"}, {"name": - "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 - seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes - 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": - "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": - "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment / add_assignee", - "duration": "-1 minutes 50 seconds"}, {"name": "add_remove_labels / remove_label", - "duration": "-1 minutes 50 seconds"}]}' + branch_count: 35 + build_details: '{"total_duration": "4908 minutes 52 seconds", "checks": [{"name": + "Dependabot", "duration": "1 minutes 21 seconds"}, {"name": "call-upgrade-python-requirements-workflow + / upgrade_requirements", "duration": "1 minutes 13 seconds"}, {"name": "run_tests + (3.12, quality)", "duration": "0 minutes 40 seconds"}, {"name": "run_tests + (3.12, django42)", "duration": "0 minutes 38 seconds"}, {"name": "run_tests + (3.12, django52)", "duration": "0 minutes 31 seconds"}, {"name": "add_remove_labels + / remove_label", "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels + / add_label", "duration": "-1 minutes 59 seconds"}, {"name": "self_assign_by_comment + / add_assignee", "duration": "-1 minutes 59 seconds"}]}' code_of_conduct: Other created_at: 2014-03-06 20:34:41 default_branch: master description: Workbench and example xblocks - disk_usage_kb: 1863 + disk_usage_kb: 1877 fork_count: 104 has_issues: true has_wiki: false @@ -124,17 +115,17 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-31 00:35:20 + last_push: 2026-06-07 00:36:57 license: Apache License 2.0 pulls_count: 2 github_actions: true language_bytes: css: 14419 dockerfile: 0 - html: 8069 - javascript: 237802 + html: 8892 + javascript: 237928 makefile: 3559 - python: 134328 + python: 135793 shell: 0 makefile: pip-installed: true @@ -155,6 +146,7 @@ readme: port=80): Max retries exceeded with url: / (Caused by NameResolutionError("HTTPConnection(host=''docs.seleniumhq.org'', port=80): Failed to resolve ''docs.seleniumhq.org'' ([Errno -2] Name or service not known)"))' + - 'http://coverage.readthedocs.org/: 429' - 'https://openedx.org/slack: 403' - 'https://openedx.org/getting-help: 403' - 'https://openedx.org/r/how-to-contribute: 403' @@ -164,7 +156,6 @@ readme: getting-help: true good_links: - https://docs.djangoproject.com/en/1.11/topics/testing/tools/ - - http://coverage.readthedocs.org/ - https://docs.openedx.org/projects/xblock/en/latest/xblock-tutorial/sdk/get_started_sdk.html - https://discuss.openedx.org - https://github.com/openedx/xblock-sdk/issues diff --git a/individual_repo_data/openedx/xblock-skill-tagging_repo_health.yaml b/individual_repo_data/openedx/xblock-skill-tagging_repo_health.yaml index 88d07f3b..dc7f79f4 100644 --- a/individual_repo_data/openedx/xblock-skill-tagging_repo_health.yaml +++ b/individual_repo_data/openedx/xblock-skill-tagging_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,67 +22,67 @@ dependencies: list: '' pypi: count: 34 - list: '["fastavro==1.12.1", "boto3==1.42.63", "urllib3==2.6.3", "django-model-utils==5.0.0", - "django-crum==0.7.9", "sqlparse==0.5.5", "s3transfer==0.16.0", "openedx-events==10.5.0", - "lazy==1.6", "click==8.3.1", "fs-s3fs==1.1.1", "pynacl==1.6.2", "attrs==25.4.0", - "typing-extensions==4.15.0", "cffi==2.0.0", "appdirs==1.4.4", "pymongo==4.16.0", - "openedx-django-pyfs==3.8.0", "django==5.2.12", "edx-django-utils==8.0.1", - "jmespath==1.1.0", "edx-ccx-keys==2.0.2", "dnspython==2.8.0", "python-dateutil==2.9.0.post0", - "pycparser==3.0", "edx-opaque-keys[django]==3.1.0", "six==1.17.0", "fs==2.4.16", - "stevedore==5.7.0", "botocore==1.42.63", "openedx-filters==2.1.0", "asgiref==3.11.1", - "psutil==7.2.2", "django-waffle==5.0.0"]' + list: '["click==8.3.1", "cffi==2.0.0", "typing-extensions==4.15.0", "django-waffle==5.0.0", + "django==5.2.12", "edx-django-utils==8.0.1", "pymongo==4.16.0", "asgiref==3.11.1", + "appdirs==1.4.4", "psutil==7.2.2", "urllib3==2.6.3", "django-model-utils==5.0.0", + "edx-opaque-keys[django]==3.1.0", "pycparser==3.0", "fs==2.4.16", "pynacl==1.6.2", + "python-dateutil==2.9.0.post0", "openedx-filters==2.1.0", "stevedore==5.7.0", + "openedx-events==10.5.0", "django-crum==0.7.9", "s3transfer==0.16.0", + "botocore==1.42.63", "lazy==1.6", "sqlparse==0.5.5", "openedx-django-pyfs==3.8.0", + "dnspython==2.8.0", "six==1.17.0", "fs-s3fs==1.1.1", "edx-ccx-keys==2.0.2", + "jmespath==1.1.0", "attrs==25.4.0", "fastavro==1.12.1", "boto3==1.42.63"]' pypi_all: count: 133 - list: '["build==1.4.0", "sphinxcontrib-applehelp==2.0.0", "iniconfig==2.3.0", - "pygments==2.19.2", "twine==6.2.0", "roman-numerals==4.1.0", "mccabe==0.7.0", - "sqlparse==0.5.5", "openedx-events==10.5.0", "docutils==0.21.2", "click==8.3.1", - "web-fragments==3.1.0", "astroid==4.0.4", "idna==3.11", "platformdirs==4.9.4", - "certifi==2026.2.25", "requests-toolbelt==1.0.0", "py==1.11.0", "simplejson==3.20.2", - "appdirs==1.4.4", "pylint-celery==0.3", "markdown-it-py==4.0.0", "pymongo==4.16.0", - "openedx-django-pyfs==3.8.0", "django==5.2.12", "doc8==2.0.0", "sphinxcontrib-qthelp==2.0.0", - "alabaster==1.0.0", "dill==0.4.1", "dnspython==2.8.0", "babel==2.18.0", - "jaraco-classes==3.4.0", "requests==2.32.5", "fs==2.4.16", "filelock==3.25.0", - "pytz==2026.1.post1", "stevedore==5.7.0", "openedx-filters==2.1.0", "sphinxcontrib-htmlhelp==2.1.0", - "isort==8.0.1", "sphinx==9.1.0", "virtualenv==21.1.0", "sphinxcontrib-devhelp==2.0.0", - "pylint-django==2.7.0", "fastavro==1.12.1", "boto3==1.42.63", "diff-cover==10.2.0", - "edx-lint==5.6.0", "pytest-django==4.12.0", "tox==3.28.0", "cryptography==46.0.5", - "tomlkit==0.14.0", "lazy==1.6", "pyproject-hooks==1.2.0", "snowballstemmer==3.0.1", - "pluggy==1.6.0", "pydocstyle==6.3.0", "fs-s3fs==1.1.1", "binaryornot==0.5.0", - "djangorestframework==3.16.1", "pypng==0.20220715.0", "arrow==1.4.0", - "attrs==25.4.0", "pip==26.0.1", "xblock-sdk==0.13.0", "six==1.17.0", "pycparser==3.0", - "lxml[html-clean]==6.0.2", "webob==1.8.9", "lxml-html-clean==0.4.4", "text-unidecode==1.3", - "botocore==1.42.63", "coverage[toml]==7.13.4", "secretstorage==3.5.0", - "asgiref==3.11.1", "more-itertools==10.8.0", "distlib==0.4.0", "mdurl==0.1.2", - "keyring==25.7.0", "sphinxcontrib-serializinghtml==2.0.0", "pylint==4.0.5", - "polib==1.2.0", "wheel==0.46.3", "readme-renderer==44.0", "pynacl==1.6.2", - "click-log==0.4.0", "typing-extensions==4.15.0", "cookiecutter==2.7.1", - "pytest-cov==7.0.0", "cffi==2.0.0", "edx-ccx-keys==2.0.2", "xblock==5.3.0", - "chardet==7.0.1", "code-annotations==2.3.2", "tox-battery==0.6.2", "django-waffle==5.0.0", - "tzdata==2025.3", "jaraco-functools==4.4.0", "markupsafe==3.0.3", "rfc3986==2.0.0", - "urllib3==2.6.3", "setuptools==82.0.0", "django-model-utils==5.0.0", "django-crum==0.7.9", - "pyyaml==6.0.3", "s3transfer==0.16.0", "pytest==9.0.2", "id==1.6.1", "jeepney==0.9.0", - "charset-normalizer==3.4.5", "lxml==6.0.2", "pip-tools==7.5.3", "edx-django-utils==8.0.1", - "pycodestyle==2.14.0", "jmespath==1.1.0", "jaraco-context==6.1.1", "imagesize==2.0.0", - "jinja2==3.1.6", "python-dateutil==2.9.0.post0", "edx-opaque-keys[django]==3.1.0", - "packaging==26.0", "pylint-plugin-utils==0.9.0", "rich==14.3.3", "mako==1.3.10", - "mock==5.2.0", "edx-i18n-tools==1.9.0", "restructuredtext-lint==2.0.2", - "python-discovery==1.1.1", "python-slugify==8.0.4", "path==16.16.0", "nh3==0.3.3", - "sphinxcontrib-jsmath==1.0.1", "psutil==7.2.2"]' + list: '["roman-numerals==4.1.0", "cffi==2.0.0", "typing-extensions==4.15.0", + "requests-toolbelt==1.0.0", "django-waffle==5.0.0", "binaryornot==0.5.0", + "tomlkit==0.14.0", "pytest-cov==7.0.0", "edx-django-utils==8.0.1", "cryptography==46.0.5", + "keyring==25.7.0", "asgiref==3.11.1", "python-slugify==8.0.4", "pytz==2026.1.post1", + "sphinxcontrib-serializinghtml==2.0.0", "babel==2.18.0", "urllib3==2.6.3", + "isort==8.0.1", "pluggy==1.6.0", "more-itertools==10.8.0", "readme-renderer==44.0", + "setuptools==82.0.0", "pypng==0.20220715.0", "sphinxcontrib-jsmath==1.0.1", + "pyyaml==6.0.3", "filelock==3.25.0", "pylint==4.0.5", "diff-cover==10.2.0", + "idna==3.11", "mock==5.2.0", "xblock==5.3.0", "path==16.16.0", "tox==3.28.0", + "pylint-celery==0.3", "webob==1.8.9", "openedx-django-pyfs==3.8.0", "djangorestframework==3.16.1", + "pylint-django==2.7.0", "tox-battery==0.6.2", "fs-s3fs==1.1.1", "edx-ccx-keys==2.0.2", + "pycodestyle==2.14.0", "fastavro==1.12.1", "web-fragments==3.1.0", "packaging==26.0", + "pylint-plugin-utils==0.9.0", "text-unidecode==1.3", "sphinx==9.1.0", + "astroid==4.0.4", "lxml==6.0.2", "distlib==0.4.0", "django==5.2.12", "pyproject-hooks==1.2.0", + "sphinxcontrib-applehelp==2.0.0", "build==1.4.0", "appdirs==1.4.4", "psutil==7.2.2", + "twine==6.2.0", "lxml-html-clean==0.4.4", "pytest-django==4.12.0", "pycparser==3.0", + "fs==2.4.16", "python-dateutil==2.9.0.post0", "xblock-sdk==0.13.0", "openedx-filters==2.1.0", + "platformdirs==4.9.4", "doc8==2.0.0", "jaraco-classes==3.4.0", "openedx-events==10.5.0", + "s3transfer==0.16.0", "virtualenv==21.1.0", "sphinxcontrib-htmlhelp==2.1.0", + "botocore==1.42.63", "alabaster==1.0.0", "dnspython==2.8.0", "jaraco-functools==4.4.0", + "six==1.17.0", "iniconfig==2.3.0", "attrs==25.4.0", "charset-normalizer==3.4.5", + "imagesize==2.0.0", "boto3==1.42.63", "jeepney==0.9.0", "chardet==7.0.1", + "restructuredtext-lint==2.0.2", "rich==14.3.3", "secretstorage==3.5.0", + "id==1.6.1", "click-log==0.4.0", "edx-opaque-keys[django]==3.1.0", "pytest==9.0.2", + "mako==1.3.10", "sphinxcontrib-qthelp==2.0.0", "snowballstemmer==3.0.1", + "dill==0.4.1", "arrow==1.4.0", "lazy==1.6", "jinja2==3.1.6", "markupsafe==3.0.3", + "pygments==2.19.2", "click==8.3.1", "pip-tools==7.5.3", "jaraco-context==6.1.1", + "simplejson==3.20.2", "tzdata==2025.3", "code-annotations==2.3.2", "certifi==2026.2.25", + "edx-lint==5.6.0", "edx-i18n-tools==1.9.0", "pymongo==4.16.0", "polib==1.2.0", + "rfc3986==2.0.0", "lxml[html-clean]==6.0.2", "cookiecutter==2.7.1", "django-model-utils==5.0.0", + "pynacl==1.6.2", "coverage[toml]==7.13.4", "mccabe==0.7.0", "py==1.11.0", + "wheel==0.46.3", "pip==26.0.1", "requests==2.32.5", "stevedore==5.7.0", + "markdown-it-py==4.0.0", "django-crum==0.7.9", "sqlparse==0.5.5", "docutils==0.21.2", + "pydocstyle==6.3.0", "nh3==0.3.3", "jmespath==1.1.0", "sphinxcontrib-devhelp==2.0.0", + "mdurl==0.1.2", "python-discovery==1.1.1"]' django_packages: django_42: count: 10 - list: '["xblock-sdk", "edx-django-utils", "code-annotations", "pylint-django", - "pytest-django", "web-fragments", "edx-i18n-tools", "django-waffle", "djangorestframework", - "xblock"]' + list: '["xblock-sdk", "pytest-django", "django-waffle", "pylint-django", "edx-django-utils", + "code-annotations", "djangorestframework", "xblock", "edx-i18n-tools", + "web-fragments"]' total: count: 12 - list: '["xblock-sdk", "edx-django-utils", "code-annotations", "pylint-django", - "pytest-django", "django-crum", "web-fragments", "edx-i18n-tools", "django-waffle", - "djangorestframework", "django-model-utils", "xblock"]' + list: '["xblock-sdk", "pytest-django", "django-model-utils", "django-waffle", + "pylint-django", "django-crum", "edx-django-utils", "code-annotations", + "djangorestframework", "xblock", "edx-i18n-tools", "web-fragments"]' upgraded: count: 7 - list: '["xblock-sdk", "edx-django-utils", "code-annotations", "web-fragments", - "edx-i18n-tools", "django-waffle", "xblock"]' + list: '["xblock-sdk", "django-waffle", "edx-django-utils", "code-annotations", + "xblock", "edx-i18n-tools", "web-fragments"]' docs: build_badge: true python_version: null @@ -110,11 +110,21 @@ github: allows_rebase_merge: true allows_squash_merge: true branch_count: 21 - build_details: '{"total_duration": "0 minutes 38 seconds", "checks": [{"name": + build_details: '{"total_duration": "6169 minutes 18 seconds", "checks": [{"name": "tests (ubuntu-latest, 3.12, quality)", "duration": "0 minutes 37 seconds"}, - {"name": "tests (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 35 - seconds"}, {"name": "tests (ubuntu-latest, 3.12, django52)", "duration": "0 - minutes 31 seconds"}]}' + {"name": "Dependabot", "duration": "0 minutes 37 seconds"}, {"name": "tests + (ubuntu-latest, 3.12, django42)", "duration": "0 minutes 35 seconds"}, {"name": + "tests (ubuntu-latest, 3.12, django52)", "duration": "0 minutes 31 seconds"}, + {"name": "add_remove_labels / remove_label", "duration": "0 minutes 0 seconds"}, + {"name": "add_remove_labels / add_label", "duration": "0 minutes 0 seconds"}, + {"name": "self_assign_by_comment / add_assignee", "duration": "0 minutes 0 + seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": "0 minutes + 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 51 seconds"}, {"name": "add_remove_labels / remove_label", + "duration": "-1 minutes 51 seconds"}]}' code_of_conduct: Other created_at: 2022-12-09 18:15:47 default_branch: main @@ -128,7 +138,7 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-31 19:03:59 + last_push: 2026-06-05 01:53:20 license: GNU AGPLv3 pulls_count: 6 github_actions: true @@ -162,6 +172,7 @@ readme: - 'https://open-edx-backstage.herokuapp.com/catalog/default/component/xblock-skill-tagging: 404' - 'https://xblock-skill-tagging.readthedocs.io/en/latest/: 404' + - 'https://github.com/openedx/xblock-skill-tagging/blob/main/LICENSE.txt: 504' getting-help: true good_links: - https://user-images.githubusercontent.com/10894099/210078679-3cbac3d1-55a7-4fba-b841-7fb4468f32c5.png @@ -190,7 +201,6 @@ readme: - https://readthedocs.org/projects/xblock-skill-tagging/badge/?version=latest - https://img.shields.io/pypi/pyversions/skill_tagging.svg - https://img.shields.io/github/license/openedx/xblock-skill-tagging.svg - - https://github.com/openedx/xblock-skill-tagging/blob/main/LICENSE.txt - https://img.shields.io/badge/Status-Experimental-yellow - https://img.shields.io/badge/Status-Maintained-brightgreen - https://img.shields.io/badge/Status-Deprecated-orange diff --git a/individual_repo_data/openedx/xblocks-core_repo_health.yaml b/individual_repo_data/openedx/xblocks-core_repo_health.yaml index a12650ea..b8428e58 100644 --- a/individual_repo_data/openedx/xblocks-core_repo_health.yaml +++ b/individual_repo_data/openedx/xblocks-core_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,84 +22,82 @@ dependencies: list: '{}' pypi: count: 78 - list: '["edx-opaque-keys==4.0.0", "scipy==1.17.1", "typing-extensions==4.15.0", - "django==5.2.14", "nh3==0.3.5", "code-annotations==3.0.0", "webencodings==0.5.1", - "oauthlib==3.3.1", "random2==1.0.2", "pyparsing==3.3.2", "edxval==4.0.1", - "six==1.17.0", "edx-toggles==6.0.0", "mako==1.3.12", "markupsafe==3.0.3", - "web-fragments==4.0.0", "pyjwt[crypto]==2.13.0", "drf-jwt==1.19.2", "regex==2026.5.9", - "django-waffle==5.0.0", "shapely==2.1.2", "certifi==2026.5.20", "cachetools==7.1.4", - "html5lib==1.1", "mpmath==1.3.0", "wrapt==2.2.1", "django-crum==0.7.9", - "semantic-version==2.10.0", "click==8.4.1", "nltk==3.9.4", "tqdm==4.67.3", - "text-unidecode==1.3", "sympy==1.14.0", "webob==1.8.9", "pysrt==1.1.2", - "pytz==2026.2", "requests==2.34.2", "edx-django-utils==8.0.1", "cffi==2.0.0", - "chem==2.0.0", "chardet==7.4.3", "sqlparse==0.5.5", "jinja2==3.1.6", "xblock==6.1.0", - "pynacl==1.6.2", "edx-drf-extensions==10.6.0", "joblib==1.5.3", "python-slugify==8.0.4", - "edx-submissions==4.0.0", "django-storages==1.14.6", "python-dateutil==2.9.0.post0", - "djangorestframework==3.17.1", "dnspython==2.8.0", "django-model-utils==5.0.0", - "openedx-calc==5.0.0", "fs==2.4.16", "jsonfield==3.2.0", "numpy==2.4.6", - "pyyaml==6.0.3", "defusedxml==0.7.1", "asgiref==3.11.1", "stevedore==5.8.0", - "edx-codejail==4.1.0", "pycparser==3.0", "idna==3.16", "path==17.1.1", - "charset-normalizer==3.4.7", "psutil==7.2.2", "lxml==6.1.1", "soupsieve==2.8.4", - "urllib3==2.7.0", "cryptography==48.0.0", "beautifulsoup4==4.14.3", "simplejson==4.1.1", - "pillow==12.2.0", "appdirs==1.4.4", "edx-django-release-util==1.5.0", - "pymongo==4.17.0"]' + list: '["chem==2.0.0", "path==17.1.1", "typing-extensions==4.15.0", "djangorestframework==3.17.1", + "django-waffle==5.0.0", "pytz==2026.2", "pymongo==4.17.0", "web-fragments==4.0.0", + "lxml==6.1.1", "mako==1.3.12", "webencodings==0.5.1", "edxval==4.0.1", + "markupsafe==3.0.3", "asgiref==3.11.1", "stevedore==5.8.0", "random2==1.0.2", + "edx-drf-extensions==10.6.0", "simplejson==4.1.1", "pyparsing==3.3.2", + "regex==2026.5.9", "defusedxml==0.7.1", "wrapt==2.2.1", "pyjwt[crypto]==2.13.0", + "soupsieve==2.8.4", "sympy==1.14.0", "edx-toggles==6.0.0", "sqlparse==0.5.5", + "django-model-utils==5.0.0", "jinja2==3.1.6", "edx-django-utils==8.0.1", + "html5lib==1.1", "scipy==1.17.1", "idna==3.17", "mpmath==1.3.0", "dnspython==2.8.0", + "click==8.4.1", "appdirs==1.4.4", "charset-normalizer==3.4.7", "semantic-version==2.10.0", + "tqdm==4.67.3", "pycparser==3.0", "code-annotations==3.0.0", "nltk==3.9.4", + "cachetools==7.1.4", "xblock==6.1.0", "pillow==12.2.0", "edx-django-release-util==1.5.0", + "numpy==2.4.6", "shapely==2.1.2", "fs==2.4.16", "django-storages==1.14.6", + "text-unidecode==1.3", "python-slugify==8.0.4", "edx-codejail==4.1.0", + "requests==2.34.2", "pynacl==1.6.2", "edx-opaque-keys==4.0.0", "edx-submissions==4.0.0", + "certifi==2026.5.20", "joblib==1.5.3", "psutil==7.2.2", "openedx-calc==5.0.0", + "python-dateutil==2.9.0.post0", "pyyaml==6.0.3", "six==1.17.0", "pysrt==1.1.2", + "nh3==0.3.5", "urllib3==2.7.0", "django-crum==0.7.9", "jsonfield==3.2.0", + "webob==1.8.9", "chardet==7.4.3", "django==5.2.14", "cffi==2.0.0", "drf-jwt==1.19.2", + "oauthlib==3.3.1", "beautifulsoup4==4.14.3", "cryptography==48.0.0"]' pypi_all: count: 133 - list: '["restructuredtext-lint==2.0.2", "edx-opaque-keys==4.0.0", "iniconfig==2.3.0", - "sphinx-book-theme==1.2.0", "distlib==0.4.0", "scipy==1.17.1", "dill==0.4.1", - "typing-extensions==4.15.0", "edx-lint==6.1.0", "django==5.2.14", "nh3==0.3.5", - "colorama==0.4.6", "pylint-django==2.7.0", "code-annotations==3.0.0", - "webencodings==0.5.1", "pytest-cov==7.1.0", "click-log==0.4.0", "oauthlib==3.3.1", - "pylint-celery==0.3", "random2==1.0.2", "pyparsing==3.3.2", "edxval==4.0.1", - "sphinxcontrib-serializinghtml==2.0.0", "sphinxcontrib-qthelp==2.0.0", - "six==1.17.0", "pycodestyle==2.14.0", "virtualenv==21.3.3", "sphinxcontrib-htmlhelp==2.1.0", - "tomli-w==1.2.0", "edx-toggles==6.0.0", "pygments==2.20.0", "mako==1.3.12", - "markupsafe==3.0.3", "web-fragments==4.0.0", "pyjwt[crypto]==2.13.0", - "drf-jwt==1.19.2", "regex==2026.5.9", "pytest-django==4.12.0", "django-waffle==5.0.0", - "shapely==2.1.2", "certifi==2026.5.20", "cachetools==7.1.4", "filelock==3.29.0", - "accessible-pygments==0.0.5", "html5lib==1.1", "doc8==2.0.0", "mpmath==1.3.0", - "platformdirs==4.9.6", "wrapt==2.2.1", "django-crum==0.7.9", "semantic-version==2.10.0", - "mccabe==0.7.0", "click==8.4.1", "docutils==0.21.2", "nltk==3.9.4", "tqdm==4.67.3", - "wheel==0.47.0", "text-unidecode==1.3", "pylint-plugin-utils==0.9.0", - "sympy==1.14.0", "webob==1.8.9", "babel==2.18.0", "pysrt==1.1.2", "pytz==2026.2", - "requests==2.34.2", "tomlkit==0.15.0", "edx-django-utils==8.0.1", "pydata-sphinx-theme==0.16.1", - "imagesize==2.0.0", "sphinxcontrib-applehelp==2.0.0", "isort==8.0.1", - "cffi==2.0.0", "pyproject-hooks==1.2.0", "chem==2.0.0", "chardet==7.4.3", - "tox==4.54.0", "coverage[toml]==7.14.0", "sqlparse==0.5.5", "pydocstyle==6.3.0", - "jinja2==3.1.6", "xblock==6.1.0", "pynacl==1.6.2", "edx-drf-extensions==10.6.0", - "joblib==1.5.3", "roman-numerals==4.1.0", "pytest==9.0.3", "pip==26.1.1", - "astroid==4.0.4", "python-slugify==8.0.4", "snowballstemmer==3.1.0", "alabaster==1.0.0", - "edx-submissions==4.0.0", "django-storages==1.14.6", "python-dateutil==2.9.0.post0", - "setuptools==80.9.0", "djangorestframework==3.17.1", "dnspython==2.8.0", - "django-model-utils==5.0.0", "openedx-calc==5.0.0", "fs==2.4.16", "pylint==4.0.5", - "ddt==1.7.2", "jsonfield==3.2.0", "pluggy==1.6.0", "numpy==2.4.6", "python-discovery==1.3.1", - "pyyaml==6.0.3", "defusedxml==0.7.1", "asgiref==3.11.1", "stevedore==5.8.0", - "edx-codejail==4.1.0", "pycparser==3.0", "idna==3.16", "sphinx==9.1.0", - "pyproject-api==1.10.0", "build==1.5.0", "path==17.1.1", "charset-normalizer==3.4.7", - "pip-tools==7.5.3", "psutil==7.2.2", "lxml==6.1.1", "soupsieve==2.8.4", - "cryptography==48.0.0", "urllib3==2.7.0", "sphinxcontrib-devhelp==2.0.0", - "sphinxcontrib-jsmath==1.0.1", "beautifulsoup4==4.14.3", "simplejson==4.1.1", - "pillow==12.2.0", "appdirs==1.4.4", "packaging==26.2", "edx-django-release-util==1.5.0", - "pymongo==4.17.0"]' + list: '["chem==2.0.0", "path==17.1.1", "typing-extensions==4.15.0", "djangorestframework==3.17.1", + "django-waffle==5.0.0", "pytz==2026.2", "pymongo==4.17.0", "dill==0.4.1", + "web-fragments==4.0.0", "pip==26.1.2", "sphinxcontrib-applehelp==2.0.0", + "lxml==6.1.1", "alabaster==1.0.0", "isort==8.0.1", "mako==1.3.12", "webencodings==0.5.1", + "click-log==0.4.0", "edxval==4.0.1", "markupsafe==3.0.3", "platformdirs==4.10.0", + "pip-tools==7.5.3", "asgiref==3.11.1", "python-discovery==1.4.0", "pytest==9.0.3", + "stevedore==5.8.0", "random2==1.0.2", "edx-drf-extensions==10.6.0", "astroid==4.0.4", + "filelock==3.29.0", "simplejson==4.1.1", "sphinx-book-theme==1.2.0", "pyparsing==3.3.2", + "regex==2026.5.9", "defusedxml==0.7.1", "mccabe==0.7.0", "edx-lint==6.1.0", + "wrapt==2.2.1", "pyjwt[crypto]==2.13.0", "soupsieve==2.8.4", "sphinxcontrib-htmlhelp==2.1.0", + "sympy==1.14.0", "edx-toggles==6.0.0", "restructuredtext-lint==2.0.2", + "sphinxcontrib-serializinghtml==2.0.0", "sqlparse==0.5.5", "django-model-utils==5.0.0", + "jinja2==3.1.6", "edx-django-utils==8.0.1", "html5lib==1.1", "tox==4.55.0", + "scipy==1.17.1", "idna==3.17", "distlib==0.4.0", "mpmath==1.3.0", "dnspython==2.8.0", + "click==8.4.1", "appdirs==1.4.4", "pylint==4.0.5", "charset-normalizer==3.4.7", + "pygments==2.20.0", "semantic-version==2.10.0", "tomlkit==0.15.0", "imagesize==2.0.0", + "pydocstyle==6.3.0", "tqdm==4.67.3", "pylint-django==2.7.0", "pycparser==3.0", + "colorama==0.4.6", "code-annotations==3.0.0", "nltk==3.9.4", "cachetools==7.1.4", + "snowballstemmer==3.1.0", "pycodestyle==2.14.0", "accessible-pygments==0.0.5", + "xblock==6.1.0", "pillow==12.2.0", "edx-django-release-util==1.5.0", "pyproject-api==1.10.1", + "numpy==2.4.6", "sphinx==9.1.0", "shapely==2.1.2", "build==1.5.0", "ddt==1.7.2", + "fs==2.4.16", "doc8==2.0.0", "django-storages==1.14.6", "text-unidecode==1.3", + "python-slugify==8.0.4", "edx-codejail==4.1.0", "sphinxcontrib-qthelp==2.0.0", + "requests==2.34.2", "pynacl==1.6.2", "edx-opaque-keys==4.0.0", "pytest-django==4.12.0", + "pyproject-hooks==1.2.0", "edx-submissions==4.0.0", "certifi==2026.5.20", + "joblib==1.5.3", "docutils==0.21.2", "wheel==0.47.0", "coverage[toml]==7.14.1", + "psutil==7.2.2", "openedx-calc==5.0.0", "sphinxcontrib-devhelp==2.0.0", + "tomli-w==1.2.0", "python-dateutil==2.9.0.post0", "pylint-plugin-utils==0.9.0", + "sphinxcontrib-jsmath==1.0.1", "pyyaml==6.0.3", "pylint-celery==0.3", + "six==1.17.0", "babel==2.18.0", "pysrt==1.1.2", "nh3==0.3.5", "urllib3==2.7.0", + "django-crum==0.7.9", "jsonfield==3.2.0", "webob==1.8.9", "chardet==7.4.3", + "django==5.2.14", "pytest-cov==7.1.0", "cffi==2.0.0", "drf-jwt==1.19.2", + "pydata-sphinx-theme==0.16.1", "oauthlib==3.3.1", "roman-numerals==4.1.0", + "setuptools==80.9.0", "beautifulsoup4==4.14.3", "iniconfig==2.3.0", "packaging==26.2", + "virtualenv==21.4.2", "cryptography==48.0.0", "pluggy==1.6.0"]' django_packages: django_42: count: 15 - list: '["edx-submissions", "django-storages", "edx-django-utils", "edx-drf-extensions", - "edx-opaque-keys", "web-fragments", "code-annotations", "django-waffle", - "djangorestframework", "pylint-django", "edx-toggles", "xblock", "edx-django-release-util", - "pytest-django", "edxval"]' + list: '["djangorestframework", "edx-django-release-util", "edx-submissions", + "pylint-django", "pytest-django", "django-storages", "edx-opaque-keys", + "edxval", "web-fragments", "code-annotations", "edx-toggles", "xblock", + "edx-drf-extensions", "django-waffle", "edx-django-utils"]' total: count: 19 - list: '["edx-opaque-keys", "django-waffle", "xblock", "jsonfield", "edx-django-release-util", - "web-fragments", "djangorestframework", "django-crum", "pytest-django", - "edx-submissions", "django-storages", "edx-django-utils", "edx-drf-extensions", - "code-annotations", "pylint-django", "edxval", "django-model-utils", "drf-jwt", - "edx-toggles"]' + list: '["django-crum", "django-model-utils", "django-storages", "jsonfield", + "edx-drf-extensions", "djangorestframework", "edx-submissions", "code-annotations", + "edx-django-release-util", "drf-jwt", "pytest-django", "edx-opaque-keys", + "edxval", "edx-toggles", "django-waffle", "edx-django-utils", "pylint-django", + "web-fragments", "xblock"]' upgraded: count: 11 - list: '["edx-submissions", "edx-django-utils", "edx-drf-extensions", "edx-opaque-keys", - "web-fragments", "code-annotations", "django-waffle", "edx-toggles", "xblock", - "edx-django-release-util", "edxval"]' + list: '["edx-django-release-util", "edx-submissions", "edx-opaque-keys", "edxval", + "web-fragments", "code-annotations", "edx-toggles", "xblock", "edx-drf-extensions", + "django-waffle", "edx-django-utils"]' docs: build_badge: false python_version: null @@ -126,21 +124,29 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 7 - build_details: '{"total_duration": "168 minutes 50 seconds", "checks": [{"name": - "Analyze (javascript-typescript)", "duration": "2 minutes 3 seconds"}, {"name": - "call-upgrade-python-requirements-workflow / upgrade_requirements", "duration": - "1 minutes 27 seconds"}, {"name": "Analyze (python)", "duration": "1 minutes - 6 seconds"}, {"name": "Analyze (actions)", "duration": "0 minutes 37 seconds"}, - {"name": "add_remove_labels / remove_label", "duration": "-1 minutes 59 seconds"}, - {"name": "add_remove_labels / add_label", "duration": "-1 minutes 59 seconds"}, - {"name": "self_assign_by_comment / add_assignee", "duration": "-1 minutes - 59 seconds"}]}' + branch_count: 8 + build_details: '{"total_duration": "6368 minutes 34 seconds", "checks": [{"name": + "Analyze (javascript-typescript)", "duration": "1 minutes 59 seconds"}, {"name": + "Run JavaScript Tests (24)", "duration": "1 minutes 46 seconds"}, {"name": + "Run Python Tests and Coverage (3.12, quality)", "duration": "1 minutes 28 + seconds"}, {"name": "Run Python Tests and Coverage (3.12, docs)", "duration": + "1 minutes 26 seconds"}, {"name": "Run Python Tests and Coverage (3.12, django42)", + "duration": "1 minutes 21 seconds"}, {"name": "Run Python Tests and Coverage + (3.12, django52)", "duration": "1 minutes 16 seconds"}, {"name": "Analyze + (python)", "duration": "1 minutes 8 seconds"}, {"name": "Analyze (actions)", + "duration": "0 minutes 37 seconds"}, {"name": "update-pip-graph", "duration": + "0 minutes 29 seconds"}, {"name": "routeissue / add_label", "duration": "0 + minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "-1 minutes 59 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "-1 minutes 59 seconds"}, {"name": "routeissue / add_and_notify", "duration": + "-1 minutes 54 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 52 seconds"}]}' code_of_conduct: Other created_at: 2024-06-26 15:14:53 default_branch: main description: '' - disk_usage_kb: 22301 + disk_usage_kb: 22289 fork_count: 9 has_issues: true has_wiki: false @@ -149,9 +155,9 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-06-01 00:29:08 + last_push: 2026-06-08 07:09:58 license: GNU AGPLv3 - pulls_count: 5 + pulls_count: 6 github_actions: false language_bytes: css: 389247 diff --git a/individual_repo_data/openedx/xblocks-extra_repo_health.yaml b/individual_repo_data/openedx/xblocks-extra_repo_health.yaml index bda2f577..1835d009 100644 --- a/individual_repo_data/openedx/xblocks-extra_repo_health.yaml +++ b/individual_repo_data/openedx/xblocks-extra_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -62,23 +62,31 @@ github: allows_merge_commit: true allows_rebase_merge: true allows_squash_merge: true - branch_count: 4 - build_details: '{"total_duration": "9484 minutes 37 seconds", "checks": [{"name": - "release", "duration": "0 minutes 58 seconds"}, {"name": "call-upgrade-python-requirements-workflow - / upgrade_requirements", "duration": "0 minutes 34 seconds"}, {"name": "Test - (Python 3.12, Django 4.2)", "duration": "0 minutes 22 seconds"}, {"name": - "run_ci / Test (Python 3.12, Django 4.2)", "duration": "0 minutes 22 seconds"}, - {"name": "Dependabot", "duration": "0 minutes 21 seconds"}, {"name": "Test - (Python 3.12, Django 5.2)", "duration": "0 minutes 15 seconds"}, {"name": - "run_ci / Test (Python 3.12, Django 5.2)", "duration": "0 minutes 15 seconds"}, - {"name": "run_ci / Lint", "duration": "0 minutes 11 seconds"}, {"name": "Lint", - "duration": "0 minutes 7 seconds"}, {"name": "publish_to_pypi", "duration": - "-1 minutes 59 seconds"}]}' + branch_count: 7 + build_details: '{"total_duration": "78 minutes 59 seconds", "checks": [{"name": + "copilot-pull-request-reviewer", "duration": "3 minutes 24 seconds"}, {"name": + "release", "duration": "1 minutes 22 seconds"}, {"name": "run_ci / Test (Python + 3.12, Django 4.2)", "duration": "0 minutes 22 seconds"}, {"name": "Test (Python + 3.12, Django 5.2)", "duration": "0 minutes 20 seconds"}, {"name": "Test (Python + 3.12, Django 4.2)", "duration": "0 minutes 17 seconds"}, {"name": "run_ci + / Test (Python 3.12, Django 5.2)", "duration": "0 minutes 17 seconds"}, {"name": + "publish_to_pypi", "duration": "0 minutes 14 seconds"}, {"name": "Lint", "duration": + "0 minutes 9 seconds"}, {"name": "run_ci / Lint", "duration": "0 minutes 8 + seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": "0 minutes + 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / add_label", "duration": + "0 minutes 0 seconds"}, {"name": "add_remove_labels / remove_label", "duration": + "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "0 minutes 0 seconds"}, {"name": "self_assign_by_comment / add_assignee", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 59 seconds"}, {"name": "add_remove_labels / add_label", + "duration": "-1 minutes 50 seconds"}]}' code_of_conduct: Other created_at: 2025-04-17 17:54:17 default_branch: main description: '' - disk_usage_kb: 949 + disk_usage_kb: 951 fork_count: 4 has_issues: true has_wiki: false @@ -87,17 +95,17 @@ github: is_fork: false is_locked: false is_private: false - last_push: 2026-05-25 11:29:11 + last_push: 2026-06-08 00:44:28 license: GNU AGPLv3 - pulls_count: 3 + pulls_count: 6 github_actions: true language_bytes: - css: 6275 + css: 9625 dockerfile: 0 - html: 22844 - javascript: 19303 + html: 25498 + javascript: 26607 makefile: 2183 - python: 145041 + python: 195145 shell: 0 makefile: pip-installed: false @@ -118,6 +126,7 @@ readme: good_links: - https://github.com/openedx-unsupported/AudioXBlock - https://github.com/openedx/FeedbackXBlock + - https://github.com/openedx/xblock-free-text-response - https://github.com/openedx-unsupported/xblock-image-modal - https://github.com/openedx-unsupported/xblock-qualtrics-survey - https://github.com/openedx/xblock-sql-grader diff --git a/individual_repo_data/openedx/xqueue-watcher_repo_health.yaml b/individual_repo_data/openedx/xqueue-watcher_repo_health.yaml index acc8daa3..2db4c12e 100644 --- a/individual_repo_data/openedx/xqueue-watcher_repo_health.yaml +++ b/individual_repo_data/openedx/xqueue-watcher_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: diff --git a/individual_repo_data/openedx/xqueue_repo_health.yaml b/individual_repo_data/openedx/xqueue_repo_health.yaml index 8ad7cffe..2e178889 100644 --- a/individual_repo_data/openedx/xqueue_repo_health.yaml +++ b/individual_repo_data/openedx/xqueue_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: false has_ecosystem: @@ -22,51 +22,51 @@ dependencies: list: '' pypi: count: 57 - list: '["sqlparse==0.5.5", "build==1.4.2", "django-waffle==5.0.0", "gunicorn==25.3.0", - "django==5.2.13", "python-discovery==1.2.1", "asgiref==3.11.1", "coverage[toml]==7.13.5", - "filelock==3.25.2", "certifi==2026.2.25", "pyproject-hooks==1.2.0", "idna==3.11", - "wheel==0.46.3", "edx-django-release-util==1.5.0", "python-dateutil==2.9.0.post0", - "s3transfer==0.16.0", "distlib==0.4.0", "edx-django-utils==8.0.1", "iniconfig==2.3.0", - "virtualenv==21.2.0", "psutil==7.2.2", "pywatchman==3.0.0 ; \"linux\" - in sys_platform", "pyyaml==6.0.3", "pycodestyle==2.14.0", "botocore==1.42.84", - "six==1.17.0", "django-storages==1.14.6", "cachetools==7.0.5", "newrelic==12.1.0", - "pytest==9.0.2", "jmespath==1.1.0", "pip-tools==7.5.3", "boto3==1.42.84", - "pytest-cov==7.1.0", "pluggy==1.6.0", "pycparser==3.0", "stevedore==5.7.0", - "path==17.1.1", "click==8.3.2", "pygments==2.20.0", "packaging==26.0", - "tomli-w==1.2.0", "django-crum==0.7.9", "pynacl==1.6.2", "requests==2.33.1", - "backoff==2.2.1", "pytest-django==4.12.0", "tox==4.52.0", "mysqlclient==2.2.8", - "isort==8.0.1", "platformdirs==4.9.4", "colorama==0.4.6", "urllib3==2.6.3", - "pyproject-api==1.10.0", "cffi==2.0.0", "charset-normalizer==3.4.7", "python-memcached==1.62"]' + list: '["django-waffle==5.0.0", "pytest-cov==7.1.0", "requests==2.33.1", "filelock==3.25.2", + "packaging==26.0", "pluggy==1.6.0", "django==5.2.13", "s3transfer==0.16.0", + "cachetools==7.0.5", "click==8.3.2", "pip-tools==7.5.3", "botocore==1.42.84", + "pycodestyle==2.14.0", "coverage[toml]==7.13.5", "sqlparse==0.5.5", "tomli-w==1.2.0", + "pyproject-hooks==1.2.0", "urllib3==2.6.3", "python-memcached==1.62", + "gunicorn==25.3.0", "virtualenv==21.2.0", "django-crum==0.7.9", "build==1.4.2", + "python-dateutil==2.9.0.post0", "wheel==0.46.3", "django-storages==1.14.6", + "mysqlclient==2.2.8", "pytest==9.0.2", "six==1.17.0", "boto3==1.42.84", + "charset-normalizer==3.4.7", "colorama==0.4.6", "tox==4.52.0", "pywatchman==3.0.0 + ; \"linux\" in sys_platform", "asgiref==3.11.1", "cffi==2.0.0", "jmespath==1.1.0", + "isort==8.0.1", "platformdirs==4.9.4", "certifi==2026.2.25", "pytest-django==4.12.0", + "distlib==0.4.0", "edx-django-release-util==1.5.0", "idna==3.11", "pycparser==3.0", + "path==17.1.1", "pyproject-api==1.10.0", "psutil==7.2.2", "stevedore==5.7.0", + "pynacl==1.6.2", "pyyaml==6.0.3", "python-discovery==1.2.1", "newrelic==12.1.0", + "backoff==2.2.1", "iniconfig==2.3.0", "pygments==2.20.0", "edx-django-utils==8.0.1"]' pypi_all: count: 59 - list: '["sqlparse==0.5.5", "build==1.4.2", "django-waffle==5.0.0", "gunicorn==25.3.0", - "django==5.2.13", "python-discovery==1.2.1", "asgiref==3.11.1", "coverage[toml]==7.13.5", - "filelock==3.25.2", "certifi==2026.2.25", "pyproject-hooks==1.2.0", "idna==3.11", - "wheel==0.46.3", "edx-django-release-util==1.5.0", "python-dateutil==2.9.0.post0", - "s3transfer==0.16.0", "distlib==0.4.0", "edx-django-utils==8.0.1", "iniconfig==2.3.0", - "virtualenv==21.2.0", "psutil==7.2.2", "pywatchman==3.0.0 ; \"linux\" - in sys_platform", "pyyaml==6.0.3", "pycodestyle==2.14.0", "setuptools==82.0.1", - "botocore==1.42.84", "six==1.17.0", "django-storages==1.14.6", "cachetools==7.0.5", - "newrelic==12.1.0", "pytest==9.0.2", "jmespath==1.1.0", "pip-tools==7.5.3", - "boto3==1.42.84", "pytest-cov==7.1.0", "pluggy==1.6.0", "pycparser==3.0", - "stevedore==5.7.0", "path==17.1.1", "click==8.3.2", "pygments==2.20.0", - "packaging==26.0", "tomli-w==1.2.0", "django-crum==0.7.9", "pynacl==1.6.2", - "requests==2.33.1", "backoff==2.2.1", "pytest-django==4.12.0", "tox==4.52.0", - "mysqlclient==2.2.8", "isort==8.0.1", "platformdirs==4.9.4", "colorama==0.4.6", - "urllib3==2.6.3", "pyproject-api==1.10.0", "cffi==2.0.0", "charset-normalizer==3.4.7", - "pip==26.0.1", "python-memcached==1.62"]' + list: '["django-waffle==5.0.0", "pytest-cov==7.1.0", "requests==2.33.1", "filelock==3.25.2", + "packaging==26.0", "pluggy==1.6.0", "django==5.2.13", "s3transfer==0.16.0", + "cachetools==7.0.5", "click==8.3.2", "pip-tools==7.5.3", "botocore==1.42.84", + "pycodestyle==2.14.0", "coverage[toml]==7.13.5", "sqlparse==0.5.5", "tomli-w==1.2.0", + "pyproject-hooks==1.2.0", "urllib3==2.6.3", "python-memcached==1.62", + "gunicorn==25.3.0", "virtualenv==21.2.0", "django-crum==0.7.9", "build==1.4.2", + "python-dateutil==2.9.0.post0", "wheel==0.46.3", "django-storages==1.14.6", + "mysqlclient==2.2.8", "pytest==9.0.2", "six==1.17.0", "boto3==1.42.84", + "charset-normalizer==3.4.7", "colorama==0.4.6", "tox==4.52.0", "pywatchman==3.0.0 + ; \"linux\" in sys_platform", "pip==26.0.1", "setuptools==82.0.1", "asgiref==3.11.1", + "cffi==2.0.0", "jmespath==1.1.0", "isort==8.0.1", "platformdirs==4.9.4", + "certifi==2026.2.25", "pytest-django==4.12.0", "distlib==0.4.0", "edx-django-release-util==1.5.0", + "idna==3.11", "pycparser==3.0", "path==17.1.1", "pyproject-api==1.10.0", + "psutil==7.2.2", "stevedore==5.7.0", "pynacl==1.6.2", "pyyaml==6.0.3", + "python-discovery==1.2.1", "newrelic==12.1.0", "backoff==2.2.1", "iniconfig==2.3.0", + "pygments==2.20.0", "edx-django-utils==8.0.1"]' django_packages: django_42: count: 5 - list: '["edx-django-release-util", "django-storages", "django-waffle", "edx-django-utils", - "pytest-django"]' + list: '["django-waffle", "edx-django-release-util", "pytest-django", "django-storages", + "edx-django-utils"]' total: count: 7 - list: '["edx-django-release-util", "django-storages", "django-waffle", "edx-django-utils", - "django-crum", "pytest-django", "newrelic"]' + list: '["django-crum", "django-waffle", "newrelic", "edx-django-release-util", + "pytest-django", "django-storages", "edx-django-utils"]' upgraded: count: 3 - list: '["edx-django-release-util", "django-waffle", "edx-django-utils"]' + list: '["django-waffle", "edx-django-release-util", "edx-django-utils"]' docs: build_badge: false python_version: null diff --git a/individual_repo_data/openedx/xss-utils_repo_health.yaml b/individual_repo_data/openedx/xss-utils_repo_health.yaml index f523bcfa..ebdd21cc 100644 --- a/individual_repo_data/openedx/xss-utils_repo_health.yaml +++ b/individual_repo_data/openedx/xss-utils_repo_health.yaml @@ -1,4 +1,4 @@ -TIMESTAMP: 2026-06-01 +TIMESTAMP: 2026-06-08 dependabot: exists: true has_ecosystem: @@ -22,42 +22,42 @@ dependencies: list: '' pypi: count: 3 - list: '["django==5.2.12", "asgiref==3.11.1", "sqlparse==0.5.5"]' + list: '["sqlparse==0.5.5", "asgiref==3.11.1", "django==5.2.12"]' pypi_all: count: 84 - list: '["pylint-celery==0.3", "beautifulsoup4==4.14.3", "pytest-cov==7.0.0", - "pydata-sphinx-theme==0.15.4", "tox==4.49.0", "sphinx-book-theme==1.1.4", - "asgiref==3.11.1", "six==1.17.0", "diff-cover==10.2.0", "pyproject-hooks==1.2.0", - "pip-tools==7.5.3", "pylint-django==2.7.0", "snowballstemmer==3.0.1", - "roman-numerals==4.1.0", "coverage[toml]==7.13.4", "idna==3.11", "certifi==2026.2.25", - "python-slugify==8.0.4", "readme-renderer==44.0", "edx-lint==5.6.0", "build==1.4.0", - "tomli-w==1.2.0", "packaging==26.0", "dill==0.4.1", "babel==2.18.0", "sqlparse==0.5.5", - "cachetools==7.0.3", "edx-i18n-tools==1.9.0", "pycodestyle==2.14.0", "typing-extensions==4.15.0", - "path==16.16.0", "polib==1.2.0", "sphinxcontrib-applehelp==2.0.0", "sphinxcontrib-jsmath==1.0.1", - "requests==2.32.5", "markupsafe==3.0.3", "charset-normalizer==3.4.5", - "stevedore==5.7.0", "pylint==4.0.5", "lxml[html-clean]==6.0.2", "accessible-pygments==0.0.5", - "click-log==0.4.0", "doc8==2.0.0", "sphinxcontrib-qthelp==2.0.0", "astroid==4.0.4", - "pip==26.0.1", "platformdirs==4.9.4", "pydocstyle==6.3.0", "isort==8.0.1", - "sphinxcontrib-devhelp==2.0.0", "tomlkit==0.14.0", "django==5.2.12", "jinja2==3.1.6", - "click==8.3.1", "imagesize==2.0.0", "docutils==0.21.2", "pyproject-api==1.10.0", - "setuptools==82.0.0", "soupsieve==2.8.3", "pluggy==1.6.0", "filelock==3.25.0", - "wheel==0.46.3", "virtualenv==21.1.0", "pytest==9.0.2", "distlib==0.4.0", - "text-unidecode==1.3", "mccabe==0.7.0", "alabaster==1.0.0", "lxml-html-clean==0.4.4", - "sphinxcontrib-serializinghtml==2.0.0", "nh3==0.3.3", "iniconfig==2.3.0", - "sphinxcontrib-htmlhelp==2.1.0", "chardet==7.0.1", "restructuredtext-lint==2.0.2", - "pygments==2.19.2", "sphinx==9.1.0", "colorama==0.4.6", "pytest-django==4.12.0", - "python-discovery==1.1.1", "pyyaml==6.0.3", "code-annotations==2.3.2", - "urllib3==2.6.3", "pylint-plugin-utils==0.9.0"]' + list: '["readme-renderer==44.0", "platformdirs==4.9.4", "pluggy==1.6.0", "jinja2==3.1.6", + "stevedore==5.7.0", "babel==2.18.0", "nh3==0.3.3", "snowballstemmer==3.0.1", + "urllib3==2.6.3", "soupsieve==2.8.3", "isort==8.0.1", "python-discovery==1.1.1", + "sqlparse==0.5.5", "accessible-pygments==0.0.5", "sphinx==9.1.0", "coverage[toml]==7.13.4", + "iniconfig==2.3.0", "roman-numerals==4.1.0", "pygments==2.19.2", "sphinxcontrib-qthelp==2.0.0", + "pylint-celery==0.3", "charset-normalizer==3.4.5", "pylint-django==2.7.0", + "pydata-sphinx-theme==0.15.4", "six==1.17.0", "virtualenv==21.1.0", "requests==2.32.5", + "dill==0.4.1", "wheel==0.46.3", "markupsafe==3.0.3", "sphinxcontrib-jsmath==1.0.1", + "packaging==26.0", "restructuredtext-lint==2.0.2", "cachetools==7.0.3", + "pyyaml==6.0.3", "sphinxcontrib-htmlhelp==2.1.0", "pip-tools==7.5.3", + "edx-lint==5.6.0", "lxml[html-clean]==6.0.2", "pydocstyle==6.3.0", "python-slugify==8.0.4", + "beautifulsoup4==4.14.3", "edx-i18n-tools==1.9.0", "doc8==2.0.0", "pip==26.0.1", + "certifi==2026.2.25", "path==16.16.0", "asgiref==3.11.1", "mccabe==0.7.0", + "pytest==9.0.2", "django==5.2.12", "pyproject-api==1.10.0", "idna==3.11", + "tox==4.49.0", "docutils==0.21.2", "typing-extensions==4.15.0", "pycodestyle==2.14.0", + "click-log==0.4.0", "polib==1.2.0", "diff-cover==10.2.0", "build==1.4.0", + "pylint==4.0.5", "pyproject-hooks==1.2.0", "tomli-w==1.2.0", "code-annotations==2.3.2", + "chardet==7.0.1", "sphinx-book-theme==1.1.4", "setuptools==82.0.0", "pytest-django==4.12.0", + "text-unidecode==1.3", "imagesize==2.0.0", "pytest-cov==7.0.0", "sphinxcontrib-applehelp==2.0.0", + "sphinxcontrib-devhelp==2.0.0", "sphinxcontrib-serializinghtml==2.0.0", + "alabaster==1.0.0", "pylint-plugin-utils==0.9.0", "colorama==0.4.6", "tomlkit==0.14.0", + "distlib==0.4.0", "lxml-html-clean==0.4.4", "astroid==4.0.4", "click==8.3.1", + "filelock==3.25.0"]' django_packages: django_42: count: 4 - list: '["pytest-django", "pylint-django", "code-annotations", "edx-i18n-tools"]' + list: '["edx-i18n-tools", "code-annotations", "pylint-django", "pytest-django"]' total: count: 4 - list: '["pytest-django", "pylint-django", "code-annotations", "edx-i18n-tools"]' + list: '["edx-i18n-tools", "code-annotations", "pylint-django", "pytest-django"]' upgraded: count: 2 - list: '["code-annotations", "edx-i18n-tools"]' + list: '["edx-i18n-tools", "code-annotations"]' docs: build_badge: true python_version: null