Skip to main content

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
```


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

sqre-codekit-7.1.0.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

sqre_codekit-7.1.0-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

Details for the file sqre-codekit-7.1.0.tar.gz.

File metadata

File hashes

Hashes for sqre-codekit-7.1.0.tar.gz
Algorithm Hash digest
SHA256 35537bc84d77af2f38c2f4d336f0c0aa39a1b17c804033bd8b3c24b4400f7096
MD5 ab3582e16b173dba42b9efc6acefb5e8
BLAKE2b-256 d7bb2f74f26d8c3e6d8d2ab6788e1e1eed89f247ea415127c12291337f6f4a62

See more details on using hashes here.

File details

Details for the file sqre_codekit-7.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sqre_codekit-7.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8f7d824e7ac4b7e595169297bbf7b71f9bbeb79a429044fafa03a6e3c38aa26d
MD5 156c23bdf75eac5518414385feed61a9
BLAKE2b-256 17554b9b6d64b2ee1c546de8bf030567d53a097c0fb9a9cc2f6eb153575bcf22

See more details on using hashes here.

Supported by

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