{"id":46491914,"url":"https://github.com/mamaship/mr-tracker","last_synced_at":"2026-03-06T11:01:17.322Z","repository":{"id":40334680,"uuid":"488461256","full_name":"MamaShip/MR-Tracker","owner":"MamaShip","description":"List changes between tagged versions by analyzing MRs","archived":false,"fork":false,"pushed_at":"2023-01-31T03:15:27.000Z","size":72,"stargazers_count":6,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-27T02:44:11.176Z","etag":null,"topics":["changelog","changelog-generator","gitlab","merge"],"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/MamaShip.png","metadata":{"files":{"readme":"README-zh.md","changelog":"changelog/generate.go","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":"2022-05-04T05:18:32.000Z","updated_at":"2025-11-07T19:52:48.000Z","dependencies_parsed_at":"2023-02-16T15:05:46.406Z","dependency_job_id":null,"html_url":"https://github.com/MamaShip/MR-Tracker","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/MamaShip/MR-Tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MamaShip%2FMR-Tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MamaShip%2FMR-Tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MamaShip%2FMR-Tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MamaShip%2FMR-Tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MamaShip","download_url":"https://codeload.github.com/MamaShip/MR-Tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MamaShip%2FMR-Tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30173342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["changelog","changelog-generator","gitlab","merge"],"created_at":"2026-03-06T11:00:51.745Z","updated_at":"2026-03-06T11:01:17.301Z","avatar_url":"https://github.com/MamaShip.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MR-Tracker\n\n[English](README.md) | 中文\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/f28b966f3baf7ab66a9d/maintainability)](https://codeclimate.com/github/MamaShip/MR-Tracker/maintainability)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/MamaShip/MR-Tracker.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/MamaShip/MR-Tracker/alerts/)\n[![Go Reference](https://pkg.go.dev/badge/github.com/MamaShip/MR-Tracker.svg)](https://pkg.go.dev/github.com/MamaShip/MR-Tracker)\n\n基于 MR 标题生成2个版本之间的改动变化 changelog。\n\n目前仅支持分析 Gitlab 仓库。\n\n## 使用\n\n### 前置准备\n\n此工具依赖于 Gitlab API。请先确认你的 Gitlab 仓库是**公开**的；对于私有仓库，你需要先为仓库生成相应访问权限的 `private-token` (详见 [官方文档](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html))。\n\n另外，Gitlab API 需要使用到 **Project ID**。你可以在仓库的首页找到它：\n![where to find project ID](images/project_id.png)\n\n### 在 CI 中使用 MR-Tracker\n\n推荐的使用方式：直接用 **docker 镜像([mr-tracker](https://hub.docker.com/r/mamaship/mr-tracker))**，镜像内已经打包了最新的 MR-Tracker，可集成进 CI Pipeline，工作流自动触发 changelog 生成。\n\n使用 Docker 镜像 `mamaship/mr-tracker:latest`，可以直接在 CI job 里调用 `MR-Tracker` 命令。\n\n`.gitlab-ci.yml` 配置样例: \n\n```\ngen-changelog:\n  image: mamaship/mr-tracker:latest\n  rules:\n    - if: $CI_COMMIT_TAG\n  script:\n    - MR-Tracker -site YOUR_GITLAB_DOMAIN -project YOUR_PROJECT_ID -token YOUR_TOKEN -latest $CI_COMMIT_TAG -post\n```\n\n### 命令行程序\n\n#### 安装\n\n如果你已有 Go 语言开发环境，可以执行以下命令安装：\n\n```\ngo install github.com/MamaShip/MR-Tracker@latest\n```\n\n或者从 [Release](https://github.com/MamaShip/MR-Tracker/releases) 页面下载对应平台的可执行文件，把它放到你的`PATH` 路径下（或者直接运行它）。\n\n#### 运行\n\n必须通过 `-project` 参数传递 `Project ID` 给程序，才能执行分析。\n\n你可以执行 `MR-Tracker -h` 来查看详细的命令行参数文档。\n\n**基础选项**:\n\n| 参数名    | 输入类型 | 功能                                                |\n| ---------- | ---------- | ---------------------------------------------------------- |\n| `-h`       |            | 打印帮助信息                                            |\n| `-v`       |            | 打印版本号                                              |\n| `-project` | int        | 设置 Project ID                                        |\n| `-site`    | string     | 设置 Gitlab 域名 (默认值: `gitlab.com`)                |\n| `-start`   | string     | 设置分析的开始范围（tag）                              |\n| `-end`     | string     | 设置分析的结束范围（tag）                                |\n| `-output`  | string     | 将分析结果以 markdown 格式输出到文件 |\n| `-simple`  |            | 简化输出内容 |\n\n样例:\n\n```\nMR-Tracker -project 278964 -start v14.10.0-ee -end v14.10.1-ee -output changes.md\n```\n\n**额外选项**:\n\n| 参数名    | 输入类型 | 功能                                                |\n| ---------- | ---------- | ---------------------------------------------------------- |\n| `-token`*   | string     | 设置你的 Gitlab API token。\u003cbr /\u003e 私有仓库必须有 token 才可能执行分析。 |\n| `-post`    |            | 将分析结果发布到该仓库的 Issue 页面。 |\n| `-latest`    | string | 给定一个版本 tag，自动尝试找出仓库内前一个正式版本（基于[语义化版本号](https://semver.org/)），并对两个版本间的变化执行分析。 |\n| `-branch`  | string     | MR-Tracker 默认基于仓库的 default 分支进行 MR 分析。 \u003cbr /\u003e 如果想要关注其它分支的 MR 变动，通过此参数来指定分支名。 |\n\n*你也可以用环境变量来存储 token:\n```\nexport MR_TRACKER_TOKEN=XXXXXXXX\n```\nMR-Tracker 会从环境变量内读取名为 `MR_TRACKER_TOKEN` 的值用作 token（如果找到的话）。\n\n## 受启发于\n\n- [https://github.com/github-changelog-generator/github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator)\n- [https://github.com/eirture/walle](https://github.com/eirture/walle)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmamaship%2Fmr-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmamaship%2Fmr-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmamaship%2Fmr-tracker/lists"}