{"count":37404,"next":"http://galaxy.ansible.com/api/v1/roles/?page=3736","previous":"http://galaxy.ansible.com/api/v1/roles/?page=3734","results":[{"id":42940,"upstream_id":null,"created":"2026-05-10T19:40:45.952011Z","modified":"2026-05-10T19:40:46.018677Z","imported":"2026-05-10T19:40:45.948689","github_user":"tomasz-katana","username":"tomasz-katana","github_repo":"ansible-role-system_backup","github_branch":"main","commit":"8e98ebdddf9ad7fd28e3c6c2e4a79708d841c3ee","commit_message":"Pierwsze wydanie roli system_backup\n","name":"system_backup","description":"Rola instalujaca i konfiguruja zautomatyzowane kopie zapasowe przy uzyciu rsync i cron.","summary_fields":{"dependencies":[],"namespace":{"id":27481,"name":"tomasz-katana","avatar_url":"https://github.com/tomasz-katana.png"},"provider_namespace":{"id":36903,"name":"tomasz_katana","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36903/"},"repository":{"name":"ansible-role-system_backup","original_name":"ansible-role-system_backup"},"tags":["system","backup","rsync","cron","automation"],"versions":[{"id":"872b4baf-e529-487f-8fe5-fa4ee5b7105f","name":"1.0.0","release_date":"2026-05-10T21:13:11+02:00"}]},"download_count":0},{"id":42941,"upstream_id":null,"created":"2026-05-10T21:47:33.802997Z","modified":"2026-05-24T17:15:23.040533Z","imported":"2026-05-24T17:15:22.801119","github_user":"grzegorzfranus","username":"grzegorzfranus","github_repo":"ansible-role-certbot","github_branch":"main","commit":"df66269f37c578bc8657154ccbede5e7a3390a50","commit_message":"chore(main): release 1.4.1 (#8)\n\nCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>","name":"certbot","description":"Install and configure Certbot for Let's Encrypt SSL/TLS certificates. Supports HTTP and DNS validation, wildcard certs, auto-renewal, and revocation.","summary_fields":{"dependencies":[],"namespace":{"id":20540,"name":"grzegorzfranus","avatar_url":"https://github.com/grzegorzfranus.png"},"provider_namespace":{"id":30034,"name":"grzegorzfranus","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/30034/"},"repository":{"name":"ansible-role-certbot","original_name":"ansible-role-certbot"},"tags":["certbot","letsencrypt","ssl","tls","certificate","https","cloudflare","route53","digitalocean","dns","acme","security","encryption"],"versions":[{"id":"fc2e1ca0-e84b-4929-9695-88325b19423c","name":"v1.4.1","release_date":"2026-05-24T19:14:39+02:00"},{"id":"2393dae2-81da-4180-9a45-da1dc2db5a95","name":"v1.4.0","release_date":"2026-05-21T12:33:01+02:00"},{"id":"6e2fecfd-be57-4538-b2b0-f4fdbc3a007f","name":"v1.3.0","release_date":"2026-05-10T23:33:12+02:00"},{"id":"7dd068fb-f7c1-4ca4-8d0a-88a19eb9994b","name":"v1.0.4","release_date":"2026-05-18T12:03:49+02:00"},{"id":"97138fe0-dc41-4a33-bcc9-593e01563409","name":"v1.0.3","release_date":"2026-05-18T12:03:49+02:00"}]},"download_count":0},{"id":42942,"upstream_id":null,"created":"2026-05-11T01:48:48.622024Z","modified":"2026-05-11T01:48:48.662757Z","imported":"2026-05-11T01:48:48.618554","github_user":"nida-personal","username":"nida-personal","github_repo":"ansible-role-linux-user-provisioning","github_branch":"main","commit":"268b94c909e8fdb1006cf639dbf70f0ec9a6ae33","commit_message":"Update namespace in meta/main.yml","name":"linux_user_provisioning","description":"Ansible role to automate Linux user provisioning, group assignment, SSH key management, and secure deprovisioning on RHEL/Ubuntu systems.\n","summary_fields":{"dependencies":[],"namespace":{"id":27485,"name":"nida-personal","avatar_url":"https://github.com/nida-personal.png"},"provider_namespace":{"id":36907,"name":"nida_personal","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36907/"},"repository":{"name":"ansible-role-linux-user-provisioning","original_name":"ansible-role-linux-user-provisioning"},"tags":["linux","users","provisioning","ansible","automation","rhel","ubuntu","security"],"versions":[]},"download_count":0},{"id":42943,"upstream_id":null,"created":"2026-05-11T11:30:23.276986Z","modified":"2026-05-11T11:30:23.474807Z","imported":"2026-05-11T11:30:23.273231","github_user":"endriu96","username":"endriu96","github_repo":"ansible-node-exporter-role","github_branch":"main","commit":"18d4843b39e8af4527739e4e3e949258c9771f6e","commit_message":"Fix structure\n","name":"node_exporter","description":"Role to install and configure Prometheus Node Exporter","summary_fields":{"dependencies":[],"namespace":{"id":27494,"name":"endriu96","avatar_url":"https://github.com/endriu96.png"},"provider_namespace":{"id":36916,"name":"endriu96","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36916/"},"repository":{"name":"ansible-node-exporter-role","original_name":"ansible-node-exporter-role"},"tags":["monitoring","prometheus","node_exporter"],"versions":[]},"download_count":0},{"id":42944,"upstream_id":null,"created":"2026-05-11T13:18:34.869693Z","modified":"2026-05-11T13:18:34.954116Z","imported":"2026-05-11T13:18:34.866129","github_user":"foi","username":"foi","github_repo":"ansible-role-dumbproxy","github_branch":"main","commit":"1829903ebcc696c38a9401f20135d138a44da380","commit_message":"fix typos\n","name":"dumbproxy","description":"dumbproxy systemd ansible role","summary_fields":{"dependencies":[],"namespace":{"id":25283,"name":"foi","avatar_url":"https://github.com/foi.png"},"provider_namespace":{"id":34735,"name":"foi","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/34735/"},"repository":{"name":"ansible-role-dumbproxy","original_name":"ansible-role-dumbproxy"},"tags":["proxy-server","dumbproxy","socks5-server","dpi-bypassing","proxy"],"versions":[{"id":"ec20471f-677f-4d7a-b46f-d3e3865e57aa","name":"1.0.0","release_date":"2026-05-11T20:12:46+07:00"}]},"download_count":0},{"id":42945,"upstream_id":null,"created":"2026-05-11T14:45:32.737939Z","modified":"2026-05-11T17:43:57.659494Z","imported":"2026-05-11T17:43:57.613160","github_user":"serwin35","username":"serwin35","github_repo":"ansible-role-dumper","github_branch":"main","commit":"98cab08bf0a3a591f13927ad82a3e508ca335e35","commit_message":"ci: fix ansible-lint failures\n\n- Add trailing newlines to YAML files (yaml[new-line-at-end-of-file])\n- Replace robertdebock/galaxy-action with ansible-galaxy CLI\n- Trigger Galaxy import only on tag push\n","name":"dumper","description":"Automated MySQL/MariaDB backup with retention and dedicated backup user","summary_fields":{"dependencies":[],"namespace":{"id":27497,"name":"serwin35","avatar_url":"https://github.com/serwin35.png"},"provider_namespace":{"id":36919,"name":"serwin35","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36919/"},"repository":{"name":"ansible-role-dumper","original_name":"ansible-role-dumper"},"tags":["mysql","mariadb","backup","database","cron","dump","devops"],"versions":[{"id":"c0e80779-5a60-40b7-b93f-23df34345f1f","name":"v1.0.1","release_date":"2026-05-11T19:40:39+02:00"},{"id":"4ba60a23-2e23-4daa-8ab9-080f20546a36","name":"v1.0.0","release_date":"2026-05-11T16:17:49+02:00"}]},"download_count":3},{"id":42946,"upstream_id":null,"created":"2026-05-11T16:22:07.302739Z","modified":"2026-05-11T16:22:07.349757Z","imported":"2026-05-11T16:22:07.298604","github_user":"Zegzus","username":"Zegzus","github_repo":"learnit_ansible_task","github_branch":"main","commit":"3dce1cfb12afc1337559c5b3acd567de7af5085a","commit_message":"inital ansible roel\n","name":"my_ansible_role","description":"test role","summary_fields":{"dependencies":[],"namespace":{"id":27501,"name":"Zegzus","avatar_url":"https://github.com/Zegzus.png"},"provider_namespace":{"id":36923,"name":"zegzus","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36923/"},"repository":{"name":"learnit_ansible_task","original_name":"learnit_ansible_task"},"tags":[],"versions":[]},"download_count":2},{"id":42947,"upstream_id":null,"created":"2026-05-11T16:41:59.939973Z","modified":"2026-05-11T16:42:00.028690Z","imported":"2026-05-11T16:41:59.936985","github_user":"Teleferie","username":"Teleferie","github_repo":"ansible-role-docker","github_branch":"main","commit":"85011fd4755df6583dff01e264a122e3a9705d83","commit_message":"feat: initial commit of docker installation role\n","name":"docker","description":"Rola Ansible instalująca i konfigurująca Docker Engine na systemach Debian i RedHat.","summary_fields":{"dependencies":[],"namespace":{"id":27502,"name":"Teleferie","avatar_url":"https://github.com/Teleferie.png"},"provider_namespace":{"id":36924,"name":"teleferie","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36924/"},"repository":{"name":"ansible-role-docker","original_name":"ansible-role-docker"},"tags":["docker","system","virtualization","container"],"versions":[{"id":"87cf45bd-1776-487d-a8c1-d5b848469fbf","name":"v1.0.0","release_date":"2026-05-11T17:51:29+02:00"}]},"download_count":2},{"id":42948,"upstream_id":null,"created":"2026-05-11T17:20:00.762408Z","modified":"2026-05-11T17:20:00.829611Z","imported":"2026-05-11T17:20:00.751788","github_user":"NDark99","username":"NDark99","github_repo":"ansible-nginx-role","github_branch":"main","commit":"d14d5778fdc4a276038ff5d5443a727adefd5e70","commit_message":"Fix role metadata and lint issues\n","name":"nginx_role","description":"Simple Ansible role that installs and configures Nginx on Debian and Ubuntu.","summary_fields":{"dependencies":[],"namespace":{"id":27505,"name":"NDark99","avatar_url":"https://github.com/NDark99.png"},"provider_namespace":{"id":36927,"name":"ndark99","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36927/"},"repository":{"name":"ansible-nginx-role","original_name":"ansible-nginx-role"},"tags":["nginx","web","server","ubuntu","debian"],"versions":[]},"download_count":0},{"id":42949,"upstream_id":null,"created":"2026-05-12T07:37:08.961152Z","modified":"2026-05-20T00:21:31.704637Z","imported":"2026-05-20T00:21:31.620848","github_user":"echennells","username":"echennells","github_repo":"supply-chain-hardening","github_branch":"main","commit":"2ac4967ece6dbf45e3f281fa9992f89bf191b9ef","commit_message":"Add 27 tests targeting bug patterns the existing suite missed\n\nBugs found in the May 2026 production review (H1/H2/H3 tool-install\naborts, M1/M2 documented bypasses) didn't trip the existing bats suite\nbecause the suite tests \"config files have the right content\" but not\n\"the play actually completes on every realistic host configuration.\"\nThis change adds tests targeting the categories of gap that produced\nthose bugs:\n\nA. Integration regressions (new 25-integration-regressions.bats, 11)\n   - Structural catchers for H1 (absolute uv path in uv.yml), H2\n     (same in github.yml), H3 (GOTOOLCHAIN=auto scoped on govulncheck\n     and pinact installs).\n   - Substrate test: confirms bare `uv` actually fails when\n     ~/.local/bin is missing from PATH (validates the H1/H2 bug\n     premise — if that stops being true, the fix is less important).\n   - Preflight tests: rejects release_age_hours <= 0; refuses to\n     overwrite unmarked /etc/npmrc; accepts accept_etc_overwrite=true.\n   - Idempotency: re-applies the playbook and asserts changed=0 on\n     second run. Catches \"task that always reports changed\" bugs,\n     which is the L1 regression in disguise.\n\nB. Bypass surface tests\n   - 09-python-adversarial.bats #4: asserts M1 bypass works\n     (python3 -m pip --no-binary :all: --break-system-packages\n     defeats both the wrapper and /etc/pip.conf). Locks in the\n     documented limit so unintentional \"fixes\" surface.\n   - 08-npm-adversarial.bats: asserts `npm install --ignore-scripts=false`\n     CLI flag does NOT bypass; asserts user-level ~/.npmrc override\n     is overridden by env+system layers.\n   - 23-npm-path-wrapper.bats: direct /usr/bin/npm call still blocks\n     scripts (config-layer coverage); PATH-prepended shim CAN bypass\n     wrapper (documented limit); md5-survival check on npm self-upgrade.\n\nC. Systemd coverage (new 26-systemd-coverage.bats, 6)\n   - Locks in M2: env-var-only protection (GOTOOLCHAIN) is absent in\n     a systemd-style clean environment; EnvironmentFile workaround\n     restores it. Live-systemd transient unit test (skips when\n     systemd unavailable).\n\nD. Cache and time exploration (new 27-cache-and-time.bats, 4)\n   - Documents npm cache scope and the cache-bypass-of-age-gate\n     question. faketime-based clock-skew test scaffolded but skips\n     (faketime not in Dockerfile).\n\nTESTS.md updated:\n- Count 166 -> 193\n- New \"Known coverage gaps\" section documents what the suite still\n  doesn't cover (stock-go matrix, fresh-host PATH simulation, pnpm\n  version matrix, faketime). Future authors see the gaps explicitly\n  rather than rediscovering them.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n","name":"supply_chain_hardening","description":"Sets safe defaults for 14 package managers (npm, pnpm, yarn, bun, deno, pip, uv, cargo, go, composer, bundler, maven, gradle, nuget) plus podman image policy. Designed for servers running AI agents that install packages unpredictably.","summary_fields":{"dependencies":[],"namespace":{"id":27513,"name":"echennells","avatar_url":"https://github.com/echennells.png"},"provider_namespace":{"id":36934,"name":"echennells","pulp_href":"/api/pulp/api/v3/pulp_ansible/namespaces/36934/"},"repository":{"name":"supply-chain-hardening","original_name":"supply-chain-hardening"},"tags":["security","supplychain","hardening","npm","pip","cargo","golang","composer","bundler","container","podman"],"versions":[{"id":"df9944c7-b3b6-41f0-a29e-dd9f50a090e7","name":"v1.2.1","release_date":"2026-05-20T00:04:55+00:00"},{"id":"8183a026-407f-47d3-ab64-564f0df75f3e","name":"v1.2.0","release_date":"2026-05-19T19:01:04+00:00"},{"id":"02fd42fe-0c29-4786-8fe5-c94dc59ee7f8","name":"v1.1.0","release_date":"2026-05-12T20:37:36-07:00"},{"id":"4a3349ad-388c-4500-a154-61f0905605ab","name":"v1.0.0","release_date":"2026-05-12T00:31:36-07:00"}]},"download_count":4}]}