rsmetacheck-bot
An automated bot that analyzes repository metadata quality and creates issues with improvement suggestions.
Part of the CodeMetaSoft project to improve research software metadata quality.
📋 What This Bot Does
If you received an issue from this bot, it means your repository's metadata was automatically analyzed and some improvements were detected on the main default branch.
The issue contains:
- Pitfalls: Critical metadata issues that should be fixed
- Warnings: Metadata improvements that are recommended
- Suggestions: Specific recommendations on how to fix each issue
- Codemeta.json generation: if your repo does not contain any
codemeta.jsonfile, the bot suggests one.
Example Issues You Might See
### [P002](https://w3id.org/rsmetacheck/catalog/#P002)
**Evidence:** P002 detected: LICENSE file contains unreplaced template placeholders
**Suggestion:** Update the copyright section with accurate names, organizations, and the current year. Personalizing this section ensures clarity and legal accuracy.
💬 How to Respond
If You Agree with the Suggestions
Fix the identified issues and close the issue with a comment explaining what you fixed. Your improvements help your software become more discoverable and citable!
If You Disagree or Have Questions
Feel free to comment on the issue. We're happy to discuss the suggestions and help clarify what's needed.
If You're Not Interested
Simply comment "unsubscribe" on the issue and we'll remove your repository from future analysis.
🔍 What Analysis Is Used
This bot uses rsmetacheck, which analyzes:
- Software metadata completeness
- Citation and documentation quality
- Repository structure and best practices
The bot does not:
- Modify your code or files
- Make pull requests
- Have access to your repository secrets
Install
pip install
pip install rsmetacheck-bot
uv
uv add rsmetacheck-bot
📚 Learn More
- CodeMetaSoft Project - About the initiative
- rsmetacheck - The analysis tool
- Citation File Format - How to add CITATION.cff
🛠️ For Maintainers Running This Bot
See CONTRIBUTING.md for setup and usage instructions.
Project storage policy: the repo-centric layout and migration rules are described in docs/output_storage.rst.
The pipeline is config driven: one JSON file defines the repository list, issue message, inline opt-outs, and output layout.
Supported platforms:
- ✅ GitHub.com
- ✅ Gitlab.com
The bot is handling self-hosted gitlab platform but requires providing a token to this server (and not gitlab.com).
Safe workflow for local validation
Use these commands when validating the bot without creating live issues:
- Legacy snapshot conversion
uv run sw-metadata-bot convert-legacy outputs/legacy_snapshot --target-root outputs/converted
This converts a legacy snapshot tree into the current repo-centric layout without publishing anything.
- Fresh dry-run analysis from scratch
uv run sw-metadata-bot run-analysis --config-file config.json --snapshot-tag 202603
This writes analysis outputs and run reports, but remains dry-run and does not create issues.
- Simulated publish review
uv run sw-metadata-bot simulate-publish --analysis-root outputs/batch-a/202603
This replays the analysis decisions with a fake issue client so you can review the generated issue bodies and opt-out logic without spamming real repositories.
Avoid the live
publishcommand unless you explicitly want to create or update real repository issues.
📝 License
See LICENSE file.
Release files for rsmetacheck-bot 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rsmetacheck_bot-0.6.0.tar.gz | 77.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rsmetacheck_bot-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 143.8 kB
Release files / rsmetacheck_bot-0.6.0.tar.gz
| Download URL | rsmetacheck_bot-0.6.0.tar.gz |
|---|---|
| Size | 77.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
37ab3899d976c6ece1b20ec7f51fb6e8fd0ac872aea0ecd70c17a47e27e58783
|
|
BLAKE2b-256 checksum How to use checksums |
2fd3cc28ea98b313cf7231a414d34071bb1a8dae51179ef7f3dd32eea86243fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / rsmetacheck_bot-0.6.0-py3-none-any.whl
| Download URL | rsmetacheck_bot-0.6.0-py3-none-any.whl |
|---|---|
| Size | 66.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b86618bd31afe2730bd778e447e1bfe309228cbf6c13b2f339afaa1bc6c42046
|
|
BLAKE2b-256 checksum How to use checksums |
9e3a0a2c336a0a4adef62b0c1b92216e2aa7371849537f8ad4cf1f50cc700ae9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|