{"id":48869353,"url":"https://github.com/0xjuanma/simple-release","last_synced_at":"2026-04-15T20:33:16.205Z","repository":{"id":317546220,"uuid":"1067490113","full_name":"0xjuanma/simple-release","owner":"0xjuanma","description":"Reusable workflows to automatically create GitHub release notes and update changelog file from git tag push","archived":false,"fork":false,"pushed_at":"2026-02-05T02:47:22.000Z","size":1990,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-05T14:54:05.139Z","etag":null,"topics":["git-tag","github-actions","github-release","github-tags","python","release-notes-generator","reusable-workflows","workflow","workflow-automation"],"latest_commit_sha":null,"homepage":"","language":"Python","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/0xjuanma.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-30T23:54:51.000Z","updated_at":"2026-02-05T02:47:25.000Z","dependencies_parsed_at":"2025-10-01T16:32:59.408Z","dependency_job_id":"030b8870-0947-4b5e-86d3-2ca87c19ae89","html_url":"https://github.com/0xjuanma/simple-release","commit_stats":null,"previous_names":["rocajuanma/simple-release","0xjuanma/simple-release"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/0xjuanma/simple-release","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xjuanma%2Fsimple-release","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xjuanma%2Fsimple-release/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xjuanma%2Fsimple-release/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xjuanma%2Fsimple-release/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xjuanma","download_url":"https://codeload.github.com/0xjuanma/simple-release/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xjuanma%2Fsimple-release/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31859485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: 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":["git-tag","github-actions","github-release","github-tags","python","release-notes-generator","reusable-workflows","workflow","workflow-automation"],"created_at":"2026-04-15T20:33:15.446Z","updated_at":"2026-04-15T20:33:16.191Z","avatar_url":"https://github.com/0xjuanma.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/simple-release2.0.png\" alt=\"Simple Release Logo\" width=\"200\"\u003e\n  \u003ch1\u003eSimple Release\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![GitHub release](https://img.shields.io/github/release/0xjuanma/simple-release.svg)](https://github.com/0xjuanma/simple-release/releases)\n\nSpeed up your release process: create a tag to trigger a new GitHub release, automatically update your changelog with release details, and receive a pull request with the latest changelog changes.\n\u003c/div\u003e\n\n## Quick Setup\n\n### 1. Add Release Workflow\n\nCreate `.github/workflows/release.yml`:\n\n```yaml\nname: Release\non:\n  push:\n    tags: ['v*.*.*']\npermissions:\n  contents: write\njobs:\n  release:\n    # Use @main for newest version, or pin to specific version like @v1.0.0\n    uses: 0xjuanma/simple-release/.github/workflows/reusable-release.yml@main\n    with:\n      changelog-path: 'CHANGELOG.md'  # Optional: Changelog path\n    secrets:\n      RELEASE_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Optional: For creating releases\n```\n\n### 2. Add Post-Release Workflow\n\nCreate `.github/workflows/post-release-changelog.yml`:\n\n```yaml\nname: Post-Release Changelog Update\non:\n  repository_dispatch:\n    types: [release-published]\npermissions:\n  contents: write\n  pull-requests: write\njobs:\n  update-changelog:\n    # Use @main for newest version, or pin to specific version like @v1.0.0\n    uses: 0xjuanma/simple-release/.github/workflows/reusable-post-release-changelog.yml@main\n    secrets:\n      TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Required: Creates PR and updates changelog\n```\n\n\u003e **Note**: Each workflow uses different secret names:\n\u003e - **Release workflow**: Uses `RELEASE_TOKEN` (optional) for creating releases\n\u003e - **Post-release workflow**: Uses `TOKEN` (required) for creating PRs and updating changelog\n\u003e \n\u003e You can pass your `GITHUB_TOKEN` to both, or create a Personal Access Token (PAT) with `repo` permissions and add it as a repository secret.\n\n### 3. Add Tap Update Workflow (Optional)\n\nFor projects with Homebrew taps, create `.github/workflows/update-tap.yml`:\n\n```yaml\nname: Update Homebrew Tap\non:\n  repository_dispatch:\n    types: [release-published]\npermissions:\n  contents: read\njobs:\n  update-tap:\n    # Use @main for newest version, or pin to specific version like @v1.0.0\n    uses: 0xjuanma/simple-release/.github/workflows/reusable-update-tap.yml@main\n    with:\n      tap-repo: 'yourusername/homebrew-tap'\n      project-name: 'your-project'\n      formula-path: 'your-project.rb'\n      github-repo: 'yourusername/your-project'\n    secrets:\n      token: ${{ secrets.TAP_TOKEN }}\n```\n\n### 4. Enable GitHub Actions to Create PRs\n\nEnable PRs creation, see [Troubleshooting Token Issues](#troubleshooting-token-issues) for detailed steps.\n\n### 5. Create Changelog\n\nCreate `CHANGELOG.md`:\n\n```markdown\n# Changelog\n\n## [Unreleased]\n\n### Added\n- Your new features here\n\n## [1.0.0] - 2024-01-01\n\n### Added\n- Initial release\n```\n\n\u003e **Note**: As long as you keep your `CHANGELOG.md` up to date after each change, this workflow will automatically move all items under \"Unreleased\" into a new release section whenever you push a new tag.\n\n## Usage\n\n1. **Push a tag**: `git tag v1.0.0 \u0026\u0026 git push origin v1.0.0`\n2. **Release created** with changelog content (no files attached)\n3. **Formula updated** → Users can `brew upgrade` immediately (optional)\n4. **Changelog updated** automatically\n5. **PR created** with changelog changes\n\n## Version Management\n\n### Using @main (Recommended)\n- **Always gets the newest version** with latest fixes and features\n- **Automatic updates** when new changes are pushed to main\n- **Best for most users** who want the latest functionality\n\n```yaml\nuses: 0xjuanma/simple-release/.github/workflows/reusable-release.yml@main\n```\n\n### Pinning to Specific Versions\n- **Use for production** where you need stability\n- **Prevents unexpected changes** from automatic updates\n- **Update manually** when you want new features\n\n```yaml\nuses: 0xjuanma/simple-release/workflows/reusable-release.yml@v1.0.0\n```\n\n### Available Versions\nCheck [releases page](https://github.com/0xjuanma/simple-release/releases) for all available versions.\n\n## Required Permissions\n\n### GitHub Token Requirements\n- **`GITHUB_TOKEN`**: Automatically provided by GitHub Actions\n- **Permissions needed**: \n  - `contents: write` (to update changelog)\n  - `pull-requests: write` (to create PR)\n  - `metadata: read` (to read repository info)\n- **Fallback option**: If default token fails, create a Personal Access Token (PAT) with `repo` scope and add as repository secret\n\n### Troubleshooting Token Issues\nIf the post-release workflow fails to create PRs:\n\n#### Fix: Enable GitHub Actions to Create PRs\n1. Go to your repository on GitHub\n2. Click **Settings → Actions → General**\n3. Scroll down to **\"Workflow permissions\"**\n4. Select **\"Read and write permissions\"**\n5. ✅ Check **\"Allow GitHub Actions to create and approve pull requests\"**\n6. Click **Save**\n\n#### Alternative: Use Personal Access Token\nIf the above doesn't work:\n1. **Create a PAT**: Go to GitHub Settings → Developer settings → Personal access tokens\n2. **Required scope**: Select `repo` (full repository access)\n3. **Add as secret**: Repository Settings → Secrets → Add `GITHUB_TOKEN` with your PAT\n4. **Test**: Push a new tag to verify the workflow works\n\n\u003e **Note**: For production use, consider pinning to specific version tags (e.g., `@v1.0.0`) instead of `@main` to ensure you're using a stable, tested version.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xjuanma%2Fsimple-release","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xjuanma%2Fsimple-release","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xjuanma%2Fsimple-release/lists"}