{"id":19606286,"url":"https://github.com/thorgate/tg-hammer","last_synced_at":"2025-04-27T19:32:57.539Z","repository":{"id":57474978,"uuid":"47954869","full_name":"thorgate/tg-hammer","owner":"thorgate","description":"Helpers for fabric based deployments.","archived":false,"fork":false,"pushed_at":"2020-01-21T12:12:52.000Z","size":156,"stargazers_count":5,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T20:37:37.789Z","etag":null,"topics":["fabric","vcs"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thorgate.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}},"created_at":"2015-12-14T05:54:41.000Z","updated_at":"2020-01-21T12:12:43.000Z","dependencies_parsed_at":"2022-09-10T02:23:25.795Z","dependency_job_id":null,"html_url":"https://github.com/thorgate/tg-hammer","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorgate%2Ftg-hammer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorgate%2Ftg-hammer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorgate%2Ftg-hammer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorgate%2Ftg-hammer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thorgate","download_url":"https://codeload.github.com/thorgate/tg-hammer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251196338,"owners_count":21550941,"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":["fabric","vcs"],"created_at":"2024-11-11T10:04:09.295Z","updated_at":"2025-04-27T19:32:57.215Z","avatar_url":"https://github.com/thorgate.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tg-hammer\n\n[![Build Status](https://travis-ci.org/thorgate/tg-hammer.svg?branch=master)](https://travis-ci.org/thorgate/tg-hammer)\n[![PyPI version](https://badge.fury.io/py/tg-hammer.svg)](https://badge.fury.io/py/tg-hammer)\n\nHelpers for fabric based deployments.\n\n## Quickstart\n\nInstall tg-hammer::\n\n    pip install tg-hammer\n\n## Features\n\nSee the documentation for detailed information.\nhttps://tg-hammer.readthedocs.org\n\n### VCS\n\nHammer provides unified helper api for both git and Mercurial\nbased projects. It can automatically detect which version control\nsystem to use based on the current project (by inspecting project_root).\n\n### Services\n\nHammer contains management helpers for the following unix service daemon utilities:\n\n - upstart\n - systemd\n - supervisor\n\n## Testing\n\nHammer includes functional tests that are executed inside Docker containers. The file\n`run-tests.sh` executes three `docker-compose` commands that first brings up a slave server,\nthen a master server which executes the tests during building, and brings both of these down\nafter execution. The master acts as the developer machine and the slave as the server\nwhere deployments are run on.\n\nTo run the tests manually, first comment out the line:\n\n    py.test\n\nand uncomment the line\n\n    # tail -f /dev/null\n\ninside `docker-entrypoint-master.sh`. This will keep both the master and slave running when\nyou execute\n\n    docker-compose up --build\n\nNow you can enter a `bash` shell inside the master by executing:\n\n    docker exec -it tghammer_master /bin/bash\n\nAt this point you can simply execute\n\n    py.test\n\nto run the tests.\n\nEither method of running the tests will print tons of output and will (hopefully) result in all tests\npassing. Sadly it is not possible to use `py.test` capturing to reduce the amount of spam because\nthis program is not compatible with `fabric`'s internal capturing logic.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthorgate%2Ftg-hammer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthorgate%2Ftg-hammer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthorgate%2Ftg-hammer/lists"}