{"id":47681036,"url":"https://github.com/cego/gitte","last_synced_at":"2026-04-02T13:59:32.769Z","repository":{"id":37703407,"uuid":"471781263","full_name":"cego/gitte","owner":"cego","description":"Git automation and action execution across a list of projects","archived":false,"fork":false,"pushed_at":"2026-03-30T18:04:25.000Z","size":132310,"stargazers_count":10,"open_issues_count":21,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-30T20:08:00.163Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/cego.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-19T18:33:02.000Z","updated_at":"2025-04-30T07:49:47.000Z","dependencies_parsed_at":"2024-01-27T21:24:29.809Z","dependency_job_id":"d807f665-a3e8-4b17-91a8-ec0a99342a2d","html_url":"https://github.com/cego/gitte","commit_stats":{"total_commits":181,"total_committers":8,"mean_commits":22.625,"dds":"0.47513812154696133","last_synced_commit":"84cdd62d5d62aa8f8f42c1ed35af91fe80a6eb74"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/cego/gitte","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cego%2Fgitte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cego%2Fgitte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cego%2Fgitte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cego%2Fgitte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cego","download_url":"https://codeload.github.com/cego/gitte/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cego%2Fgitte/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-04-02T13:59:32.172Z","updated_at":"2026-04-02T13:59:32.764Z","avatar_url":"https://github.com/cego.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitte\n\n[![quality](https://img.shields.io/github/actions/workflow/status/cego/gitte/quality.yml?branch=main)](https://github.com/cego/gitte/actions)\n[![license](https://img.shields.io/github/license/cego/gitte)](https://npmjs.org/package/gitte)\n[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=cego_gitte\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=cego_gitte)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=cego_gitte\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=cego_gitte)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=cego_gitte\u0026metric=code_smells)](https://sonarcloud.io/dashboard?id=cego_gitte)\n\nTool to help keep a range of projects up to date with git version control, and also help execute commands and scripts across projects. For configuration options please refer to [config documentation](./docs/config.md).\n\n# Installation\n\n## Install using npm\n\nRequires npm and node version 16 or higher.\n\n```\nnpm install -g @cego/gitte\n```\n\n### Linux based on Debian\n\nUsers of Debian-based distributions should prefer the [the Deb822 format][deb822], installed with:\n\n```bash\nsudo wget -O /etc/apt/sources.list.d/gitte.sources https://gitte-ppa.cego.dk/gitte.sources\nsudo apt-get update\nsudo apt-get install gitte\n```\n\n[deb822]: https://repolib.readthedocs.io/en/latest/deb822-format.html#deb822-format\n\nIf your distribution does not support this, you can run these commands:\n\n```bash\ncurl -s \"https://gitte-ppa.cego.dk/pubkey.gpg\" | sudo apt-key add -\necho \"deb https://gitte-ppa.cego.dk ./\" | sudo tee /etc/apt/sources.list.d/gitte.list\nsudo apt-get update\nsudo apt-get install gitte\n```\n\nNote that the path `/etc/apt/sources.list.d/gitte.list` is used in the file `gitte.list`.\nIf you change it in these commands you must also change it in `/etc/apt/sources.list.d/gitte.list`.\n\n# Basic usage\n\nIn a terminal in a folder with a gitte configuration, or a subfolder thereof, run:\n\n```\n$ gitte run \u003cactions\u003e \u003cgroups\u003e [projects]`\n```\n\nGitte will then do the following\n\n1. Run all specified startup checks. If any fail, exit.\n2. Try to update all projects with git pull. Will inform the user if update is not possible. Gitte should never overwrite local changes.\n3. Execute the desired action with the given group. The optional project parameter can be used to limit the projects the action and group will run in.\n\n\u003e An optional option `--auto-merge` can be supplied, that will automatically merge origin/\u003cdefault_branch\u003e into each project, if you are on a non-default branch without local changes or conflicts. This can also be set by the env variable `GITTE_AUTO_MERGE=true`.\n\nIf configured, gitte is able to switch automatically between groups. Switching between groups involve downing all other groups than specified, then upping the specified group.\n\n```\n$ gitte switch \u003cgroup\u003e\n```\n\n## Wildcards and lists\n\nAll three parameters support the wildcard '\\*' which will run all action, groups or projects. For example one might want to run all actions in all groups, which can be accomplished with\n\n```\ngitte run '*' '*'\n```\n\nIf you want to specify multiple actions, groups or project, please use the `+` operator.\n\n```\ngitte run build+deploy example.com\n```\n\n## Disabling projects\n\nIt is possible to disable projects completely. This can be done using the `toggle` command.\n\nTo see a current list of enabled/disabled projects:\n\n`gitte toggle`\n\nTo toggle a project:\n\n`gitte toggle \u003cproject\u003e`\n\nTo reset to default state:\n\n`gitte toggle reset`\n\n## Other commands\n\nFor other usage, such as running startup, git operations or actions seperately, please refer to [commands documentation](./docs/commands.md), or see `gitte --help`.\n\n## Override and exclude projects\n\nIf the file `.gitte-override.yml` exist in the same folder as `.gitte.yml` or `.gitte-env` it will automatically be merged.\n\nIf the file `.gitte-projects-disable` exist, projects, seperated by a newline, will be excluded from gitte.\n\n## Environment variables\n\n### GITTE_AUTO_MERGE\n\nDefault: false\n\nGitte will automatically merge default branch into custom branches if this is set to true.\n\n### GITTE_CWD\n\nDefault: cwd of the current process\n\nGitte will use this as the current working directory.\n\n### GITTE_NO_NEEDS\n\nDefault: false (false = needs are enabled)\n\nIgnore dependencies.\n\n### GITTE_MAX_TASK_PARALLELIZATION\n\nDefault: CPU/2\n\nSet this to limit the number of parallel processes when running tasks.\n\n## How to publish debian packages to [gitte-ppa.cego.dk](gitte-ppa.cego.dk)\n\nRun `./publish-os-packages` and upload the ppa/ppa.zip file to cego's cloudflare pages\n\nA gpg signing key is needed to sign the debian packages.\n\n## How to publish npmjs.com\n\nRun `npm publish` to upload to npmjs.com\n\nYou need proper permissions in the `@cego` organization on [npmjs.com](npmjs.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcego%2Fgitte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcego%2Fgitte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcego%2Fgitte/lists"}