Skip to main content

This repo contains a number of tools Open edX uses for working with GitHub repositories.

Project description

This repo contains a number of tools Open edX engineers use for working with GitHub repositories.

The set of tools has grown over the years. Some are old and in current use, some have fallen out of use, some are quite new.

Setting up GitHub authentication

Most of these make GitHub API calls, and so will need GitHub credentials in order to not be severely rate-limited. Edit (or create) ~/.netrc so that it has an entry like this:

machine api.github.com
  login your_user_name
  password ghp_XyzzyfGXFooBar8nBqQuuxY9brgXYz4Xyzzy

Change the login to your GitHub user name. The password is a Personal Access Token you get from https://github.com/settings/tokens. Visit that page, click “Generate new token.” It will prompt you for your password, then you’ll see a scary list of scopes. Check the “repo” option and click “Generate token.” Copy the token that appears. Paste it into your ~/.netrc in the “password” entry.

Working in the repo

To work on these tools:

  1. Use a virtualenv.

  2. Install dependencies:

    make dev-install
  3. Run tests:

    make test
  4. Older tools were Python files run from the root of the repo. Now we are being more disciplined and putting code into importable modules with entry points in setup.py.

  5. Simple tools can go into an existing subdirectory of edx_repo_tools. Follow the structure of existing tools you find here. More complex tools, or ones that need unusual third-party requirements, should go into a new subdirectory of edx_repo_tools.

  6. Add a new entry_point in setup.py for your command:

    entry_points={
        'console_scripts': [
            ...
            'new_tool = edx_repo_tools.new_tool_dir.new_tool:main',
            ...
  7. If your tool is in its own directory, you can create an extra.in file there with third-party requirements intended just for your tool. This will automatically create an installable “extra” for your requirements.

Active Tools

repo_checks

See the repo_checks README in its subfolder.

Older Tools

There are many programs in this repo in various stages of disrepair. A few of them are described in this repo’s older README.md file. Others are not described at all, but may be useful, or have useful tidbits in the code.

Feedback

Please send any feedback to oscm@edx.org.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edx_repo_tools-3.0.1.tar.gz (93.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edx_repo_tools-3.0.1-py3-none-any.whl (110.3 kB view details)

Uploaded Python 3

File details

Details for the file edx_repo_tools-3.0.1.tar.gz.

File metadata

  • Download URL: edx_repo_tools-3.0.1.tar.gz
  • Upload date:
  • Size: 93.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for edx_repo_tools-3.0.1.tar.gz
Algorithm Hash digest
SHA256 670756aab892fbe66e126fc46f5beea280f32c65ea12e72dedbd19e666257f0b
MD5 e50af6794dbde24b8a8e815179e9c75d
BLAKE2b-256 10e8bd8c3343624ed4f1fd1e21b7d9b54a8caa552e01b737152c95bab1fed001

See more details on using hashes here.

File details

Details for the file edx_repo_tools-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: edx_repo_tools-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 110.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for edx_repo_tools-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0140b15b77a7137917aaf7b22e703c52d1ca1a84fb49dcd3e71634ea58690a80
MD5 329f9bf60ebce5ec07ff35bb03710ed7
BLAKE2b-256 f9b8fda17ace12d19b120ef25cdbc6d6063afb5b9124ef6cda0b7f8e50c53cee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page