LSST Data Management SQuaRE code management tools
Project description
[![Build Status](https://travis-ci.org/lsst-sqre/sqre-codekit.svg?branch=master)](https://travis-ci.org/lsst-sqre/sqre-codekit)
# sqre-codekit
LSST DM SQuaRE misc. code management tools
## Installation
sqre-codekit runs on Python 3.6 or newer. You can install it with
```bash
pip install sqre-codekit
```
## Available commands
- `github-auth`: Generate a GitHub authentication token.
- `github-decimate-org`: Delete repos and/or teams from a GitHub organization.
- `github-fork-org`: Fork repositories from one GitHub organization to another.
- `github-get-ratelimit`: Display the current github ReST API request ratelimit.
- `github-list-repos`: List repositories on Github using various criteria.
- `github-mv-repos-to-team`: Move repo(s) from one team to another.
- `github-tag-release`: Tag git repositories, in a GitHub org, that correspond
to the products in a published eups distrib tag.
- `github-tag-teams`: Tag the head of the default branch of all repositories in
a GitHub org which belong to the specified team(s).
Use the `--help` flag with any command to learn more.
## Example usage
### `github-auth`
To generate a personal user token (you will be prompted for your password):
```bash
github-auth -u {{username}}
```
Or to generate a token with delete privileges:
```bash
github-auth -u {{username}} --delete-role
```
### `github-fork-org`
To clone all [github.com/lsst](https://github.com/lsst) repos into an GitHub
organization called `{{username}}-shadow`:
```bash
github-fork-org \
--dry-run \
--debug \
--src-org 'lsst' \
--dst-org '{{username}}-shadow' \
--token "$GITHUB_TOKEN" \
--team 'DM Auxilliaries' \
--team 'DM Externals' \
--team 'Data Management' \
--copy-teams
```
You'll need to create this shadow organization in advance. Working in a shadow
organization is useful for testing.
### `github-decimate-org`
If you want to take a recent fork, you will need to delete the existing shadow
repos first:
```bash
github-decimate-org \
--dry-run \
--debug \
--org 'example' \
--token "$GITHUB_TOKEN" \
--delete-repos \
--delete-repos-limit 3 \
--delete-teams \
--delete-teams-limit 3
```
That requires a token with delete privileges.
To get more debugging information, set your `DM_SQUARE_DEBUG` variable before
running any command, or use the `-d` debug flag on the command line.
### `github-tag-release`
XXX
### `github-tag-teams`
XXX
### `github-get-ratelimit`
XXX
## Development
To develop codekit, create a Python virtual environment, and
```bash
git clone https://github.com/lsst-sqre/sqre-codekit.git
cd sqre-codekit
virtualenv venv
. venv/bin/activate
pip install -r requirements.txt
python setup.py develop
```
Note that all scripts (in `codekit/cli`) are installed using setuptools
`entry_points`. See `setup.py`.
### tests
Unit tests can be run with [pytest](http://pytest.org/latest/):
```bash
python setup.py test
```
or
```bash
pytest tests
```
# sqre-codekit
LSST DM SQuaRE misc. code management tools
## Installation
sqre-codekit runs on Python 3.6 or newer. You can install it with
```bash
pip install sqre-codekit
```
## Available commands
- `github-auth`: Generate a GitHub authentication token.
- `github-decimate-org`: Delete repos and/or teams from a GitHub organization.
- `github-fork-org`: Fork repositories from one GitHub organization to another.
- `github-get-ratelimit`: Display the current github ReST API request ratelimit.
- `github-list-repos`: List repositories on Github using various criteria.
- `github-mv-repos-to-team`: Move repo(s) from one team to another.
- `github-tag-release`: Tag git repositories, in a GitHub org, that correspond
to the products in a published eups distrib tag.
- `github-tag-teams`: Tag the head of the default branch of all repositories in
a GitHub org which belong to the specified team(s).
Use the `--help` flag with any command to learn more.
## Example usage
### `github-auth`
To generate a personal user token (you will be prompted for your password):
```bash
github-auth -u {{username}}
```
Or to generate a token with delete privileges:
```bash
github-auth -u {{username}} --delete-role
```
### `github-fork-org`
To clone all [github.com/lsst](https://github.com/lsst) repos into an GitHub
organization called `{{username}}-shadow`:
```bash
github-fork-org \
--dry-run \
--debug \
--src-org 'lsst' \
--dst-org '{{username}}-shadow' \
--token "$GITHUB_TOKEN" \
--team 'DM Auxilliaries' \
--team 'DM Externals' \
--team 'Data Management' \
--copy-teams
```
You'll need to create this shadow organization in advance. Working in a shadow
organization is useful for testing.
### `github-decimate-org`
If you want to take a recent fork, you will need to delete the existing shadow
repos first:
```bash
github-decimate-org \
--dry-run \
--debug \
--org 'example' \
--token "$GITHUB_TOKEN" \
--delete-repos \
--delete-repos-limit 3 \
--delete-teams \
--delete-teams-limit 3
```
That requires a token with delete privileges.
To get more debugging information, set your `DM_SQUARE_DEBUG` variable before
running any command, or use the `-d` debug flag on the command line.
### `github-tag-release`
XXX
### `github-tag-teams`
XXX
### `github-get-ratelimit`
XXX
## Development
To develop codekit, create a Python virtual environment, and
```bash
git clone https://github.com/lsst-sqre/sqre-codekit.git
cd sqre-codekit
virtualenv venv
. venv/bin/activate
pip install -r requirements.txt
python setup.py develop
```
Note that all scripts (in `codekit/cli`) are installed using setuptools
`entry_points`. See `setup.py`.
### tests
Unit tests can be run with [pytest](http://pytest.org/latest/):
```bash
python setup.py test
```
or
```bash
pytest tests
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sqre-codekit-7.4.1.tar.gz
(43.2 kB
view details)
Built Distribution
File details
Details for the file sqre-codekit-7.4.1.tar.gz
.
File metadata
- Download URL: sqre-codekit-7.4.1.tar.gz
- Upload date:
- Size: 43.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cfe6bcd3ac9d7ebca1d46f2ea5054a25b66858b88cd5610d9b4d95224a77174 |
|
MD5 | ee17edb68c0fb7da1241a3df4465a007 |
|
BLAKE2b-256 | fd13f3c143838b1939f3105b2cbdffb39ef93a75d69fa824a2c6aaf50ad161b7 |
File details
Details for the file sqre_codekit-7.4.1-py3-none-any.whl
.
File metadata
- Download URL: sqre_codekit-7.4.1-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 659af1897d8717f198ce35092083e14b1f2bb24811f535e3a75d8e29487743eb |
|
MD5 | 2ebe3443ad3541f11b9720d4c0bc9b88 |
|
BLAKE2b-256 | a7e32332314b12d59c8d05ba8d772a03acf2a8ce4baae0615a5607583f750489 |