🛡️ Migraatio -opas¶
Repositorioiden uudelleennimeäminen ja standardointiprosessi¶
Tämä opas määrittelee yhdenmukaisen tavan siirtää vanhat projektit RepoDock‑standardin mukaisiksi. Prosessi varmistaa, että: - projektien nimet noudattavat ekosysteemin sääntöjä - GitLab‑polut päivittyvät oikein - paikalliset Git‑yhteydet säilyvät toimivina - automaatio ja CI/CD eivät rikkoudu - dokumentaatio pysyy yhtenäisenä
1. Uudelleennimeämisen vaiheet¶
A. GitLab Web UI¶
-
Avaa projektisi GitLabissa Settings > General
-
Päivitä visuaalinen nimi Project name
- Saa sisältää välilyöntejä
- Ei vaikuta URL‑osoitteeseen
-
- Päivitä projektin polku Advanced (Expand) > Change path:
- Syötä uusi nimi kebab-case‑muodossa
- Tämä muuttaa projektin URL‑osoitteen
- Vanha URL lakkaa toimimasta
B. Paikallinen ympäristö (Terminal/Bach)¶
Kun palvelimen URL muuttuu, paikallinen Git-yhteys on päivitettävä.
Kun GitLabin projektipolku muuttuu, paikallinen Git‑remote täytyy päivittää.
-
Siirry projektikansioon
-
Päivitä remote‑osoite
-
Testaa yhteys
2. Automaattinen tarkastus ja asetustiedosto (validator.py | standards.json)¶
Validator‑työkalu varmistaa, että projektin nimi, rakenne ja kriittiset tiedostot noudattavat RepoDock‑ekosysteemin standardeja. Työkalu koostuu kahdesta tiedostosta:
- validator.py – suorittaa tarkistukset
- standards.json – sisältää ekosysteemin nimeämis- ja rakennesäännöt Näiden avulla voidaan varmistaa, että jokainen projekti on yhdenmukainen ja automaatiolle turvallinen.
Validator tarkistaa:
- projektin nimen etuliitteen
- kebab-case‑muodon
- kriittisten tiedostojen olemassaolon
- mahdolliset polkuviitteet, jotka tulee päivittää
Tiedostojen sijoittaminen¶
Sijoita molemmat projektin juureen:
validator.py¶
import os
import re
import json
import difflib
def load_standards(filename="standards.json"):
"""Lataa sallitut standardit JSON-tiedostosta."""
try:
with open(filename, 'r') as f:
return json.load(f)
except FileNotFoundError:
print(f"❌ Virhe: Tiedostoa {filename} ei löytynyt.")
return None
def check_repo_health():
config = load_standards()
if not config:
return
valid_prefixes = config.get("valid_prefixes", [])
folder_name = os.path.basename(os.getcwd())
issues = []
# Erotetaan käyttäjän syöttämä etuliite
user_prefix = folder_name.split('-')[0] if '-' in folder_name else folder_name
# 1. Älykäs nimen tarkastus JSON-listan perusteella
if user_prefix not in valid_prefixes:
matches = difflib.get_close_matches(user_prefix, valid_prefixes, n=1, cutoff=0.6)
if matches:
issues.append(f"❌ Virheellinen etuliite: '{user_prefix}'. Tarkoititko kenties: '{matches[0]}-'?")
else:
issues.append(f"❌ Tuntematon etuliite '{user_prefix}'. Sallitut: {', '.join(valid_prefixes)}")
# 2. Muototarkastus (kebab-case)
if not re.match(r'^[a-z0-9]+-[a-z0-9-]+$', folder_name):
issues.append("⚠️ Nimen muoto ei ole puhdas kebab-case (pienet kirjaimet, numerot ja viivat).")
# 3. Tarkistetaan JSONissa määritellyt kriittiset tiedostot
for file in config.get("required_files", []):
if os.path.exists(file):
issues.append(f"ℹ️ Tiedosto {file} löytyi: Varmista, ettei sisällä vanhoja polkuviitteitä.")
# Tulosten yhteenveto
print("\n" + "="*40)
if not issues:
print("âś… REPO VASTAA STANDARDEJA")
else:
print("🔍 LÖYDYT VIRHEET JA HUOMIOT:")
for issue in issues:
print(issue)
print("="*40 + "\n")
if __name__ == "__main__":
check_repo_health()
Sijoita standards.json projektin juurikansioon, josta validator-skripti voi lukea sen.
Tallenna tiedosto nimellä:
{
"version": "1.0",
"description": "RepoDock-nimeämisstandardit ja kriittiset tiedostot",
"valid_prefixes": [
"study",
"project",
"tool",
"lab",
"infra",
"config",
"engine"
],
"naming_convention": "kebab-case",
"required_files": [
".gitlab-ci.yml",
]
}
Suoritus¶
⚠️ 3. Huomioitavaa (Tekniset riskit)¶
Uudelleennimeäminen vaikuttaa useisiin automaation osiin. Käytä alla olevaa taulukkoa varmistaaksesi, että kaikki tekniset kytkökset päivitetään.
| Kohde | Vaikutus | Toimenpide |
|---|---|---|
| CI/CD Putket | .gitlab-ci.yml saattaa sisältää kiinteitä polkuja tai viittauksia vanhaan repoon. | Etsi ja korvaa vanha nimi tiedostosta. Tarkista erityisesti artifacts ja paths -määritykset. |
| Docker Registry | Container Registryn polku muuttuu suoraan projektin URL:n mukana. | Päivitä kaikki docker pull ja docker push -komennot skripteissäsi. Päivitä myös Kubernetes- tai Compose-tiedostojen kuvaviittaukset. |
| Ristiinviittaukset | Muut repositoriot saattavat viitata tähän projektiin Git Submodulena. | Tarkista muiden projektien .gitmodules -tiedostot ja päivitä niihin uusi URL-osoite. |
| API-integraatiot | Webhookit ja ulkoiset integraatiot (esim. Jira/Slack) käyttävät usein projektin polkua. | Päivitä integraatioasetukset GitLabin asetuksista ja vastaanottavasta päästä. |
âś… 4. Migration Checklist (Master)¶
Suorita nämä asiat jokaisen siirrettävän projektin kohdalla varmistaaksesi ekosysteemin yhteensopivuuden:
- [ ] Kansio nimetty uudelleen standardin mukaiseksi (esim.
tool-taiproject-etuliite). - [ ] GitLab Path muutettu (Settings > Advanced > Change path).
- [ ] Local Remote päivitetty (
git remote set-url origin [uusi-url]). - [ ] README.md päivitetty (Vastaa uutta nimeä ja sisältää vaaditun metadatan).
- [ ] Validator-skripti ajettu (Tulos: "âś… Standardin mukainen").
- [ ] Scrum-rakenne tarkistettu (Kansio
scrum/01_backlog/luotu, jos kyseessä on laaja kehitysprojekti).
Dokumentin tila: Luonnos — Pvm: 10.01.2026