{"id":21940007,"url":"https://github.com/arthursudbrackibarra/github-repo-creator","last_synced_at":"2025-10-06T17:03:42.706Z","repository":{"id":37794897,"uuid":"499349512","full_name":"ArthurSudbrackIbarra/GitHub-Repo-Creator","owner":"ArthurSudbrackIbarra","description":"Automatically create GitHub repositories using YAML templates.","archived":false,"fork":false,"pushed_at":"2022-07-10T16:52:54.000Z","size":207,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T16:22:26.096Z","etag":null,"topics":["automation","github","infrastructure-as-code","python","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArthurSudbrackIbarra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-03T01:59:28.000Z","updated_at":"2024-06-18T14:31:14.000Z","dependencies_parsed_at":"2022-06-23T17:24:03.581Z","dependency_job_id":null,"html_url":"https://github.com/ArthurSudbrackIbarra/GitHub-Repo-Creator","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSudbrackIbarra%2FGitHub-Repo-Creator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSudbrackIbarra%2FGitHub-Repo-Creator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSudbrackIbarra%2FGitHub-Repo-Creator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArthurSudbrackIbarra%2FGitHub-Repo-Creator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArthurSudbrackIbarra","download_url":"https://codeload.github.com/ArthurSudbrackIbarra/GitHub-Repo-Creator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250264973,"owners_count":21402013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","github","infrastructure-as-code","python","yaml"],"created_at":"2024-11-29T02:28:26.316Z","updated_at":"2025-10-06T17:03:37.423Z","avatar_url":"https://github.com/ArthurSudbrackIbarra.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eGitHub Repository Creator (GRC)\u003c/h1\u003e\n\n\u003cbr/\u003e\nGRC is a tool to automatically create and manage GitHub repositories using YAML templates. It comes with a CLI (Command Line Interface) that you can use to execute commands.\n\u003cbr/\u003e\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://media.giphy.com/media/QsRN3q7lypKitwzV8R/giphy.gif\"\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\n## Table of Contents\n\n- [Visual Studio Code Extension](#visual-studio-code-extension)\n- [CLI Commands](#cli-commands)\n- [Installation (Windows)](#installation-windows)\n- [Installation (Linux)](#installation-linux)\n- [Installation (MacOS)](#installation-macos)\n\n## Visual Studio Code Extension\n\nIf you don't like using the command line, GRC also has a [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=ArthurSudbrackIbarra.grc\u0026ssr=false#user-content-requirements), which creates an abstraction on top of the GRC commands for you. Although more limited, it is a great option for people who don't want to memorize all the CLI commands.\n\n| GRC Version | Compatible GRC Extension Version |\n| :---------: | :------------------------------: |\n|   v3.0.1    |              v0.0.1              |\n|   v3.0.2    |              v0.0.2              |\n|   v3.0.3    |              v0.0.3              |\n|   v3.0.4    |              v0.0.4              |\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/69170322/177070202-29ee23fc-f66b-4798-b8ee-51cb859ce631.png\"\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\n## CLI Commands\n\nIn the next sections, all the possible GRC commands will be listed and explained.\n\n### General Commands\n\nGeneral commands have no prefix, they are used directly after 'grc'. Example: grc version.\n\n- [help](#help)\n- [version](#version)\n- [update](#update)\n- [authenticate](#authenticate)\n- [user](#user)\n\n### Template Commands\n\nTemplate commands have the 'temp' prefix. Example: grc **temp** list.\n\n- [apply](#temp-apply)\n- [save](#temp-save)\n- [list](#temp-list)\n- [get](#temp-get)\n- [choose](#temp-choose)\n- [delete](#temp-delete)\n- [generate](#temp-generate)\n- [merge](#temp-merge)\n\n### Repositories Commands\n\nRepositories commands have the 'repo' prefix. Example: grc **repo** list. These commands apply to the **LOCAL repositories created with GRC**.\n\n- [list](#repo-list)\n- [open](#repo-open)\n- [get](#repo-get)\n- [remove](#repo-remove)\n\n### Remote Repositories Commands\n\nRemote repositories commands have the 'remote' prefix. Example: grc **remote** list. These commands apply to **your REMOTE repositories on GitHub**.\n\n- [list](#remote-list)\n- [add-collab](#remote-add-collab)\n- [clone](#remote-clone)\n- [url](#remote-url)\n\n## Help\n\nThe 'help' command gives you orientation about what GRC is and how to use its commands.\n\n```sh\n# Usage:\ngrc help\n```\n\n## Version\n\nThe 'version' command shows you the GRC version that you are currently using.\n\n```sh\n# Usage:\ngrc version\n```\n\n## Update\n\nThe 'update' command automatically installs the latest GRC version in case you're still not using it.\n\n```sh\n# Usage:\ngrc update\n```\n\n## Authenticate\n\nThe 'authenticate' command is used so you can authenticate to GitHub and create repositories in your account. This is the **first command** you need to execute in order to start using GRC.\n\n```sh\n# Usage:\ngrc authenticate \u003cACCESS_TOKEN\u003e\n\n# Example:\ngrc authenticate ghp_3dh39j39874hs3d8PSBSHksbsbtx\n```\n\nBefore running the command, you will need to generate a personal access token in GitHub if you don't have one yet. More on how to do that [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token), make sure to check the 'repo' permission box when creating your token.\n\n## User\n\nThe 'user' command shows information about the current authenticated user.\n\n```sh\n# Usage:\ngrc user\n```\n\n## (Temp) Apply\n\nThe 'apply' command creates a repository for you based on a YAML file that is passed as a parameter. The YAML file contains information about the repository you want to create and must follow the patterns defined in the [templates](https://github.com/ArthurSudbrackIbarra/GitHub-Repo-Creator/tree/main/templates).\n\n**File:** my-template.yaml\n\n```yaml\nname: \"My-Repository\"\ndescription: \"This is my repository!\"\nprivate: true\nincludeContent: false\n\ncollaborators:\n  - collaborator:\n      name: \"brun0-znx\"\n      permission: \"admin\"\n  - collaborator:\n      name: \"Miguel-de-Castro\"\n      permission: \"push\"\n```\n\n```sh\n# Usage:\ngrc temp apply \u003cPATH_TO_YOUR_YAML_FILE\u003e\n\n# Example:\ngrc temp apply ./my-template.yaml\n```\n\n## (Temp) Save\n\nThe 'save' command is used to save a YAML file to your templates, so that you can later use it to create another repository with the same configurations but with a different repository name/description without having to specify the file path again.\n\n```sh\n# Usage:\ngrc temp save \u003cPATH_TO_YOUR_YAML_FILE\u003e\n\n# Example:\ngrc temp save ./my-template.yaml\n```\n\n## (Temp) List\n\nThe 'list' command lists all the templates that are saved in your machine.\n\n```sh\n# Usage:\ngrc temp list\n```\n\n## (Temp) Get\n\nThe 'get' command shows the content of a template that is saved in your machine.\n\n```sh\n# Usage:\ngrc temp get \u003cTEMPLATE_NAME\u003e\n\n# Example:\ngrc temp get my-template # Or...\ngrc temp get my-template.yaml\n```\n\n## (Temp) Choose\n\nThe 'choose' command lets you choose a file from your saved templates to create a repository based on it. When selecting a template, you have the option to use a different repository name/description than the one specified in the template file.\n\n```sh\n# Usage:\ngrc temp choose # Or...\ngrc temp choose \u003cTEMPLATE_NAME\u003e\n\n# Example:\ngrc temp choose # Will show an enumerated list with the possible template options.\n\ngrc temp choose my-template # Will directly choose the template called \"my-template\".\n\n# Options:\n\n# -p, --private (true or false):\ngrc temp choose my-template --private true # Overrides the 'private' field.\n\n# -i, --include_content (true or false):\ngrc temp choose my-template --include_content false # Overrides the 'includeContent' field.\n```\n\n## (Temp) Edit\n\nThe 'edit' command opens a text editor and lets you edit one of your saved templates. If you have [VSCode](https://code.visualstudio.com) installed in your computer, then it is used. If you don't, then a native text editor is used.\n\n```sh\n# Usage:\ngrc temp edit \u003cTEMPLATE_NAME\u003e\n\n# Example:\ngrc temp edit my-template # Or...\ngrc temp edit my-template.yaml\n```\n\n## (Temp) Delete\n\nThe 'delete' command is used to delete a template from your saved templates.\n\n```sh\n# Usage:\ngrc temp delete \u003cTEMPLATE_NAME\u003e\n\n# Examples:\ngrc temp delete my-template # Or...\ngrc temp delete my-template.yaml\n\ngrc temp delete all # Will delete all your templates.\n```\n\n## (Temp) Generate\n\nThe 'generate' command will ask you to input information, such as the repository name and collaborators, and then will generate and save an YAML template for you.\n\n```sh\n# Usage:\ngrc temp generate\n```\n\n## (Temp) Merge\n\nThe 'merge' command takes _N_ template names as a parameter and produces a new template joining the collaborators of all the templates inputed. In case some fields conflict, you will be asked to choose which values you want to keep.\n\n```sh\n# Usage:\ngrc temp merge \u003cTEMPLATE_NAME\u003e \u003cTEMPLATE_NAME\u003e ...\ngrc temp merge a b c d e f g ... # N number of templates.\n\n# Example:\ngrc temp merge my-template-1 my-template-2\n\n# Options:\n\n# -o, --output_file_name (the name of the generated template).\n# -i, --ignore_conflicts (will use the values of the first template).\ngrc temp merge temp-1 temp-2 -o merged-temp --ignore_conflicts\n```\n\n## (Repo) List\n\nThe 'list' command will list the name of all the repositories that you have created with GRC.\n\n```sh\n# Usage:\ngrc repo list\n```\n\n## (Repo) Open\n\nThe 'open' command takes the name of a repository that you have created with GRC and opens the repository folder in Visual Studio Code.\n\n```sh\n# Usage:\ngrc repo open \u003cREPOSITORY_NAME\u003e\n\n# Example:\ngrc repo open my-repository\n```\n\n## (Repo) Get\n\nThe 'get' command shows you some information about a repository that was created with GRC.\n\n```sh\n# Usage:\ngrc repo get \u003cREPOSITORY_NAME\u003e\n\n# Example:\ngrc repo get my-repository\n```\n\n## (Repo) Remove\n\nThe 'remove' commands removes a repository from your repositories list.\n\n```sh\n# Usage:\ngrc repo remove \u003cREPOSITORY_NAME\u003e\n\n# Example:\ngrc repo remove my-repository\n\ngrc repo remove all # Removes all your repositories.\n```\n\n## (Remote) List\n\nThe 'list' command lists all the repositories in your GitHub account.\n\n```sh\n# Usage:\ngrc remote list\n```\n\n## (Remote) add-collab\n\nThe 'add-collab' command adds a collaborator to one of your remote repositories.\n\n```sh\n# Usage:\ngrc remote add-collab \u003cREPO_NAME\u003e \u003cCOLLABORATOR_NAME\u003e \u003cPERMISSION?\u003e\n\n# Examples:\ngrc remote add-collab My-Repository Arthur admin # Or...\ngrc remote add-collab My-Repository Arthur # Default permission is 'admin'.\n\n# Permissions = [admin, pull, push].\n```\n\n## (Remote) Clone\n\nThe 'clone' command clones one of your remote repositories on GitHub to your machine.\n\n```sh\n# Usage:\ngrc remote clone \u003cREPO_NAME\u003e\n\n# Example:\ngrc remote clone My-Repository\n```\n\n## (Remote) URL\n\nThe 'url' command shows you the web URL of a personal repository on GitHub.\n\n```sh\n# Usage:\ngrc remote url \u003cREPO_NAME\u003e\n\n# Example:\ngrc remote url My-Repository\n```\n\n## Requirements\n\nIn order to use GRC, you must have the following tools installed in your machine:\n\n- [Python 3](https://www.python.org/downloads/)\n- [Git](https://git-scm.com/downloads)\n- (Optional, but recommended) [Visual Studio Code](https://code.visualstudio.com)\n\n## Installation (Windows)\n\nOpen a **Powershell** terminal and run this command:\n\n```ps1\niex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/ArthurSudbrackIbarra/GitHub-Repo-Creator/main/grc-install-windows.ps1'))\n```\n\n## Installation (Linux)\n\nOpen a terminal and run the command below, you will be asked to enter your sudo password:\n\n```sh\nsudo -- sh -c 'wget https://raw.githubusercontent.com/ArthurSudbrackIbarra/GitHub-Repo-Creator/main/grc-install-linux.sh \u0026\u0026 bash grc-install-linux.sh \u0026\u0026 rm -f grc-install-linux.sh'\n```\n\n## Installation (MacOS)\n\nOpen a terminal and run the command below, you will be asked to enter your sudo password:\n\n```sh\nsudo -- sh -c 'curl https://raw.githubusercontent.com/ArthurSudbrackIbarra/GitHub-Repo-Creator/main/grc-install-macos.sh -O \u0026\u0026 bash grc-install-macos.sh \u0026\u0026 rm -f grc-install-macos.sh'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthursudbrackibarra%2Fgithub-repo-creator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farthursudbrackibarra%2Fgithub-repo-creator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthursudbrackibarra%2Fgithub-repo-creator/lists"}