Free lesson · LLMOps Engineering

Pre-commit hooks ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ dependency ನವೀಕರಣಗಳನ್ನು ಅಳವಡಿಸಿ

Dependency ನಿರ್ವಹಣೆಗಾಗಿ pre-commit hooks ಗಳನ್ನು Renovate ಜೊತೆ ಸಂಯೋಜಿಸುವ ಕೋಡ್ ಗುಣಮಟ್ಟ ಸ್ವಯಂಚಾಲನೆಯನ್ನು ನೀವು ನಿರ್ಮಿಸುವಿರಿ. Pre-commit hooks: Python ಗಾಗಿ hooks (ruff format, ruff check, mypy), YAML ಮೌಲ್ಯೀಕರಣ (prompts ಮತ್ತು configs ಗಾಗಿ yamllint), JSON schema ಮೌಲ್ಯೀಕರಣ (Pydantic model export ಬಳಸಿ prompt templates ಮತ್ತು eval datasets ಗಾಗಿ), ಮತ್ತು secret ಪತ್ತೆ (API key commits ತಡೆಯಲು detect-secrets) ಇವುಗಳೊಂದಿಗೆ .pre-commit-config.yaml ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. Hooks ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು pre-commit install ಅನ್ನು ರನ್ ಮಾಡಿ, ನಂತರ ಪರೀಕ್ಷಿಸಿ: hardcoded OpenAI key ಇರುವ ಫೈಲ್ ಒಂದನ್ನು commit ಮಾಡಿ — ಅದು ತಡೆಯಲ್ಪಟ್ಟಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. Renovate ಸೆಟಪ್: ನಿಮ್ಮ repository ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ dependency ನವೀಕರಣಗಳಿಗಾಗಿ PRs ಗಳನ್ನು ರಚಿಸುವ GKE CronJob ಆಗಿ Renovate ಅನ್ನು ಡಿಪ್ಲಾಯ್ ಮಾಡಿ. renovate.json ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ: Python packages ಗಳನ್ನು ಪ್ರಕಾರದ ಆಧಾರದ ಮೇಲೆ ಗುಂಪು ಮಾಡಿ (AI SDKs: openai, google-generativeai; frameworks: fastapi, pydantic; testing: pytest, deepeval), patch versions ಗಳಿಗೆ auto-merge ಹೊಂದಿಸಿ, major/minor ಗಳಿಗೆ ಹಸ್ತಚಾಲಿತ ಪರಿಶೀಲನೆ ಅಗತ್ಯವಾಗಿಸಿ. Renovate changelogs ಮತ್ತು ಹೊಂದಾಣಿಕೆ ಟಿಪ್ಪಣಿಗಳೊಂದಿಗೆ atomic PRs ಗಳನ್ನು ರಚಿಸುತ್ತದೆ. ಹೋಲಿಸಿ: Renovate (on-cluster, ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದದ್ದು) vs Dependabot (GitHub-native, ಸರಳವಾದದ್ದು). ಟ್ರ್ಯಾಕ್ ಮಾಡಿ: ವಾರಕ್ಕೆ ರಚಿಸಲಾದ PRs, auto-merge ದರ, security patches ಗಳಿಗೆ ನವೀಕರಣಕ್ಕೆ ತಗಲುವ ಸಮಯ.

Course: DevOps Foundations for GenAI Engineers · Chapter 1 · Git Workflows for AI Teams

Free to read — no subscription required.

ಪರಿಚಯ

ನೀವು ಒಂದು repo ದಲ್ಲಿ ಪರಿಶೀಲಿಸದ commit ಗಳು ಮತ್ತು ನಿರ್ವಹಿಸದ ಅವಲಂಬನೆ ಡ್ರಿಫ್ಟ್ ಸಂಗ್ರಹವಾಗಲು ಬಿಟ್ಟರೆ, ಪ್ರತಿ pull request ಸಂಬಂಧವಿಲ್ಲದ lint ಗದ್ದಲದೊಂದಿಗೆ ಹೋರಾಡುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ತ್ರೈಮಾಸಿಕ ಅಪ್‌ಗ್ರೇಡ್ ಹಲವು ವಾರಗಳ ಬೆಂಕಿ ನಂದಿಸುವ ಕೆಲಸವಾಗುತ್ತದೆ — ಮತ್ತು ಯಾವುದೋ ಒಂದು ಹಂತದಲ್ಲಿ ಒಬ್ಬ ಡೆವಲಪರ್ ಒಂದು API key, ತಪ್ಪಾಗಿ ರಚಿತವಾದ prompt JSON, ಅಥವಾ 200 MB checkpoint ಅನ್ನು commit ಮಾಡುತ್ತಾರೆ, ಅದನ್ನು production ಮುರಿಯುವವರೆಗೂ ಯಾರೂ ಗಮನಿಸುವುದಿಲ್ಲ. Pre-commit hooks ಮತ್ತು Renovate ಈ ಎರಡೂ ವರ್ಗದ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಯುವ ಅತ್ಯಂತ ಅಗ್ಗದ ಎರಡು ನಿಯಂತ್ರಣಗಳು: hooks ಕೆಟ್ಟ commit ಗಳು remote ತಲುಪುವ ಮೊದಲೇ ತಡೆಯುತ್ತವೆ, ಮತ್ತು Renovate ಯಾವುದಾದರೂ ಹೊಸ ಆವೃತ್ತಿ ಪ್ರಕಟವಾದಾಗಲೆಲ್ಲಾ label ಹಾಕಿದ PR ಒಂದನ್ನು ತೆರೆಯುವ ಮೂಲಕ ಅವಲಂಬನೆ ಮೇಲ್ಮೈಯನ್ನು ಪ್ರಾಮಾಣಿಕವಾಗಿ ಇಡುತ್ತದೆ. ಈ ಪಾಠದ ಕೊನೆಯಲ್ಲಿ, prompt JSON, JSONL ತರಬೇತಿ ಸಾಲುಗಳು ಮತ್ತು secrets ಅನ್ನು ಪರಿಶೀಲಿಸುವ .pre-commit-config.yaml ಅನ್ನು, ಹಾಗೂ LLM SDK ಬಂಪ್‌ಗಳನ್ನು dev-dependency ಪ್ಯಾಚ್‌ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ ಪರಿಗಣಿಸುವ package rules ಹೊಂದಿರುವ renovate.json ಅನ್ನು ನೀವು ಬರೆಯಲು ಸಮರ್ಥರಾಗುತ್ತೀರಿ.

ಪ್ರಮುಖ ಪರಿಭಾಷೆ

  • Pre-commit framework — .pre-commit-config.yaml ನಲ್ಲಿ ಘೋಷಿಸಲಾದ hooks ಅನ್ನು ಸಂಯೋಜಿಸುವ Python ಉಪಕರಣ (pre-commit); push ಮಾಡುವ ಮೊದಲು ಕೆಟ್ಟ commit ಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ತಡೆಯಲು ಪ್ರತಿ ಡೆವಲಪರ್ ಚಲಾಯಿಸುವ ಏಕೈಕ ಕಾರ್ಯವಿಧಾನವಾಗಿರುವುದರಿಂದ ಇಲ್ಲಿ ಪ್ರಸ್ತುತ.
  • Hook repository — ಯಾರ .pre-commit-hooks.yaml ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ hook ವ್ಯಾಖ್ಯಾನಗಳನ್ನು (id, language, files pattern, entry command) ಬಹಿರಂಗಪಡಿಸುತ್ತದೋ ಆ Git repo; ಸಾಮಾನ್ಯ ಪರಿಶೀಲನೆಗಳನ್ನು ಮರು-ಅಳವಡಿಸುವುದನ್ನು ತಪ್ಪಿಸಲು ಇವುಗಳನ್ನು ನಿಮ್ಮ config ನಲ್ಲಿ ಸಂಯೋಜಿಸುತ್ತೀರಿ.
  • Renovate — npm, PyPI, Docker, Helm, ಅಥವಾ GitHub Action ಆವೃತ್ತಿಗಳು ಬದಲಾದಾಗ PR ಗಳನ್ನು ತೆರೆಯುವ ಅವಲಂಬನೆ-ನವೀಕರಣ bot; ಅವಲಂಬನೆ ಅಪ್‌ಗ್ರೇಡ್‌ಗಳು ತ್ರೈಮಾಸಿಕ ಬೆಂಕಿ ನಂದಿಸುವ ಕೆಲಸವಾಗುವ ಬದಲು ಸ್ಥಿರವಾದ ಹನಿಹನಿ ಹರಿವಾಗುವ ಕಾರ್ಯವಿಧಾನ ಇದು.
  • Package rule — ಪ್ಯಾಕೇಜ್‌ಗಳ ಉಪಗುಂಪನ್ನು ಆಯ್ಕೆ ಮಾಡಿ ಡೀಫಾಲ್ಟ್‌ಗಳನ್ನು (schedule, automerge, group name) ಅತಿಕ್ರಮಿಸುವ Renovate config ಬ್ಲಾಕ್; AI-ನಿರ್ದಿಷ್ಟ ನೀತಿ ವಾಸಿಸುವ ಸ್ಥಳ, ಉದಾ. "LLM SDK ಗಳನ್ನು ಎಂದಿಗೂ auto-merge ಮಾಡಬೇಡಿ."
  • Automerge — status checks ಪಾಸ್ ಆದ ನಂತರ bot ಒಂದು PR ಅನ್ನು merge ಮಾಡಲು ಅನುಮತಿಸುವ Renovate ಸೆಟ್ಟಿಂಗ್; dev-dependency ಪ್ಯಾಚ್‌ಗಳಂತಹ ಕಡಿಮೆ-ಅಪಾಯದ ನವೀಕರಣ ವರ್ಗಗಳಿಗೆ ಮೀಸಲು.

ಪರಿಕಲ್ಪನೆಗಳು

ಮೂರು-ಪದರದ pre-commit ಸಂರಚನೆ

ಉಪಯುಕ್ತವಾದ pre-commit config ಒಂದು ರಚನಾತ್ಮಕ ಪದರ (whitespace, ದೊಡ್ಡ ಫೈಲ್‌ಗಳು, YAML/JSON ಸರಿಯಾದ ರೂಪ), ಒಂದು ಭಾಷಾ ಪದರ (Python ಗಾಗಿ Ruff, formatters), ಮತ್ತು ಒಂದು AI-ನಿರ್ದಿಷ್ಟ ಪದರ (prompt JSON schemas, JSONL ಸಾಲು validators, secret ಪತ್ತೆ) ಹೊಂದಿರುತ್ತದೆ. ಪ್ರತಿ hook ಒಂದು files: regex ಅನ್ನು ಘೋಷಿಸುತ್ತದೆ, ಇದರಿಂದ ಸಂಬಂಧವಿಲ್ಲದ commit ಗಳು ಕೆಲಸವನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತವೆ. ಪೂರ್ಣ ಫೈಲ್ repo ಮೂಲದಲ್ಲಿ commit ಆಗಿರುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಡೆವಲಪರ್ git hook ಅನ್ನು ಜೋಡಿಸಲು ಒಮ್ಮೆ pre-commit install ಚಲಾಯಿಸುತ್ತಾರೆ — ಜೋಡಿಸಲಾದ ಫೈಲ್‌ಗಾಗಿ ಕೋಡ್ ವಾಕ್‌ಥ್ರೂ ನೋಡಿ.

Hook ಹರಿವು ಮತ್ತು ಮರು-staging

ವಿಫಲವಾದ hook ಕೇವಲ ದೋಷವನ್ನು ಮುದ್ರಿಸುವುದಿಲ್ಲ: ಸ್ವಯಂ-ಸರಿಪಡಿಸುವ hooks (trailing whitespace, Ruff --fix) ಮಾರ್ಪಡಿಸಿದ ಫೈಲ್‌ಗಳನ್ನು ಮರು-stage ಮಾಡುತ್ತವೆ, ಇದರಿಂದ ಮುಂದಿನ git add -u && git commit ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚಿನ ಮಾನವ ಕ್ರಿಯೆಯಿಲ್ಲದೆ ಯಶಸ್ವಿಯಾಗುತ್ತದೆ. ಇದೇ hooks ಅನ್ನು ಕಿರಿಕಿರಿಯ ಬದಲು ಅಭ್ಯಾಸವಾಗುವಂತೆ ಮಾಡುತ್ತದೆ.

Loading diagram...

AI ಕೋಡ್‌ಬೇಸ್‌ಗಳಿಗಾಗಿ Renovate package rules

Renovate ನ ಡೀಫಾಲ್ಟ್‌ಗಳು ಸಾಮಾನ್ಯ web app ಅನ್ನು ಊಹಿಸುತ್ತವೆ. AI ಯೋಜನೆಗಳು ಮೂರು ಸ್ಥಳಗಳಲ್ಲಿ ಭಿನ್ನವಾಗಿವೆ: (a) LLM SDK ಬಂಪ್‌ಗಳನ್ನು ಎಂದಿಗೂ auto-merge ಮಾಡಬಾರದು ಏಕೆಂದರೆ ಒಂದು minor ಬಿಡುಗಡೆ tokenization ಅಥವಾ ಡೀಫಾಲ್ಟ್ sampling ಅನ್ನು ಬದಲಾಯಿಸಬಹುದು — ಅವುಗಳಿಗೆ ಮೊದಲು evaluation suite ಚಲಾಯಿಸುವ ಅಗತ್ಯವಿದೆ; (b) dev-dependency patch/minor ಬಂಪ್‌ಗಳನ್ನು ಸರತಿ ಚಿಕ್ಕದಾಗಿಡಲು ಆಕ್ರಮಣಕಾರಿಯಾಗಿ auto-merge ಮಾಡಬೇಕು; (c) Docker base image ನವೀಕರಣಗಳನ್ನು ಗುಂಪು ಮಾಡಬೇಕು, ಇದರಿಂದ ಒಂದೇ security advisory ಒಂದೇ PR ನಲ್ಲಿ ಪ್ರತಿ ಸೇವೆಯ ಮೂಲಕ ಹರಡುತ್ತದೆ. ಕಾರ್ಯವಿಧಾನ packageRules — ಕೋಡ್ ವಾಕ್‌ಥ್ರೂ ನೋಡಿ.

GitHub Actions ಗಾಗಿ supply-chain pinning

uses: actions/checkout@v4 ಒಂದು ಚಲಿಸುವ ಗುರಿ — ರಾಜಿಯಾದ tag ನಿಮ್ಮ build ಅನ್ನು ದುರುದ್ದೇಶಪೂರಿತ ಕೋಡ್‌ಗೆ ಮರು-ನಿರ್ದೇಶಿಸುತ್ತದೆ. Renovate ನ pinDigests: true ಪ್ರತಿ action ಉಲ್ಲೇಖವನ್ನು 40-ಅಕ್ಷರದ commit SHA ಆಗಿ ಮರುಬರೆಯುತ್ತದೆ, ಆವೃತ್ತಿಯನ್ನು ಹಿಂಬಾಲಿಸುವ comment ಆಗಿ ಇಡುತ್ತದೆ, ಮತ್ತು ನಿಜವಾದ ಬಿಡುಗಡೆಗಳಲ್ಲಿ SHA ಅನ್ನು ಬಂಪ್ ಮಾಡುತ್ತಲೇ ಇರುತ್ತದೆ.

Loading diagram...

ಕೋಡ್ ವಾಕ್‌ಥ್ರೂ

ಕೆಳಗಿನ ಎರಡು ಫೈಲ್‌ಗಳು ಪರಿಕಲ್ಪನೆಗಳಲ್ಲಿ ವಿವರಿಸಿದ ಮೂರು-ಪದರದ hook config ಮತ್ತು package-rule ನೀತಿಯನ್ನು ಜೋಡಿಸುತ್ತವೆ. ಅವುಗಳನ್ನು repo ಮೂಲಕ್ಕೆ ನಕಲಿಸಿ, ಒಮ್ಮೆ pre-commit install ಚಲಾಯಿಸಿ, ಮತ್ತು repository ಮೇಲೆ Renovate ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.

Code snippetyaml
1# .pre-commit-config.yaml 2repos: 3 - repo: https://github.com/pre-commit/pre-commit-hooks 4 rev: v4.6.0 5 hooks: 6 - id: trailing-whitespace 7 - id: end-of-file-fixer 8 - id: check-merge-conflict 9 - id: check-added-large-files 10 args: ['--maxkb=1024'] 11 - id: check-yaml 12 args: ['--unsafe'] 13 - id: check-json 14 15 - repo: https://github.com/astral-sh/ruff-pre-commit 16 rev: v0.5.7 17 hooks: 18 - id: ruff 19 args: ['--fix'] 20 - id: ruff-format 21 22 - repo: https://github.com/Yelp/detect-secrets 23 rev: v1.5.0 24 hooks: 25 - id: detect-secrets 26 args: ['--baseline', '.secrets.baseline'] 27 exclude: package-lock\.json|\.ipynb$ 28 29 - repo: local 30 hooks: 31 - id: prompt-json-schema 32 name: Validate prompt JSON files against schema 33 entry: python scripts/hooks/validate_prompt_schema.py 34 language: python 35 files: ^prompts/.*\.json$ 36 additional_dependencies: [pydantic>=2.7] 37 - id: jsonl-row-validate 38 name: Validate JSONL training data rows 39 entry: python scripts/hooks/validate_jsonl.py 40 language: python 41 files: ^data/training/.*\.jsonl$ 42 additional_dependencies: [pydantic>=2.7]

ರಚನಾತ್ಮಕ ಬ್ಲಾಕ್ (pre-commit-hooks) ಸಾಮಾನ್ಯ ದೋಷಗಳನ್ನು ಹಿಡಿಯುತ್ತದೆ ಮತ್ತು — AI repo ಗಳಿಗೆ ನಿರ್ಣಾಯಕವಾಗಿ — 1 MB ಗಿಂತ ದೊಡ್ಡ commit ಗಳನ್ನು ನಿರಾಕರಿಸುತ್ತದೆ, ಇದರಿಂದ checkpoint ಗಳು ಕದ್ದು ಒಳಬರುವುದಿಲ್ಲ. check-yaml ಮೇಲಿನ --unsafe {{ .Values.foo }} ನಂತಹ Helm templating ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ. Ruff ಬ್ಲಾಕ್ Black + isort + flake8 ಅನ್ನು ಒಂದೇ Rust binary ಯಿಂದ ಬದಲಾಯಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ PR diff ಗದ್ದಲಮಯವಾಗಲು style ಎಂದಿಗೂ ಕಾರಣವಾಗುವುದಿಲ್ಲ. detect-secrets ತಿಳಿದಿರುವ false positive ಗಳನ್ನು ದಾಖಲಿಸುವ .secrets.baseline ವಿರುದ್ಧ staged ಫೈಲ್‌ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುತ್ತದೆ; package-lock.json ಮತ್ತು .ipynb ಅನ್ನು ಹೊರಗಿಡಲಾಗಿದೆ ಏಕೆಂದರೆ ಅವುಗಳ ಹೆಚ್ಚಿನ-entropy ವಿಷಯ detector ಅನ್ನು ಟ್ರಿಪ್ ಮಾಡುತ್ತದೆ. local ಬ್ಲಾಕ್ AI-ನಿರ್ದಿಷ್ಟ ಪದರ: prompt-json-schema prompts/ ಅಡಿಯಲ್ಲಿರುವ ಪ್ರತಿ ಫೈಲ್ ಅನ್ನು Pydantic model ವಿರುದ್ಧ ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆ, ಮತ್ತು jsonl-row-validate ಪ್ರತಿ ತರಬೇತಿ JSONL ನ ಪ್ರತಿ ಸಾಲನ್ನು parse ಮಾಡಿ ಸಾಲಿನ schema ಅನ್ನು ದೃಢೀಕರಿಸುತ್ತದೆ.

Code snippetjson
1{ 2 "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 "extends": ["config:recommended", ":semanticCommits"], 4 "schedule": ["after 7am every weekday"], 5 "timezone": "America/Los_Angeles", 6 "labels": ["dependencies"], 7 "prHourlyLimit": 4, 8 "prConcurrentLimit": 12, 9 "packageRules": [ 10 { 11 "description": "Never auto-merge AI SDK packages", 12 "matchPackagePatterns": ["^openai", "^anthropic", "^google-generativeai", "^langchain", "^llama-index"], 13 "automerge": false, 14 "labels": ["dependencies", "ai-sdk", "needs-evaluation"] 15 }, 16 { 17 "description": "Auto-merge dev-dependency patch + minor", 18 "matchDepTypes": ["devDependencies"], 19 "matchUpdateTypes": ["patch", "minor"], 20 "automerge": true, 21 "automergeType": "branch" 22 }, 23 { 24 "description": "Group Docker base image updates", 25 "matchDatasources": ["docker"], 26 "groupName": "docker base images" 27 }, 28 { 29 "description": "Pin GitHub Actions to commit SHA", 30 "matchDepTypes": ["action"], 31 "pinDigests": true 32 } 33 ] 34}

config:recommended Renovate ನ ಆಯ್ದ ಬೇಸ್‌ಲೈನ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ; :semanticCommits PR ಶೀರ್ಷಿಕೆಗಳನ್ನು changelog generator ಗಳಲ್ಲಿ ಸ್ವಚ್ಛವಾಗಿ parse ಆಗುವಂತೆ ಮಾಡುತ್ತದೆ. ವಾರದ ದಿನದ schedule ಮತ್ತು ಎರಡು ಮಿತಿಗಳು bot ನ ಗದ್ದಲಕ್ಕೆ ಕಡಿವಾಣ ಹಾಕುತ್ತವೆ — ಅವುಗಳಿಲ್ಲದೆ ಹೊಸ repo ಐವತ್ತು ತೆರೆದ PR ಗಳೊಂದಿಗೆ ಎಚ್ಚರಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ತಂಡ bot ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಕಲಿಯುತ್ತದೆ. ನಾಲ್ಕು package rules AI-ನಿರ್ದಿಷ್ಟ ನೀತಿಯನ್ನು ಸಂಕೇತಿಸುತ್ತವೆ: SDK ಬಂಪ್‌ಗಳು needs-evaluation ಅನ್ನು ಹೊತ್ತು auto-merge ಆಗಲು ನಿರಾಕರಿಸುತ್ತವೆ; dev-dependency ಪ್ಯಾಚ್‌ಗಳು GitHub ನ branch protection ಮೂಲಕ auto-merge ಆಗುತ್ತವೆ; Docker base image ಗಳು ಗುಂಪಾಗುತ್ತವೆ; actions digest ಗಳಿಗೆ pin ಆಗುತ್ತವೆ.

ಇದು ಕೆಲಸ ಮಾಡುತ್ತಿದೆ ಎಂದು ನಿಮಗೆ ತಿಳಿಯುವುದು ಯಾವಾಗೆಂದರೆ (a) ಸ್ವಚ್ಛ checkout ನಲ್ಲಿ pre-commit run --all-files 0 ನೊಂದಿಗೆ ನಿರ್ಗಮಿಸಿದಾಗ, (b) test branch ನಲ್ಲಿ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಇಟ್ಟ ನಕಲಿ secret ಅನ್ನು hook ತಿರಸ್ಕರಿಸಿದಾಗ, (c) Renovate ನ onboarding PR merge ಆದಾಗ, ಮತ್ತು (d) openai ಬಂಪ್ needs-evaluation ನೊಂದಿಗೆ ತೆರೆದು auto-merge ಆಗಲು ನಿರಾಕರಿಸಿದಾಗ, ಆದರೆ devDependencies patch ಬಂಪ್ status checks ಪಾಸ್ ಆದ ನಂತರ auto-merge ಆದಾಗ.

ಗಾಗಿ ಪ್ರಾಯೋಗಿಕವಾಗಿ

ಕೋಡ್ ವಾಕ್‌ಥ್ರೂ ಮೇಲೆ ನಿರ್ಮಿಸುತ್ತಾ, ಅದೇ ಎರಡು ಫೈಲ್‌ಗಳು ದಿನನಿತ್ಯದ ಶಿಸ್ತು-ನಿರ್ದಿಷ್ಟ ಕೆಲಸವನ್ನು ಆಧರಿಸುತ್ತವೆ — ಯಾವ hooks ತಮ್ಮ ಮೌಲ್ಯವನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತವೆ ಮತ್ತು ಯಾವ Renovate rules ಹೆಚ್ಚು ಟ್ರಾಫಿಕ್ ಕಾಣುತ್ತವೆ ಎಂಬುದಷ್ಟೇ ಬದಲಾಗುತ್ತದೆ.

ಮಾಡಬೇಕಾದವು ಮತ್ತು ಮಾಡಬಾರದವು

ಮಾಡಬೇಕಾದವು

  1. CI ನಲ್ಲಿ pre-commit run --all-files ಚಲಾಯಿಸಿ — pre-commit install ಅನ್ನು ಬಿಟ್ಟುಬಿಟ್ಟ ಡೆವಲಪರ್‌ಗಳು ಇನ್ನೂ ಉಲ್ಲಂಘಿಸುವ commit ಗಳನ್ನು push ಮಾಡುತ್ತಾರೆ; CI ಹಂತವು PR ಸಮಯದಲ್ಲಿ ನಿಯಮಗಳನ್ನು ತಪ್ಪಿಸಲಾಗದಂತೆ ಮಾಡುತ್ತದೆ.
  2. GitHub Actions ಅನ್ನು commit SHA ಮೂಲಕ pin ಮಾಡಿ — tag ಅಪಹರಣ ನಿಜವಾದ supply-chain ದಾಳಿ; digest ಬಂಪ್‌ಗಳನ್ನು Renovate ನಿರ್ವಹಿಸಲು ಬಿಡಿ, ಇದರಿಂದ pinning ನಿಮಗೆ ಏನೂ ವೆಚ್ಚವಾಗುವುದಿಲ್ಲ.
  3. ಪ್ರತಿ ತ್ರೈಮಾಸಿಕ secret ಪತ್ತೆಯನ್ನು ಮರು-baseline ಮಾಡಿ — .secrets.baseline ನಮೂದುಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ; ಹಳೆಯ baseline ಹಳೆಯ false-positive ಸಾಲಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ನಿಜವಾದ ಸೋರಿಕೆಯನ್ನು ಮರೆಮಾಚಬಹುದು.

ಮಾಡಬಾರದವು

  1. model ವರ್ತನೆಯನ್ನು ಸ್ಪರ್ಶಿಸುವ ಯಾವುದನ್ನೂ auto-merge ಮಾಡಬೇಡಿ — LLM SDK ಗಳು, tokenizer ಗಳು, prompt template ಗಳು; minor ಬಂಪ್‌ಗಳು ರಾತ್ರೋರಾತ್ರಿ sampling ಡೀಫಾಲ್ಟ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು, ಆದ್ದರಿಂದ evaluation run ಅಗತ್ಯಪಡಿಸಿ.
  2. Renovate ಸರತಿ ಎರಡು ಪುಟಗಳನ್ನು ಮೀರಿ ಬೆಳೆಯಲು ಬಿಡಬೇಡಿ — ಹಾಗಾದಾಗ, ತಂಡ ಪರಿಶೀಲಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿದೆ ಎಂದರ್ಥ; schedule ಅನ್ನು ವಿರಾಮಗೊಳಿಸಿ, ಸರತಿಯನ್ನು ಖಾಲಿ ಮಾಡಿ, ನಂತರ ಪುನರಾರಂಭಿಸಿ.
  3. ಕಸ್ಟಮ್ hooks ಮೇಲೆ files: regex ಅನ್ನು ಬಿಟ್ಟುಬಿಡಬೇಡಿ — ಅದಿಲ್ಲದೆ, ಪ್ರತಿ commit ಪ್ರತಿ validator ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ ಮತ್ತು latency ತೆರಿಗೆ ಡೆವಲಪರ್‌ಗಳಿಗೆ --no-verify ಮೂಲಕ hooks ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡಲು ತರಬೇತಿ ನೀಡುತ್ತದೆ.

3 hands-on labs come with this lesson — real code, in a cloud IDE. Create a free account to run them. No card.

Free account · no card · straight to the labs

Or get the full path — from

Listen to this lesson

Audio overviews of this lesson's labs and its chapter, from GenBodha Bytes.

More free lessons in DevOps Foundations for GenAI Engineers

All free lessons in LLMOps Engineering →