opencode-skills-collection 4.0.67 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +281 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/artifact-yylo/SKILL.md +122 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/google-no-code/SKILL.md +136 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/wiki-yylo/SKILL.md +114 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-actions
|
|
3
|
+
description: Build, test, and deploy applications using GitHub Actions workflows.
|
|
4
|
+
category: devops
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
7
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,
|
|
13
|
+
CI runners) and authorized access to the target environment. Docs-only; helper scripts
|
|
14
|
+
and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# GitHub Actions
|
|
21
|
+
|
|
22
|
+
Automate software workflows directly in your GitHub repository with GitHub Actions.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
- Setting up CI/CD pipelines for GitHub repositories
|
|
28
|
+
- Automating build, test, and deployment workflows
|
|
29
|
+
- Creating reusable workflow components
|
|
30
|
+
- Configuring self-hosted runners
|
|
31
|
+
- Managing workflow secrets and variables
|
|
32
|
+
- Debugging failed workflow runs
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- GitHub repository with write access
|
|
37
|
+
- Understanding of YAML syntax
|
|
38
|
+
- For self-hosted runners: server with Docker (optional)
|
|
39
|
+
|
|
40
|
+
## Workflow File Structure
|
|
41
|
+
|
|
42
|
+
Workflows are defined in `.github/workflows/` directory:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
name: CI Pipeline
|
|
46
|
+
|
|
47
|
+
on:
|
|
48
|
+
push:
|
|
49
|
+
branches: [main, develop]
|
|
50
|
+
pull_request:
|
|
51
|
+
branches: [main]
|
|
52
|
+
|
|
53
|
+
jobs:
|
|
54
|
+
build:
|
|
55
|
+
runs-on: ubuntu-latest
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/checkout@v4
|
|
58
|
+
- name: Setup Node.js
|
|
59
|
+
uses: actions/setup-node@v4
|
|
60
|
+
with:
|
|
61
|
+
node-version: '20'
|
|
62
|
+
cache: 'npm'
|
|
63
|
+
- run: npm ci
|
|
64
|
+
- run: npm test
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Common Triggers
|
|
68
|
+
|
|
69
|
+
### Push and Pull Request
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
on:
|
|
73
|
+
push:
|
|
74
|
+
branches: [main]
|
|
75
|
+
paths:
|
|
76
|
+
- 'src/**'
|
|
77
|
+
- 'package.json'
|
|
78
|
+
pull_request:
|
|
79
|
+
branches: [main]
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Scheduled Runs
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
on:
|
|
86
|
+
schedule:
|
|
87
|
+
- cron: '0 2 * * *' # Daily at 2 AM UTC
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Manual Dispatch
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
on:
|
|
94
|
+
workflow_dispatch:
|
|
95
|
+
inputs:
|
|
96
|
+
environment:
|
|
97
|
+
description: 'Deployment environment'
|
|
98
|
+
required: true
|
|
99
|
+
default: 'staging'
|
|
100
|
+
type: choice
|
|
101
|
+
options:
|
|
102
|
+
- staging
|
|
103
|
+
- production
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Job Configuration
|
|
107
|
+
|
|
108
|
+
### Matrix Builds
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
jobs:
|
|
112
|
+
test:
|
|
113
|
+
runs-on: ubuntu-latest
|
|
114
|
+
strategy:
|
|
115
|
+
matrix:
|
|
116
|
+
node-version: [18, 20, 22]
|
|
117
|
+
os: [ubuntu-latest, windows-latest]
|
|
118
|
+
steps:
|
|
119
|
+
- uses: actions/checkout@v4
|
|
120
|
+
- uses: actions/setup-node@v4
|
|
121
|
+
with:
|
|
122
|
+
node-version: ${{ matrix.node-version }}
|
|
123
|
+
- run: npm test
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Job Dependencies
|
|
127
|
+
|
|
128
|
+
```yaml
|
|
129
|
+
jobs:
|
|
130
|
+
build:
|
|
131
|
+
runs-on: ubuntu-latest
|
|
132
|
+
steps:
|
|
133
|
+
- run: npm run build
|
|
134
|
+
|
|
135
|
+
test:
|
|
136
|
+
needs: build
|
|
137
|
+
runs-on: ubuntu-latest
|
|
138
|
+
steps:
|
|
139
|
+
- run: npm test
|
|
140
|
+
|
|
141
|
+
deploy:
|
|
142
|
+
needs: [build, test]
|
|
143
|
+
runs-on: ubuntu-latest
|
|
144
|
+
steps:
|
|
145
|
+
- run: ./deploy.sh
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Environment Protection
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
jobs:
|
|
152
|
+
deploy:
|
|
153
|
+
runs-on: ubuntu-latest
|
|
154
|
+
environment:
|
|
155
|
+
name: production
|
|
156
|
+
url: https://example.com
|
|
157
|
+
steps:
|
|
158
|
+
- run: ./deploy.sh
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Secrets and Variables
|
|
162
|
+
|
|
163
|
+
### Using Secrets
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
steps:
|
|
167
|
+
- name: Deploy
|
|
168
|
+
env:
|
|
169
|
+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
170
|
+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
171
|
+
run: aws s3 sync ./dist s3://my-bucket
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Using Variables
|
|
175
|
+
|
|
176
|
+
```yaml
|
|
177
|
+
steps:
|
|
178
|
+
- name: Build
|
|
179
|
+
env:
|
|
180
|
+
API_URL: ${{ vars.API_URL }}
|
|
181
|
+
run: npm run build
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Caching Dependencies
|
|
185
|
+
|
|
186
|
+
```yaml
|
|
187
|
+
- uses: actions/cache@v4
|
|
188
|
+
with:
|
|
189
|
+
path: ~/.npm
|
|
190
|
+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
191
|
+
restore-keys: |
|
|
192
|
+
${{ runner.os }}-node-
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Artifacts
|
|
196
|
+
|
|
197
|
+
### Upload Artifacts
|
|
198
|
+
|
|
199
|
+
```yaml
|
|
200
|
+
- uses: actions/upload-artifact@v4
|
|
201
|
+
with:
|
|
202
|
+
name: build-output
|
|
203
|
+
path: dist/
|
|
204
|
+
retention-days: 5
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Download Artifacts
|
|
208
|
+
|
|
209
|
+
```yaml
|
|
210
|
+
- uses: actions/download-artifact@v4
|
|
211
|
+
with:
|
|
212
|
+
name: build-output
|
|
213
|
+
path: dist/
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Docker Builds
|
|
217
|
+
|
|
218
|
+
```yaml
|
|
219
|
+
jobs:
|
|
220
|
+
docker:
|
|
221
|
+
runs-on: ubuntu-latest
|
|
222
|
+
steps:
|
|
223
|
+
- uses: actions/checkout@v4
|
|
224
|
+
|
|
225
|
+
- name: Login to Docker Hub
|
|
226
|
+
uses: docker/login-action@v3
|
|
227
|
+
with:
|
|
228
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
|
229
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
230
|
+
|
|
231
|
+
- name: Build and push
|
|
232
|
+
uses: docker/build-push-action@v5
|
|
233
|
+
with:
|
|
234
|
+
context: .
|
|
235
|
+
push: true
|
|
236
|
+
tags: user/app:latest
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Reusable Workflows
|
|
240
|
+
|
|
241
|
+
### Define Reusable Workflow
|
|
242
|
+
|
|
243
|
+
```yaml
|
|
244
|
+
# .github/workflows/reusable-deploy.yml
|
|
245
|
+
name: Reusable Deploy
|
|
246
|
+
|
|
247
|
+
on:
|
|
248
|
+
workflow_call:
|
|
249
|
+
inputs:
|
|
250
|
+
environment:
|
|
251
|
+
required: true
|
|
252
|
+
type: string
|
|
253
|
+
secrets:
|
|
254
|
+
deploy_key:
|
|
255
|
+
required: true
|
|
256
|
+
|
|
257
|
+
jobs:
|
|
258
|
+
deploy:
|
|
259
|
+
runs-on: ubuntu-latest
|
|
260
|
+
environment: ${{ inputs.environment }}
|
|
261
|
+
steps:
|
|
262
|
+
- run: echo "Deploying to ${{ inputs.environment }}"
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Call Reusable Workflow
|
|
266
|
+
|
|
267
|
+
```yaml
|
|
268
|
+
jobs:
|
|
269
|
+
deploy-staging:
|
|
270
|
+
uses: ./.github/workflows/reusable-deploy.yml
|
|
271
|
+
with:
|
|
272
|
+
environment: staging
|
|
273
|
+
secrets:
|
|
274
|
+
deploy_key: ${{ secrets.STAGING_KEY }}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Self-Hosted Runners
|
|
278
|
+
|
|
279
|
+
### Register Runner
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Download runner
|
|
283
|
+
mkdir actions-runner && cd actions-runner
|
|
284
|
+
curl -o actions-runner-linux-x64.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz
|
|
285
|
+
tar xzf actions-runner-linux-x64.tar.gz
|
|
286
|
+
|
|
287
|
+
# Configure
|
|
288
|
+
./config.sh --url https://github.com/OWNER/REPO --token TOKEN
|
|
289
|
+
|
|
290
|
+
# Run
|
|
291
|
+
./run.sh
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Use Self-Hosted Runner
|
|
295
|
+
|
|
296
|
+
```yaml
|
|
297
|
+
jobs:
|
|
298
|
+
build:
|
|
299
|
+
runs-on: self-hosted
|
|
300
|
+
steps:
|
|
301
|
+
- uses: actions/checkout@v4
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Debugging Workflows
|
|
305
|
+
|
|
306
|
+
### Enable Debug Logging
|
|
307
|
+
|
|
308
|
+
Set repository secrets:
|
|
309
|
+
- `ACTIONS_RUNNER_DEBUG`: `true`
|
|
310
|
+
- `ACTIONS_STEP_DEBUG`: `true`
|
|
311
|
+
|
|
312
|
+
### Debug Step
|
|
313
|
+
|
|
314
|
+
```yaml
|
|
315
|
+
- name: Debug
|
|
316
|
+
run: |
|
|
317
|
+
echo "GitHub context: ${{ toJson(github) }}"
|
|
318
|
+
echo "Job context: ${{ toJson(job) }}"
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
## Common Issues
|
|
322
|
+
|
|
323
|
+
### Issue: Workflow Not Triggering
|
|
324
|
+
**Problem**: Workflow doesn't run on push/PR
|
|
325
|
+
**Solution**: Check branch filters, path filters, and ensure workflow file is on the default branch
|
|
326
|
+
|
|
327
|
+
### Issue: Permission Denied
|
|
328
|
+
**Problem**: Actions can't push or create PRs
|
|
329
|
+
**Solution**: Configure `permissions` in workflow or update repository settings
|
|
330
|
+
|
|
331
|
+
```yaml
|
|
332
|
+
permissions:
|
|
333
|
+
contents: write
|
|
334
|
+
pull-requests: write
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
### Issue: Cache Not Restoring
|
|
338
|
+
**Problem**: Cache misses despite existing cache
|
|
339
|
+
**Solution**: Verify cache key matches exactly, check runner OS
|
|
340
|
+
|
|
341
|
+
## Best Practices
|
|
342
|
+
|
|
343
|
+
- Pin action versions to specific commits or tags
|
|
344
|
+
- Use caching for dependencies to speed up builds
|
|
345
|
+
- Minimize secrets exposure with environment scoping
|
|
346
|
+
- Use matrix builds for cross-platform testing
|
|
347
|
+
- Implement proper error handling with `continue-on-error`
|
|
348
|
+
- Keep workflows DRY with reusable workflows and composite actions
|
|
349
|
+
|
|
350
|
+
## Related Skills
|
|
351
|
+
|
|
352
|
+
- gitlab-ci (`gitlab-ci`) - GitLab CI/CD alternative
|
|
353
|
+
- docker-management (`docker-management`) - Container builds
|
|
354
|
+
- semantic-versioning (`semantic-versioning`) - Automated releases
|
|
355
|
+
|
|
356
|
+
## Limitations
|
|
357
|
+
|
|
358
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
359
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
360
|
+
|
|
361
|
+
### Example
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
git status && git diff --stat
|
|
365
|
+
kubectl diff -f manifest.yaml
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gitlab-ci
|
|
3
|
+
description: Configure GitLab CI/CD pipelines and runners for automated building,
|
|
4
|
+
testing, and deployment.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,
|
|
14
|
+
CI runners) and authorized access to the target environment. Docs-only; helper scripts
|
|
15
|
+
and templates not bundled.
|
|
16
|
+
metadata:
|
|
17
|
+
author: devops-skills
|
|
18
|
+
version: '1.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# GitLab CI/CD
|
|
22
|
+
|
|
23
|
+
Automate your software delivery pipeline with GitLab's integrated CI/CD system.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
Use this skill when:
|
|
28
|
+
- Setting up CI/CD pipelines in GitLab
|
|
29
|
+
- Configuring GitLab runners (shared or self-hosted)
|
|
30
|
+
- Creating multi-stage deployment pipelines
|
|
31
|
+
- Implementing GitLab Auto DevOps
|
|
32
|
+
- Managing CI/CD variables and secrets
|
|
33
|
+
|
|
34
|
+
## Prerequisites
|
|
35
|
+
|
|
36
|
+
- GitLab repository (gitlab.com or self-hosted)
|
|
37
|
+
- Basic understanding of YAML
|
|
38
|
+
- For self-hosted runners: Linux server or Kubernetes cluster
|
|
39
|
+
|
|
40
|
+
## Pipeline Configuration
|
|
41
|
+
|
|
42
|
+
Create `.gitlab-ci.yml` in repository root:
|
|
43
|
+
|
|
44
|
+
```yaml
|
|
45
|
+
stages:
|
|
46
|
+
- build
|
|
47
|
+
- test
|
|
48
|
+
- deploy
|
|
49
|
+
|
|
50
|
+
variables:
|
|
51
|
+
NODE_VERSION: "20"
|
|
52
|
+
|
|
53
|
+
build:
|
|
54
|
+
stage: build
|
|
55
|
+
image: node:${NODE_VERSION}
|
|
56
|
+
script:
|
|
57
|
+
- npm ci
|
|
58
|
+
- npm run build
|
|
59
|
+
artifacts:
|
|
60
|
+
paths:
|
|
61
|
+
- dist/
|
|
62
|
+
expire_in: 1 hour
|
|
63
|
+
|
|
64
|
+
test:
|
|
65
|
+
stage: test
|
|
66
|
+
image: node:${NODE_VERSION}
|
|
67
|
+
script:
|
|
68
|
+
- npm ci
|
|
69
|
+
- npm test
|
|
70
|
+
coverage: '/Coverage: \d+\.\d+%/'
|
|
71
|
+
|
|
72
|
+
deploy:
|
|
73
|
+
stage: deploy
|
|
74
|
+
script:
|
|
75
|
+
- ./deploy.sh
|
|
76
|
+
environment:
|
|
77
|
+
name: production
|
|
78
|
+
url: https://example.com
|
|
79
|
+
only:
|
|
80
|
+
- main
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Job Configuration
|
|
84
|
+
|
|
85
|
+
### Rules-Based Execution
|
|
86
|
+
|
|
87
|
+
```yaml
|
|
88
|
+
deploy:
|
|
89
|
+
script: ./deploy.sh
|
|
90
|
+
rules:
|
|
91
|
+
- if: $CI_COMMIT_BRANCH == "main"
|
|
92
|
+
when: manual
|
|
93
|
+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
94
|
+
when: never
|
|
95
|
+
- when: on_success
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Parallel Jobs
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
test:
|
|
102
|
+
stage: test
|
|
103
|
+
parallel: 3
|
|
104
|
+
script:
|
|
105
|
+
- npm test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Matrix Builds
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
test:
|
|
112
|
+
stage: test
|
|
113
|
+
parallel:
|
|
114
|
+
matrix:
|
|
115
|
+
- NODE_VERSION: ["18", "20", "22"]
|
|
116
|
+
OS: ["alpine", "slim"]
|
|
117
|
+
image: node:${NODE_VERSION}-${OS}
|
|
118
|
+
script:
|
|
119
|
+
- npm test
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Caching
|
|
123
|
+
|
|
124
|
+
```yaml
|
|
125
|
+
cache:
|
|
126
|
+
key:
|
|
127
|
+
files:
|
|
128
|
+
- package-lock.json
|
|
129
|
+
paths:
|
|
130
|
+
- node_modules/
|
|
131
|
+
policy: pull-push
|
|
132
|
+
|
|
133
|
+
build:
|
|
134
|
+
cache:
|
|
135
|
+
key: build-cache
|
|
136
|
+
paths:
|
|
137
|
+
- .cache/
|
|
138
|
+
policy: pull
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Artifacts
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
build:
|
|
145
|
+
artifacts:
|
|
146
|
+
paths:
|
|
147
|
+
- dist/
|
|
148
|
+
- coverage/
|
|
149
|
+
reports:
|
|
150
|
+
junit: junit.xml
|
|
151
|
+
coverage_report:
|
|
152
|
+
coverage_format: cobertura
|
|
153
|
+
path: coverage/cobertura.xml
|
|
154
|
+
expire_in: 1 week
|
|
155
|
+
when: always
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Environments and Deployments
|
|
159
|
+
|
|
160
|
+
```yaml
|
|
161
|
+
deploy_staging:
|
|
162
|
+
stage: deploy
|
|
163
|
+
script:
|
|
164
|
+
- deploy --env staging
|
|
165
|
+
environment:
|
|
166
|
+
name: staging
|
|
167
|
+
url: https://staging.example.com
|
|
168
|
+
on_stop: stop_staging
|
|
169
|
+
|
|
170
|
+
stop_staging:
|
|
171
|
+
stage: deploy
|
|
172
|
+
script:
|
|
173
|
+
- undeploy --env staging
|
|
174
|
+
environment:
|
|
175
|
+
name: staging
|
|
176
|
+
action: stop
|
|
177
|
+
when: manual
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Docker Builds
|
|
181
|
+
|
|
182
|
+
```yaml
|
|
183
|
+
build_image:
|
|
184
|
+
stage: build
|
|
185
|
+
image: docker:24
|
|
186
|
+
services:
|
|
187
|
+
- docker:24-dind
|
|
188
|
+
variables:
|
|
189
|
+
DOCKER_TLS_CERTDIR: "/certs"
|
|
190
|
+
script:
|
|
191
|
+
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
|
192
|
+
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
|
|
193
|
+
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## GitLab Runners
|
|
197
|
+
|
|
198
|
+
### Install Runner
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
# Download and install
|
|
202
|
+
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
|
|
203
|
+
sudo apt install gitlab-runner
|
|
204
|
+
|
|
205
|
+
# Register runner
|
|
206
|
+
sudo gitlab-runner register \
|
|
207
|
+
--url https://gitlab.com/ \
|
|
208
|
+
--registration-token TOKEN \
|
|
209
|
+
--executor docker \
|
|
210
|
+
--docker-image alpine:latest
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Runner Configuration
|
|
214
|
+
|
|
215
|
+
```toml
|
|
216
|
+
# /etc/gitlab-runner/config.toml
|
|
217
|
+
[[runners]]
|
|
218
|
+
name = "docker-runner"
|
|
219
|
+
url = "https://gitlab.com/"
|
|
220
|
+
token = "TOKEN"
|
|
221
|
+
executor = "docker"
|
|
222
|
+
[runners.docker]
|
|
223
|
+
image = "alpine:latest"
|
|
224
|
+
privileged = true
|
|
225
|
+
volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Runner Tags
|
|
229
|
+
|
|
230
|
+
```yaml
|
|
231
|
+
build:
|
|
232
|
+
tags:
|
|
233
|
+
- docker
|
|
234
|
+
- linux
|
|
235
|
+
script:
|
|
236
|
+
- make build
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## CI/CD Variables
|
|
240
|
+
|
|
241
|
+
### Protected Variables
|
|
242
|
+
|
|
243
|
+
Define in Settings > CI/CD > Variables:
|
|
244
|
+
- `AWS_ACCESS_KEY_ID` (protected, masked)
|
|
245
|
+
- `AWS_SECRET_ACCESS_KEY` (protected, masked)
|
|
246
|
+
|
|
247
|
+
### Using Variables
|
|
248
|
+
|
|
249
|
+
```yaml
|
|
250
|
+
deploy:
|
|
251
|
+
script:
|
|
252
|
+
- aws s3 sync dist/ s3://$S3_BUCKET
|
|
253
|
+
variables:
|
|
254
|
+
AWS_DEFAULT_REGION: us-east-1
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Include and Extend
|
|
258
|
+
|
|
259
|
+
### Include Templates
|
|
260
|
+
|
|
261
|
+
```yaml
|
|
262
|
+
include:
|
|
263
|
+
- template: Security/SAST.gitlab-ci.yml
|
|
264
|
+
- project: 'group/shared-ci'
|
|
265
|
+
file: '/templates/deploy.yml'
|
|
266
|
+
- local: '/ci/jobs.yml'
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Extend Jobs
|
|
270
|
+
|
|
271
|
+
```yaml
|
|
272
|
+
.base_job:
|
|
273
|
+
image: node:20
|
|
274
|
+
before_script:
|
|
275
|
+
- npm ci
|
|
276
|
+
|
|
277
|
+
build:
|
|
278
|
+
extends: .base_job
|
|
279
|
+
script:
|
|
280
|
+
- npm run build
|
|
281
|
+
|
|
282
|
+
test:
|
|
283
|
+
extends: .base_job
|
|
284
|
+
script:
|
|
285
|
+
- npm test
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
## Multi-Project Pipelines
|
|
289
|
+
|
|
290
|
+
```yaml
|
|
291
|
+
trigger_downstream:
|
|
292
|
+
stage: deploy
|
|
293
|
+
trigger:
|
|
294
|
+
project: group/downstream-project
|
|
295
|
+
branch: main
|
|
296
|
+
strategy: depend
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## Common Issues
|
|
300
|
+
|
|
301
|
+
### Issue: Pipeline Stuck
|
|
302
|
+
**Problem**: Jobs stay pending
|
|
303
|
+
**Solution**: Check runner availability and tags matching
|
|
304
|
+
|
|
305
|
+
### Issue: Docker-in-Docker Fails
|
|
306
|
+
**Problem**: Cannot connect to Docker daemon
|
|
307
|
+
**Solution**: Use `docker:dind` service with proper TLS configuration
|
|
308
|
+
|
|
309
|
+
### Issue: Cache Not Working
|
|
310
|
+
**Problem**: Cache misses between jobs
|
|
311
|
+
**Solution**: Verify cache key and ensure runners share distributed cache
|
|
312
|
+
|
|
313
|
+
## Best Practices
|
|
314
|
+
|
|
315
|
+
- Use `rules` instead of `only/except` for complex conditions
|
|
316
|
+
- Leverage GitLab's built-in security scanning templates
|
|
317
|
+
- Use job dependencies to optimize pipeline speed
|
|
318
|
+
- Implement review apps for merge requests
|
|
319
|
+
- Cache dependencies aggressively
|
|
320
|
+
- Use artifacts for passing data between stages
|
|
321
|
+
|
|
322
|
+
## Related Skills
|
|
323
|
+
|
|
324
|
+
- github-actions (`github-actions`) - GitHub CI/CD alternative
|
|
325
|
+
- argocd-gitops (`argocd-gitops`) - GitOps deployments
|
|
326
|
+
- container-registries (`container-registries`) - Registry management
|
|
327
|
+
|
|
328
|
+
## Limitations
|
|
329
|
+
|
|
330
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
331
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
332
|
+
|
|
333
|
+
### Example
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
git status && git diff --stat
|
|
337
|
+
kubectl diff -f manifest.yaml
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|