{"id":19323453,"url":"https://github.com/nerdvegas/gitch","last_synced_at":"2025-02-24T05:43:17.817Z","repository":{"id":146798680,"uuid":"267220890","full_name":"nerdvegas/gitch","owner":"nerdvegas","description":"Sync github release notes with your project's CHANGELOG.md","archived":false,"fork":false,"pushed_at":"2020-06-04T04:56:52.000Z","size":20,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-06T06:12:32.943Z","etag":null,"topics":["changelog","github","github-releases","release","release-automation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nerdvegas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-27T04:30:55.000Z","updated_at":"2021-01-29T13:58:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef99e617-c4dc-4722-94ea-06844f80ba0e","html_url":"https://github.com/nerdvegas/gitch","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdvegas%2Fgitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdvegas%2Fgitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdvegas%2Fgitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nerdvegas%2Fgitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nerdvegas","download_url":"https://codeload.github.com/nerdvegas/gitch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240427142,"owners_count":19799466,"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":["changelog","github","github-releases","release","release-automation"],"created_at":"2024-11-10T01:46:26.739Z","updated_at":"2025-02-24T05:43:17.809Z","avatar_url":"https://github.com/nerdvegas.png","language":"Python","readme":"# gitch\n\nGitch takes entries from your `CHANGELOG.md`, and converts them into\n[Github releases](https://help.github.com/en/github/administering-a-repository/managing-releases-in-a-repository).\n_How_ you create your changelog is of no interest to gitch.\n\n# Install\n\n```\n]$ pip install gitch\n```\n\n# Configure\n\nYou will first need to [create a github personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line).\nYou will need to give your access token `repo` scope.\n\nThen, tell gitch about it like so:\n\n```\n]$ export GITCH_GITHUB_TOKEN=\u003ctoken\u003e\n```\n\n# Usage\n\nConsider a `CHANGELOG.md` like so:\n\n```\n# Changelog\n\n## v2.60.1 (2020-05-23)\n\n**Merged pull requests:**\n\n- did a thing to a thing.\n\n## v2.60.0 (2020-05-12)\n\n**Closed issues:**\n\n- fixed some other thing that was fooing too much.\n```\n\nThe `gitch` tool will assume that the _first token in each H2 header_ identifies\na tag in your github repository (in the example above, these are `v2.60.1` and\n`v2.60.0`). It will then simply create github releases that match these tags. The\nactual content within each tag section is copied verbatim into the release notes.\n\nNote that releases will not be created unless the matching tag exists at the\nremote (ie on github). This is to avoid typos in your changelog creating spurious\ntags in your repository.\n\n```\n]$ gitch --all\ngitch INFO Syncing 'v2.60.1' to github...\ngitch INFO 'v2.60.1' synced, see https://github.com/jbloggs/foo/releases/tag/v2.60.1\ngitch INFO Syncing 'v2.60.0' to github...\ngitch WARNING Tag 'v2.60.0' does not exist at the remote\n\n1 changelog entries pushed to github\n```\n\n## Examples\n\nTo list the entries (ie tags) present in your changelog:\n\n```\n]$ gitch -l\n```\n\nTo sync the latest changelog entry to github releases:\n\n```\n]$ gitch\n```\n\nTo sync a specific changelog entry to github releases:\n\n```\n]$ gitch \u003ctag\u003e\n```\n\nTo overwrite a github release (this does not happen by default):\n\n```\n]$ gitch \u003ctag\u003e --overwrite\n```\n\nTo sync an entire changelog to github (ie create all associated releases):\n\n```\n]$ gitch --all\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdvegas%2Fgitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnerdvegas%2Fgitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerdvegas%2Fgitch/lists"}