{"id":15598374,"url":"https://github.com/fluffynuts/git-broadcast","last_synced_at":"2025-08-21T01:17:07.409Z","repository":{"id":38448979,"uuid":"267338620","full_name":"fluffynuts/git-broadcast","owner":"fluffynuts","description":"Utility to merge outwards from one branch to all others, where cleanly possible","archived":false,"fork":false,"pushed_at":"2025-07-31T15:00:46.000Z","size":1299,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-09T07:04:57.895Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/fluffynuts.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}},"created_at":"2020-05-27T14:17:16.000Z","updated_at":"2025-07-31T15:00:47.000Z","dependencies_parsed_at":"2024-11-10T05:22:47.222Z","dependency_job_id":"40472ff9-3b42-4cf9-9b6b-b2d889f39d18","html_url":"https://github.com/fluffynuts/git-broadcast","commit_stats":null,"previous_names":["fluffynuts/git-infect"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/fluffynuts/git-broadcast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fgit-broadcast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fgit-broadcast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fgit-broadcast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fgit-broadcast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluffynuts","download_url":"https://codeload.github.com/fluffynuts/git-broadcast/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fgit-broadcast/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271411730,"owners_count":24755000,"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","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-10-03T01:38:34.958Z","updated_at":"2025-08-21T01:17:07.404Z","avatar_url":"https://github.com/fluffynuts.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git-broadcast\n\nUtility to merge outwards from one branch to all others, where cleanly possible\n\n## Usage\nRun via `npx`, eg `npx -y git-broadcast`\n\n### Commandline options:\nRun `npx -y git-broadcast --help` to get help at the cli. Other options include:\n\n- `-f|--from {branchName}` specify the source branch (default: 'master')\n- `-t|--to {branchName}` specify the target branch(es) (default: '*' - selects all branches except the source)\n- `--ignore-missing-branches` - when a branch explicitly specified at the cli is not found, do not error\n- `-i|--in` - run in the specified folder instead of the current working directory\n- `-v|--verbose` - output more logging info (default: off)\n- `-p|--push` - attempt to push back to the remote after a successful merge (default: on)\n- `--git-user` - specify the username for git\n- `--git-token` - provide an auth token for git\n- `--print-summary` - print a summary at the end, useful for reporting elsewhere (default: off)\n- `--pretty` - enable pretty logging (emoji, formatting with backticks, etc) for forwarding to, eg, slack\n- `--show-version` - show the version of git-broadcast during normal operations\n- `--suppress-log-prefixes` - suppress log prefixes like timestamp and log level for cleaner output\n- `--prefix-logs-with` - prefix all logging with this string, eg your repo name to disambiguate outputs\n- `--ignore` - one or more space-separated branch names to ignore (don't update them), can be specified more than once \n- `--version` - print out the current version of the tool\n- `--help` - get this help in a console\n\n`git-broadcast` will also honor the GIT_BROADCAST_IGNORE_BRANCHES environment variable\nwhich can contain a comma-separated list of branches to always ignore, _in addition to_\nany branches specified with `-i` on the cli.\n\n\n## Configuring at GitHub Actions so you have to merge less into feature branches\n\nSee the example workflow file to have your master branch merged\nout to satellite branches whenever it's updated or satellites\nare updated (just in case a prior run had failed but now could\nbe completed):\n\nNote that the following uses (and pipes through) `slack-webhook-say`\nto provide real-time(-ish) feedback in a slack channel.\n\n```yaml\nname: Broadcast master updates to satellites\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\n\njobs:\n  main:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - uses: actions/setup-node@v2-beta\n      with:\n        node-version: '12'\n    - name: broadcast master changes to satellite branches\n      env:\n        SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}\n        RUN_NUMBER: ${{ github.run_number }}\n      run: |\n        git config --global user.name \"Git Broadcast\"\n        git config --global user.email \"git-broadcast@no-reply.com\"\n        npx slack-webhook-say -m \"Starting Git-Broadcast run #$RUN_NUMBER on $GITHUB_REPOSITORY\"\n        npx git-broadcast@latest --from master --push --pretty --suppress-log-prefixes --prefix-logs-with $GITHUB_REPOSITORY | npx slack-webhook-say --echo\n        npx slack-webhook-say -m \"Git-Broadcust run #$RUN_NUMBER on $GITHUB_REPOSITORY completed\"\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluffynuts%2Fgit-broadcast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluffynuts%2Fgit-broadcast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluffynuts%2Fgit-broadcast/lists"}