{"id":18632595,"url":"https://github.com/aoepeople/semanticore","last_synced_at":"2025-07-23T19:34:12.291Z","repository":{"id":37929788,"uuid":"466161987","full_name":"AOEpeople/semanticore","owner":"AOEpeople","description":"Semanticore: Your friendly Semantic Release Bot 🤖 🦁 🐉. Autogenerate Release Notes from Commits and automate Github/Gitlab Release generation.","archived":false,"fork":false,"pushed_at":"2025-06-11T14:35:37.000Z","size":82,"stargazers_count":19,"open_issues_count":8,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-23T19:34:11.879Z","etag":null,"topics":["automation","bot","changelog","conventional-commits","hacktoberfest","semantic-release","semantic-versioning"],"latest_commit_sha":null,"homepage":"","language":"Go","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/AOEpeople.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}},"created_at":"2022-03-04T14:51:23.000Z","updated_at":"2025-06-11T14:35:17.000Z","dependencies_parsed_at":"2023-02-18T23:31:13.774Z","dependency_job_id":"d32232cd-e445-4fe6-a17e-9c79d9dbcb9c","html_url":"https://github.com/AOEpeople/semanticore","commit_stats":{"total_commits":73,"total_committers":8,"mean_commits":9.125,"dds":0.5205479452054795,"last_synced_commit":"c8db29c77e93d5b4f59d9d2a1f77053ee6c7fbf0"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/AOEpeople/semanticore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fsemanticore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fsemanticore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fsemanticore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fsemanticore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AOEpeople","download_url":"https://codeload.github.com/AOEpeople/semanticore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fsemanticore/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266738345,"owners_count":23976417,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["automation","bot","changelog","conventional-commits","hacktoberfest","semantic-release","semantic-versioning"],"created_at":"2024-11-07T05:12:40.431Z","updated_at":"2025-07-23T19:34:12.282Z","avatar_url":"https://github.com/AOEpeople.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Semanticore Release Bot 🤖 🦁 🐉\n\n## About\n\nYour friendly Semanticore Release bot helps maintaining the changelog for a project and automates the related tagging process.\n\n## How to use it\n\nSemanticore runs along every pipeline in the main branch, and will analyze the commit messages.\n\nIt maintains an open Merge Request for the project with all the required Changelog adjustments.\n\nIt detects the current version and suggests the next version based on the changes made.\n\nOnce a release commit is detected, it will automatically create the related Git tag on the next pipeline run.\n\n## Conventions\n\n* Commit messages should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) so semanticore can decide whether a minor or patch level release is required.\n* Releases are indicated with a commit with a commit messages which should match: `Release vX.Y.Z`\n\n### Supported Commit Types\n\nCurrently Semanticore supports the following commit types:\n\n| Type             | Prefixes                   | Meaning                                  |\n|------------------|----------------------------|------------------------------------------|\n| 🆕 Feature       | `feat`                     | New Feature, creates a minor commit      |\n| 🚨 Security Fix  | `sec`                      | Security relevant change/fix             |\n| 👾 Bugfix        | `fix`, `bug`               | Bugfix                                   |\n| 🛡 Test          | `test`                     | (Unit-)Tests                             |\n| 🔁 Refactor      | `refactor`, `rework`       | Refactorings or reworking                |\n| 🤖 Devops/CI     | `ops`, `ci`, `cd`, `build` | Operations, Build, CI/CD, Pipelines      |\n| 📚 Documentation | `doc`                      | Documentation                            |\n| ⚡️ Performance   | `perf`                     | Performance improvements                 |\n| 🧹 Chore         | `chore`, `update`          | Chores, (Dependency-)Updates             |\n| 📝 Other         | everything else            | Everything not matched by another prefix |\n\n### Major versions\n\nTo enable support for major releases (breaking APIs), use the `-major` flag.\n\n## Configuration\n\nThe `SEMANTICORE_TOKEN` is required - that's a Gitlab or Github Token which has basic contributor rights and allows to perform the related Git and API operations.\n\n### Sign Key Configuration\n\nTo enable GPG signing of commits, you have two options:\n\n- Use `SEMANTICORE_SIGN_KEY` environment variable containing the actual GPG private key\n- Use `SEMANTICORE_SIGN_KEY_FILE` environment variable or the command line option `-sign-key-file`\n  specifying the path to a file containing the\n  GPG private key\n\nIf neither is provided, commits will not be signed.\n\n### Set Author and committer\n\nSemanticore respects [Git Environment variables](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables)\n\n* `GIT_AUTHOR_NAME`\n* `GIT_AUTHOR_EMAIL`\n* `GIT_COMMITTER_NAME`\n* `GIT_COMMITTER_EMAIL`\n\nThe values can also be overridden by adding the appropriate flags. Run with `-help` to get the details.\n\nIf none of these is set, Semanticore will use `Semanticore Bot` as name and `semanticore@aoe.com` as E-Mail for Author and Committer.\n\n## Using Semanticore\n\nTo test Semanticore locally you can run it without an API token to create an example Changelog:\n\n```\ngo run github.com/aoepeople/semanticore@v0 \u003coptional path to repository\u003e\n```\n\n### Example Configurations\n\n#### Github Action\n\n`.github/workflows/semanticore.yml`\n```yaml\nname: Semanticore\n\non:\n  push:\n    branches:\n      - main\njobs:\n  semanticore:\n    runs-on: ubuntu-latest\n    name: Semanticore\n    steps:\n      - uses: actions/checkout@v3\n        with:\n          fetch-depth: 0\n      - name: Setup Go\n        uses: actions/setup-go@v3\n        with:\n          go-version: '1.*'\n      - name: Semanticore\n        run: go run github.com/aoepeople/semanticore@v0\n        env:\n          SEMANTICORE_TOKEN: ${{secrets.GITHUB_TOKEN}}\n          GOTOOLCHAIN: auto\n```\n\n#### Gitlab CI\n\nCreate a secret `SEMANTICORE_TOKEN` containing an API token with `api` and `write_repository` scope.\n\n`.gitlab-ci.yml`\n```yaml\nstages:\n  - semanticore\n\nsemanticore:\n  image: golang:1\n  stage: semanticore\n  variables:\n    GOTOOLCHAIN: auto\n  script:\n    - go run github.com/aoepeople/semanticore@v0\n  only:\n    - main\n```\n\nMake sure you set the repositories clone depth too a large enough value, the default of `50` might be too low.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoepeople%2Fsemanticore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoepeople%2Fsemanticore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoepeople%2Fsemanticore/lists"}