# shipctl
**shipctl** is a command-line tool to upload and download files or directories to an OCI-compatible registry as artifacts.
## Features
- Upload any files or directories to OCI registries
- Download artifacts from OCI registries
- Simple CLI interface: `shipctl up` and `shipctl down`
- Supports authentication and custom output directories
- CLI options can also be set via environment variables
## Installation
```bash
pip install shipctl
```
## Usage
### Upload an artifact
```bash
shipctl up --target <oci-target> --username <user> --password <pass> --files <file1> --files <file2>
```
### Download an artifact
```bash
shipctl down --target <oci-target> --username <user> --password <pass> --outdir ./output-directory
```
### Options
- `--target` : Target OCI artifact (required)
- `--username` : Username for authentication (required)
- `--password` : Password for authentication (required)
- `--files` : Files or directories to upload (for `up`)
- `--outdir` : Output directory for downloads (for `down`, default: `./artifacts`)
#### Environment Variables
All CLI options can also be set using environment variables:
- `SHIPCTL_OCI_TARGET` → `--target`
- `SHIPCTL_OCI_USERNAME` → `--username`
- `SHIPCTL_OCI_PASSWORD` → `--password`
- `SHIPCTL_OCI_FILES` → `--files`
- `SHIPCTL_OCI_OUTDIR` → `--outdir`
For example:
```bash
export SHIPCTL_OCI_TARGET=your-oci-target
export SHIPCTL_OCI_USERNAME=your-username
export SHIPCTL_OCI_PASSWORD=your-password
shipctl up --files file1 --files file2
```
## License
This project is licensed under the Apache 2.0 License. For more information, see the [license](./license).
Raw data
{
"_id": null,
"home_page": null,
"name": "shipctl",
"maintainer": "Alexander Kharkevich",
"docs_url": null,
"requires_python": "<3.13.dev0,>=3.12",
"maintainer_email": "alex@kharkevich.org",
"keywords": "oci, automation, artifacts",
"author": "Alexander Kharkevich",
"author_email": "alex@kharkevich.org",
"download_url": "https://files.pythonhosted.org/packages/da/42/3b884fc71077e98f47d766901c1c13ade79ee25218956e49240ab5c39572/shipctl-1.0.0.tar.gz",
"platform": null,
"description": "\n# shipctl\n\n**shipctl** is a command-line tool to upload and download files or directories to an OCI-compatible registry as artifacts.\n\n## Features\n\n- Upload any files or directories to OCI registries\n- Download artifacts from OCI registries\n- Simple CLI interface: `shipctl up` and `shipctl down`\n- Supports authentication and custom output directories\n- CLI options can also be set via environment variables\n\n## Installation\n\n```bash\npip install shipctl\n```\n\n## Usage\n\n### Upload an artifact\n\n```bash\nshipctl up --target <oci-target> --username <user> --password <pass> --files <file1> --files <file2>\n```\n\n### Download an artifact\n\n```bash\nshipctl down --target <oci-target> --username <user> --password <pass> --outdir ./output-directory\n```\n\n### Options\n\n- `--target` : Target OCI artifact (required)\n- `--username` : Username for authentication (required)\n- `--password` : Password for authentication (required)\n- `--files` : Files or directories to upload (for `up`)\n- `--outdir` : Output directory for downloads (for `down`, default: `./artifacts`)\n\n#### Environment Variables\n\nAll CLI options can also be set using environment variables:\n\n- `SHIPCTL_OCI_TARGET` \u2192 `--target`\n- `SHIPCTL_OCI_USERNAME` \u2192 `--username`\n- `SHIPCTL_OCI_PASSWORD` \u2192 `--password`\n- `SHIPCTL_OCI_FILES` \u2192 `--files`\n- `SHIPCTL_OCI_OUTDIR` \u2192 `--outdir`\n\nFor example:\n\n```bash\nexport SHIPCTL_OCI_TARGET=your-oci-target\nexport SHIPCTL_OCI_USERNAME=your-username\nexport SHIPCTL_OCI_PASSWORD=your-password\nshipctl up --files file1 --files file2\n```\n\n## License\n\nThis project is licensed under the Apache 2.0 License. For more information, see the [license](./license).\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Upload artifacts to OCI registry",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/mlflow-oidc/shipctl/issues",
"Documentation": "https://mlflow-oidc.github.io/shipctl/",
"Homepage": "https://github.com/mlflow-oidc/shipctl",
"Source Code": "https://github.com/mlflow-oidc/shipctl/"
},
"split_keywords": [
"oci",
" automation",
" artifacts"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "13252843797fb41c4028e2866b161778b6b79be0587ee67c3efa792f9f2ece93",
"md5": "3a9c3ef82470707a8a227a564c4036de",
"sha256": "bf889a96c323b52f6602eac688fd0d7db4b9782cd3247d249072800d44b54023"
},
"downloads": -1,
"filename": "shipctl-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3a9c3ef82470707a8a227a564c4036de",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13.dev0,>=3.12",
"size": 9860,
"upload_time": "2025-08-15T05:00:25",
"upload_time_iso_8601": "2025-08-15T05:00:25.813166Z",
"url": "https://files.pythonhosted.org/packages/13/25/2843797fb41c4028e2866b161778b6b79be0587ee67c3efa792f9f2ece93/shipctl-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "da423b884fc71077e98f47d766901c1c13ade79ee25218956e49240ab5c39572",
"md5": "96b764b5b399d6579532d0ca9904bcb5",
"sha256": "bd99953b0e1d1b90e2b26e767fe172806ae6de39584f2fa969f932a4abc19786"
},
"downloads": -1,
"filename": "shipctl-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "96b764b5b399d6579532d0ca9904bcb5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13.dev0,>=3.12",
"size": 7667,
"upload_time": "2025-08-15T05:00:27",
"upload_time_iso_8601": "2025-08-15T05:00:27.059674Z",
"url": "https://files.pythonhosted.org/packages/da/42/3b884fc71077e98f47d766901c1c13ade79ee25218956e49240ab5c39572/shipctl-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-15 05:00:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mlflow-oidc",
"github_project": "shipctl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "shipctl"
}