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.0.0.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

sqre_codekit-7.0.0-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for sqre-codekit-7.0.0.tar.gz
Algorithm Hash digest
SHA256 51431bc86053aec79691bd17d362b75773208b5f0ba20a3929cd1920aec42294
MD5 05f3f28d3d53bf5287bdb1fed0845f0f
BLAKE2b-256 86dd92c1d35068ae042fea3b9f9cee238c3d89937edd51e666384322a41f4ccb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sqre_codekit-7.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0eadc767a0a0e6b3ee7c4f4e3b631bb39ea55df6f1e06a9c9cfed70407533040
MD5 6fecde1f79e11556ff26fb18cdbd8e81
BLAKE2b-256 bf8265a2eb98970591d4f8d239045682cf978cb49d9dc556580b770740d86ebf

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