{"id":20037754,"url":"https://github.com/openedx/repo-tools","last_synced_at":"2025-04-04T12:06:30.465Z","repository":{"id":37828779,"uuid":"13633009","full_name":"openedx/repo-tools","owner":"openedx","description":"Tools for repo maintenance, etc.","archived":false,"fork":false,"pushed_at":"2025-03-27T04:01:25.000Z","size":1566,"stargazers_count":31,"open_issues_count":21,"forks_count":39,"subscribers_count":122,"default_branch":"master","last_synced_at":"2025-03-28T11:07:15.536Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openedx.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-10-16T22:30:05.000Z","updated_at":"2025-03-17T15:45:49.000Z","dependencies_parsed_at":"2023-07-15T18:25:23.380Z","dependency_job_id":"ced63fa8-36c5-446c-a07b-3ca9543ddfba","html_url":"https://github.com/openedx/repo-tools","commit_stats":{"total_commits":1217,"total_committers":67,"mean_commits":18.16417910447761,"dds":0.743631881676253,"last_synced_commit":"5981772476bcb4f5802cbff6b56a51b470cf3962"},"previous_names":["edx/repo-tools"],"tags_count":86,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Frepo-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Frepo-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Frepo-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openedx%2Frepo-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openedx","download_url":"https://codeload.github.com/openedx/repo-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174407,"owners_count":20896076,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T10:21:49.889Z","updated_at":"2025-04-04T12:06:30.446Z","avatar_url":"https://github.com/openedx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"###################\nOpen edX Repo Tools\n###################\n\nThis repo contains a number of tools Open edX engineers use for working with\nGitHub repositories.\n\nThe set of tools has grown over the years. Some are old and in current use,\nsome have fallen out of use, some are quite new.\n\nSetting up GitHub authentication\n================================\n\nMost of these make GitHub API calls, and so will need GitHub credentials in\norder to not be severely rate-limited.  Edit (or create) `~/.netrc` so that it\nhas an entry like this::\n\n    machine api.github.com\n      login your_user_name\n      password ghp_XyzzyfGXFooBar8nBqQuuxY9brgXYz4Xyzzy\n\nChange the login to your GitHub user name.  The password is a Personal Access\nToken you get from https://github.com/settings/tokens.  Visit that page, click\n\"Generate new token.\" It will prompt you for your password, then you'll see a\nscary list of scopes. Check the \"repo\" option and click \"Generate token.\" Copy\nthe token that appears. Paste it into your ~/.netrc in the \"password\" entry.\n\n\nWorking in the repo\n===================\n\nTo work on these tools:\n\n1. Use a virtualenv.\n\n2. Install dependencies::\n\n    make dev-install\n\n3. Run tests::\n\n    make test\n\n4. Older tools were Python files run from the root of the repo.  Now we are\n   being more disciplined and putting code into importable modules with entry\n   points in setup.py.\n\n5. Simple tools can go into an existing subdirectory of edx_repo_tools.  Follow\n   the structure of existing tools you find here.  More complex tools, or ones\n   that need unusual third-party requirements, should go into a new\n   subdirectory of edx_repo_tools.\n\n6. Add a new `entry_point` in setup.py for your command:\n\n   .. code::\n\n        entry_points={\n            'console_scripts': [\n                ...\n                'new_tool = edx_repo_tools.new_tool_dir.new_tool:main',\n                ...\n\n7. If your tool is in its own directory, you can create an `extra.in` file\n   there with third-party requirements intended just for your tool.  This will\n   automatically create an installable \"extra\" for your requirements.\n\nActive Tools\n============\n\nrepo_checks\n-----------\n\nSee the `repo_checks README \u003cedx_repo_tools/repo_checks/README.rst\u003e`_ in its subfolder.\n\nOlder Tools\n===========\n\nThere are many programs in this repo in various stages of disrepair.  A few\nof them are described in this repo's `older README.md`_ file.  Others are not\ndescribed at all, but may be useful, or have useful tidbits in the code.\n\n.. _older README.md: https://github.com/openedx/repo-tools/blob/7aa8bda466d1925c56d4ad6e3b2bdd87b1f83148/README.md\n\n\nFeedback\n========\n\nPlease send any feedback to oscm@edx.org.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Frepo-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenedx%2Frepo-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenedx%2Frepo-tools/lists"}