repomaestro


Namerepomaestro JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/cliffano/repomaestro
SummaryCode repositories conductor
upload_time2025-01-06 22:46:25
maintainerNone
docs_urlNone
authorCliffano Subagio
requires_python<4.0,>=3.10
licenseApache-2.0
keywords repomaestro ...
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            <img align="right" src="https://raw.github.com/cliffano/repomaestro/main/avatar.jpg" alt="Avatar"/>

[![Build Status](https://github.com/cliffano/repomaestro/workflows/CI/badge.svg)](https://github.com/cliffano/repomaestro/actions?query=workflow%3ACI)
[![Security Status](https://snyk.io/test/github/cliffano/repomaestro/badge.svg)](https://snyk.io/test/github/cliffano/repomaestro)
[![Dependencies Status](https://img.shields.io/librariesio/release/pypi/repomaestro)](https://libraries.io/github/cliffano/repomaestro)
[![Published Version](https://img.shields.io/pypi/v/repomaestro.svg)](https://pypi.python.org/pypi/repomaestro)
<br/>

Repo Maestro
------------

Repo Maestro is a code repositories configuration file manager.

It fetches repositories data from GitHub, stored in a Repo Maestro configuration file, and then generates output files using Jinja2 templates rendered with the repositories data.

Installation
------------

    pip3 install repomaestro

Usage
-----

Initialise a Repo Maestro configuration file with GitHub repositories data:

    GITHUB_TOKEN=<github_token> repomaestro init --conf-file .repomaestro.yaml --github-id cliffano

Please note that the fetched GitHub repositories data are based on the ones accessible using the provided `GITHUB_TOKEN`, which can include repositories owned by multiple users and orgs.

When `--github-ids` flag is provided, only the repositories owned by the specified user or org will be included in Repo Maestro configuration file.

Generate output file based on a Jinja2 template:

    repomaestro gen --conf-file path/to/.repomaestro.yaml --template-file path/to/some-template.j2 --out-file path/to/some-output.json

Show help guide:

    repomaestro --help

### Templates

Template parameters:

| Parameter | Description |
|-----------|-------------|
| `repos` | Repositories data with repository name as key and map of `git_url`, `homepage`, and `keywords`, as value. |

The `repos` parameter can then be used in Jinja2 templates like this:

```jinja2
{
  "repos": {
    {% for repo_name, repo_data in repos.items() %}
    "{{ repo_name }}": {
      "git_url": "{{ repo_data.git_url }}",
      "homepage": "{{ repo_data.homepage }}",
      "keywords": {{ repo_data.keywords }}
    }{% if not loop.last %},{% endif %}
    {% endfor %}
  }
}
```

Colophon
--------

[Developer's Guide](https://cliffano.github.io/developers_guide.html#python)

Build reports:

* [Lint report](https://cliffano.github.io/repomaestro/lint/pylint/index.html)
* [Code complexity report](https://cliffano.github.io/repomaestro/complexity/wily/index.html)
* [Unit tests report](https://cliffano.github.io/repomaestro/test/pytest/index.html)
* [Test coverage report](https://cliffano.github.io/repomaestro/coverage/coverage/index.html)
* [Integration tests report](https://cliffano.github.io/repomaestro/test-integration/pytest/index.html)
* [API Documentation](https://cliffano.github.io/repomaestro/doc/sphinx/index.html)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cliffano/repomaestro",
    "name": "repomaestro",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "repomaestro, ...",
    "author": "Cliffano Subagio",
    "author_email": "cliffano@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/9b/40/5cb6ad42585b2e6ee91291324050036d91fe8f97e4506df055b6ac72c2b4/repomaestro-1.0.0.tar.gz",
    "platform": null,
    "description": "<img align=\"right\" src=\"https://raw.github.com/cliffano/repomaestro/main/avatar.jpg\" alt=\"Avatar\"/>\n\n[![Build Status](https://github.com/cliffano/repomaestro/workflows/CI/badge.svg)](https://github.com/cliffano/repomaestro/actions?query=workflow%3ACI)\n[![Security Status](https://snyk.io/test/github/cliffano/repomaestro/badge.svg)](https://snyk.io/test/github/cliffano/repomaestro)\n[![Dependencies Status](https://img.shields.io/librariesio/release/pypi/repomaestro)](https://libraries.io/github/cliffano/repomaestro)\n[![Published Version](https://img.shields.io/pypi/v/repomaestro.svg)](https://pypi.python.org/pypi/repomaestro)\n<br/>\n\nRepo Maestro\n------------\n\nRepo Maestro is a code repositories configuration file manager.\n\nIt fetches repositories data from GitHub, stored in a Repo Maestro configuration file, and then generates output files using Jinja2 templates rendered with the repositories data.\n\nInstallation\n------------\n\n    pip3 install repomaestro\n\nUsage\n-----\n\nInitialise a Repo Maestro configuration file with GitHub repositories data:\n\n    GITHUB_TOKEN=<github_token> repomaestro init --conf-file .repomaestro.yaml --github-id cliffano\n\nPlease note that the fetched GitHub repositories data are based on the ones accessible using the provided `GITHUB_TOKEN`, which can include repositories owned by multiple users and orgs.\n\nWhen `--github-ids` flag is provided, only the repositories owned by the specified user or org will be included in Repo Maestro configuration file.\n\nGenerate output file based on a Jinja2 template:\n\n    repomaestro gen --conf-file path/to/.repomaestro.yaml --template-file path/to/some-template.j2 --out-file path/to/some-output.json\n\nShow help guide:\n\n    repomaestro --help\n\n### Templates\n\nTemplate parameters:\n\n| Parameter | Description |\n|-----------|-------------|\n| `repos` | Repositories data with repository name as key and map of `git_url`, `homepage`, and `keywords`, as value. |\n\nThe `repos` parameter can then be used in Jinja2 templates like this:\n\n```jinja2\n{\n  \"repos\": {\n    {% for repo_name, repo_data in repos.items() %}\n    \"{{ repo_name }}\": {\n      \"git_url\": \"{{ repo_data.git_url }}\",\n      \"homepage\": \"{{ repo_data.homepage }}\",\n      \"keywords\": {{ repo_data.keywords }}\n    }{% if not loop.last %},{% endif %}\n    {% endfor %}\n  }\n}\n```\n\nColophon\n--------\n\n[Developer's Guide](https://cliffano.github.io/developers_guide.html#python)\n\nBuild reports:\n\n* [Lint report](https://cliffano.github.io/repomaestro/lint/pylint/index.html)\n* [Code complexity report](https://cliffano.github.io/repomaestro/complexity/wily/index.html)\n* [Unit tests report](https://cliffano.github.io/repomaestro/test/pytest/index.html)\n* [Test coverage report](https://cliffano.github.io/repomaestro/coverage/coverage/index.html)\n* [Integration tests report](https://cliffano.github.io/repomaestro/test-integration/pytest/index.html)\n* [API Documentation](https://cliffano.github.io/repomaestro/doc/sphinx/index.html)\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Code repositories conductor",
    "version": "1.0.0",
    "project_urls": {
        "Documentation": "https://github.com/cliffano/repomaestro",
        "Homepage": "https://github.com/cliffano/repomaestro",
        "Repository": "https://github.com/cliffano/repomaestro"
    },
    "split_keywords": [
        "repomaestro",
        " ..."
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3045c98dfe304d787a40d0926ef365ca9a367e198534f05018230da0fa6f970f",
                "md5": "0dcfc2a9c2bde2ae8599bece0245c751",
                "sha256": "e409a105744c067cae9bb574d087cf4ff00663e22bb4fa8d866a2b3a54b66645"
            },
            "downloads": -1,
            "filename": "repomaestro-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0dcfc2a9c2bde2ae8599bece0245c751",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 9613,
            "upload_time": "2025-01-06T22:46:23",
            "upload_time_iso_8601": "2025-01-06T22:46:23.504344Z",
            "url": "https://files.pythonhosted.org/packages/30/45/c98dfe304d787a40d0926ef365ca9a367e198534f05018230da0fa6f970f/repomaestro-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b405cb6ad42585b2e6ee91291324050036d91fe8f97e4506df055b6ac72c2b4",
                "md5": "3d48b2936bc7927cc866ac4e4b11864c",
                "sha256": "773ee543a75c56b2046ef6a8249a81f9cce76422af015bf498cd7377795baead"
            },
            "downloads": -1,
            "filename": "repomaestro-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3d48b2936bc7927cc866ac4e4b11864c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 8065,
            "upload_time": "2025-01-06T22:46:25",
            "upload_time_iso_8601": "2025-01-06T22:46:25.822803Z",
            "url": "https://files.pythonhosted.org/packages/9b/40/5cb6ad42585b2e6ee91291324050036d91fe8f97e4506df055b6ac72c2b4/repomaestro-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-06 22:46:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cliffano",
    "github_project": "repomaestro",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "repomaestro"
}
        
Elapsed time: 0.39626s