{"id":28393148,"url":"https://github.com/krateoplatformops/git-provider","last_synced_at":"2026-05-10T03:40:09.118Z","repository":{"id":241870702,"uuid":"595521692","full_name":"krateoplatformops/git-provider","owner":"krateoplatformops","description":"Krateo PlatformOps Git Provider","archived":false,"fork":false,"pushed_at":"2025-01-21T14:08:49.000Z","size":277,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-01T02:36:56.976Z","etag":null,"topics":["controller","git","golang","krateo","krateo-v2","kubernetes","provider"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krateoplatformops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-31T08:55:07.000Z","updated_at":"2025-01-21T14:07:38.000Z","dependencies_parsed_at":"2024-05-30T12:31:10.972Z","dependency_job_id":"540a1b60-3348-459f-ba35-75f99197ac90","html_url":"https://github.com/krateoplatformops/git-provider","commit_stats":null,"previous_names":["krateoplatformops/git-provider"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/krateoplatformops/git-provider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krateoplatformops%2Fgit-provider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krateoplatformops%2Fgit-provider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krateoplatformops%2Fgit-provider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krateoplatformops%2Fgit-provider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krateoplatformops","download_url":"https://codeload.github.com/krateoplatformops/git-provider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krateoplatformops%2Fgit-provider/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262022031,"owners_count":23246236,"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":["controller","git","golang","krateo","krateo-v2","kubernetes","provider"],"created_at":"2025-05-31T15:38:25.816Z","updated_at":"2026-05-10T03:40:09.100Z","avatar_url":"https://github.com/krateoplatformops.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git Provider\n\nThis is a [Krateo](https://krateo.io) Provider that clones git repositories (eventually applying templates).\n\n## Summary\n\n- [Summary](#summary)\n- [Overview](#overview)\n- [Examples](#examples)\n- [Configuration](#configuration)\n  \n\n## Overview\n\nGit Provider clones git repositories and may apply [Mustache templates](https://mustache.github.io). It then pushes the cloned and modified repository to a different location. The templating values are retrieved in a configmap referenced in the custom resource. \nIt provides automatic reconciliation when changes are retrieved from the original repository.\n\nGit Provider leverages Krateo [provider-runtime](https://docs.krateo.io/key-concepts/kco/#provider-runtime) a production-grade version of the controller-runtime. \n\n## Examples\n\n### Provider Installation\n\n```bash\n$ helm repo add krateo https://charts.krateo.io\n$ helm repo update krateo\n$ helm install git-provider krateo/git-provider\n```\n\n### Manifest Application\n\nAs a first step, you need to create a [`kind: Repo` Manifest](#repo-manifest) as shown below and a [ConfigMap](#configmap-manifest) which will contain the templating values.\n\n### File Templating\n`git-provider` uses the Mustache library ([see custom delimiter reference](https://github.com/janl/mustache.js/?tab=readme-ov-file#setting-in-templates)) to apply templating. Therefore, you need to specify the custom delimiter you want to use in the first line of the file you want to template. You can see an example [here](https://github.com/krateoplatformops/krateo-v2-template-fireworksapp/blob/5dee9fe1d2de3785eb7e6374ad50e3f8e7b12907/skeleton/chart/values.yaml#L1C1-L1C14).\n\n### File Name Templating\nIf you need to template the filename of a file, you can only use the delimiters `{{ }}` (e.g., `{{ your-prop }}.yaml`).\n\n#### Repo Manifest\n```yaml\napiVersion: git.krateo.io/v1alpha1\nkind: Repo\nmetadata:\n  name: test-repo\nspec:\n  enableUpdate: false\n  configMapKeyRef:\n    key: values\n    name: filename-replace-values\n    namespace: default\n  fromRepo:\n    authMethod: generic\n    branch: main\n    path: skeleton\n    usernameRef:\n      key: username\n      name: git-username\n      namespace: default\n    secretRef:\n      key: token\n      name: git-secret\n      namespace: default\n    url: https://github.com/your-organization/fromRepo\n  toRepo:\n    authMethod: generic\n    branch: main\n    cloneFromBranch: main\n    path: /\n    secretRef:\n      key: token\n      name: git-secret\n      namespace: default\n    usernameRef:\n      key: username\n      name: git-username\n      namespace: default\n    url: https://github.com/your-organization/toRepo\n  unsupportedCapabilities: true\n```\n\n#### Configmap Manifest\n```yaml \napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: filename-replace-values\ndata:\n  values: |\n    { \n      \"organizationName\": \"krateo\",\n      \"repositoryName\": \"testfilename\",\n      \"serviceType\": \"type\",\n      \"servicePort\": \"8080\",\n      \"testTemplate\": \"tplKrateo\"\n    }\n```\n\n\n## Environment Variables\n\n| Environment Variable | Type | Default Value | Description |\n|---------------------|------|---------------|-------------|\n| `GIT_PROVIDER_DEBUG` | bool | `false` | Run with debug logging |\n| `GIT_PROVIDER_SYNC_PERIOD` | duration | `1h` | Controller manager sync period (e.g., 300ms, 1.5h, or 2h45m) |\n| `GIT_PROVIDER_POLL_INTERVAL` | duration | `2m` | Poll interval controls how often an individual resource should be checked for drift |\n| `GIT_PROVIDER_MAX_RECONCILE_RATE` | int | `5` | The number of concurrent reconciles for each controller. Maximum number of resources that can be reconciled at the same time |\n| `GIT_PROVIDER_LEADER_ELECTION` | bool | `false` | Use leader election for the controller manager |\n| `GIT_PROVIDER_MAX_ERROR_RETRY_INTERVAL` | duration | `1m` | The maximum interval between retries when an error occurs. Should be less than half of the poll interval |\n| `GIT_PROVIDER_MIN_ERROR_RETRY_INTERVAL` | duration | `1s` | The minimum interval between retries when an error occurs. Should be less than max-error-retry-interval |\n| `GIT_PROVIDER_TIMEOUT` | duration | `4m` | The timeout time for each action. |\n\n## Configuration\nTo view the CR configuration visit [this link](https://doc.crds.dev/github.com/krateoplatformops/git-provider).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrateoplatformops%2Fgit-provider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrateoplatformops%2Fgit-provider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrateoplatformops%2Fgit-provider/lists"}