cloudcheck 11.1.0__tar.gz → 11.2.0__tar.gz

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.
Files changed (105) hide show
  1. cloudcheck-11.2.0/.github/dependabot.yml +87 -0
  2. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.github/workflows/cla.yml +1 -1
  3. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.github/workflows/daily-update.yml +2 -2
  4. cloudcheck-11.2.0/.github/workflows/dependabot-auto-merge.yml +12 -0
  5. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.github/workflows/docker-tests.yml +5 -5
  6. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.github/workflows/pipeline-tests.yml +3 -3
  7. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.github/workflows/python-tests.yml +17 -17
  8. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.github/workflows/rust-tests.yml +5 -5
  9. cloudcheck-11.2.0/.github/workflows/signature-update-alerts.yml +74 -0
  10. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/Cargo.lock +15 -85
  11. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/Cargo.toml +4 -4
  12. cloudcheck-11.2.0/LICENSE +662 -0
  13. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/PKG-INFO +50 -49
  14. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/README.md +47 -47
  15. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloud_providers_v3.json +10449 -8051
  16. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/zscaler.py +3 -0
  17. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck_update/__init__.py +4 -3
  18. cloudcheck-11.2.0/cloudcheck_update/cli.py +36 -0
  19. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck_update/test_cloudcheck_update.py +53 -0
  20. cloudcheck-11.2.0/dist/cloudcheck-11.2.0-cp314-cp314-manylinux_2_38_x86_64.whl +0 -0
  21. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/pyproject.toml +6 -3
  22. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/src/lib.rs +219 -66
  23. cloudcheck-11.2.0/uv.lock +357 -0
  24. cloudcheck-11.1.0/.github/dependabot.yml +0 -21
  25. cloudcheck-11.1.0/cloudcheck_update/cli.py +0 -21
  26. cloudcheck-11.1.0/dist/cloudcheck-11.1.0-cp314-cp314-manylinux_2_38_x86_64.whl +0 -0
  27. cloudcheck-11.1.0/uv.lock +0 -435
  28. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/.gitignore +0 -0
  29. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/Dockerfile +0 -0
  30. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloud_providers.json +0 -0
  31. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloud_providers_v2.json +0 -0
  32. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/__init__.py +0 -0
  33. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/helpers.py +0 -0
  34. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/__init__.py +0 -0
  35. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/akamai.py +0 -0
  36. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/alibaba.py +0 -0
  37. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/amazon.py +0 -0
  38. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/arvancloud.py +0 -0
  39. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/backblaze.py +0 -0
  40. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/baidu.py +0 -0
  41. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/base.py +0 -0
  42. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/bunnycdn.py +0 -0
  43. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/cachefly.py +0 -0
  44. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/cdnetworks.py +0 -0
  45. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/cisco.py +0 -0
  46. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/cloudflare.py +0 -0
  47. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/cloudfront.py +0 -0
  48. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/ddosguard.py +0 -0
  49. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/dell.py +0 -0
  50. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/digitalocean.py +0 -0
  51. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/dod.py +0 -0
  52. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/fastly.py +0 -0
  53. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/fbi.py +0 -0
  54. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/gabia.py +0 -0
  55. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/gcore.py +0 -0
  56. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/github.py +0 -0
  57. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/gocache.py +0 -0
  58. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/google.py +0 -0
  59. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/heroku.py +0 -0
  60. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/hetzner.py +0 -0
  61. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/hostway.py +0 -0
  62. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/hpe.py +0 -0
  63. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/huawei.py +0 -0
  64. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/ibm.py +0 -0
  65. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/iboss.py +0 -0
  66. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/imperva.py +0 -0
  67. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/kamatera.py +0 -0
  68. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/kinx.py +0 -0
  69. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/ktcloud.py +0 -0
  70. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/leaseweb.py +0 -0
  71. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/lgtelecom.py +0 -0
  72. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/microsoft.py +0 -0
  73. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/microsoft365.py +0 -0
  74. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/navercloud.py +0 -0
  75. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/nhncloud.py +0 -0
  76. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/oracle.py +0 -0
  77. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/ovh.py +0 -0
  78. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/qrator.py +0 -0
  79. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/quiccloud.py +0 -0
  80. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/rackspace.py +0 -0
  81. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/ru_fso.py +0 -0
  82. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/salesforce.py +0 -0
  83. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/scaleway.py +0 -0
  84. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/skbroadband.py +0 -0
  85. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/stormwall.py +0 -0
  86. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/sucuri.py +0 -0
  87. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/tencent.py +0 -0
  88. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/uk_mod.py +0 -0
  89. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/upcloud.py +0 -0
  90. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/vultr.py +0 -0
  91. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/wasabi.py +0 -0
  92. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/x4b.py +0 -0
  93. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/yandex.py +0 -0
  94. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/cloudcheck/providers/zoho.py +0 -0
  95. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/helm/Chart.yaml +0 -0
  96. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/helm/cloudcheck/values.yaml +0 -0
  97. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/helm/templates/cloudcheck.yaml +0 -0
  98. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/helm/values.yaml +0 -0
  99. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/pytest.ini +0 -0
  100. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/scripts/update_readme_table.py +0 -0
  101. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/src/api.rs +0 -0
  102. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/src/main.rs +0 -0
  103. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/src/python.rs +0 -0
  104. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/test_cloudcheck.py +0 -0
  105. {cloudcheck-11.1.0 → cloudcheck-11.2.0}/test_docker.py +0 -0
@@ -0,0 +1,87 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "cargo"
4
+ directory: "/"
5
+ target-branch: "dev"
6
+ schedule:
7
+ interval: "weekly"
8
+ groups:
9
+ cargo-minor-patch:
10
+ patterns:
11
+ - "*"
12
+ update-types:
13
+ - "minor"
14
+ - "patch"
15
+ cargo-major:
16
+ patterns:
17
+ - "*"
18
+ update-types:
19
+ - "major"
20
+ - package-ecosystem: "uv"
21
+ directory: "/"
22
+ target-branch: "dev"
23
+ schedule:
24
+ interval: "weekly"
25
+ groups:
26
+ uv-minor-patch:
27
+ patterns:
28
+ - "*"
29
+ update-types:
30
+ - "minor"
31
+ - "patch"
32
+ uv-major:
33
+ patterns:
34
+ - "*"
35
+ update-types:
36
+ - "major"
37
+ - package-ecosystem: "github-actions"
38
+ directory: "/"
39
+ target-branch: "dev"
40
+ schedule:
41
+ interval: "weekly"
42
+ groups:
43
+ github-actions-minor-patch:
44
+ patterns:
45
+ - "*"
46
+ update-types:
47
+ - "minor"
48
+ - "patch"
49
+ github-actions-major:
50
+ patterns:
51
+ - "*"
52
+ update-types:
53
+ - "major"
54
+ - package-ecosystem: "docker"
55
+ directory: "/"
56
+ target-branch: "dev"
57
+ schedule:
58
+ interval: "weekly"
59
+ groups:
60
+ docker-minor-patch:
61
+ patterns:
62
+ - "*"
63
+ update-types:
64
+ - "minor"
65
+ - "patch"
66
+ docker-major:
67
+ patterns:
68
+ - "*"
69
+ update-types:
70
+ - "major"
71
+ - package-ecosystem: "helm"
72
+ directory: "/helm"
73
+ target-branch: "dev"
74
+ schedule:
75
+ interval: "weekly"
76
+ groups:
77
+ helm-minor-patch:
78
+ patterns:
79
+ - "*"
80
+ update-types:
81
+ - "minor"
82
+ - "patch"
83
+ helm-major:
84
+ patterns:
85
+ - "*"
86
+ update-types:
87
+ - "major"
@@ -11,7 +11,7 @@ permissions:
11
11
 
12
12
  jobs:
13
13
  CLAAssistant:
14
- runs-on: ubuntu-latest
14
+ runs-on: ubuntu-24.04
15
15
  steps:
16
16
  - name: Generate token from GitHub App
17
17
  id: app-token
@@ -14,7 +14,7 @@ concurrency:
14
14
 
15
15
  jobs:
16
16
  update:
17
- runs-on: ubuntu-latest
17
+ runs-on: ubuntu-24.04
18
18
  permissions:
19
19
  contents: write
20
20
 
@@ -33,7 +33,7 @@ jobs:
33
33
  token: ${{ steps.app-token.outputs.token }}
34
34
 
35
35
  - name: Set up Python
36
- uses: actions/setup-python@v6
36
+ uses: actions/setup-python@v7
37
37
  with:
38
38
  python-version: "3.12"
39
39
 
@@ -0,0 +1,12 @@
1
+ name: Dependabot auto-merge
2
+ on: pull_request
3
+
4
+ permissions: {}
5
+
6
+ jobs:
7
+ auto-merge:
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+ checks: read
12
+ uses: blacklanternsecurity/CLA/.github/workflows/dependabot-auto-merge.yml@ad6e7d77546f99f569e51085a0e7aad496e23b9c # 2026-10-20
@@ -11,13 +11,13 @@ concurrency:
11
11
 
12
12
  jobs:
13
13
  docker-test:
14
- runs-on: ubuntu-latest
14
+ runs-on: ubuntu-24.04
15
15
 
16
16
  steps:
17
17
  - uses: actions/checkout@v7
18
18
 
19
19
  - name: Set up Python
20
- uses: actions/setup-python@v6
20
+ uses: actions/setup-python@v7
21
21
  with:
22
22
  python-version: "3.11"
23
23
 
@@ -33,7 +33,7 @@ jobs:
33
33
  python test_docker.py
34
34
 
35
35
  docker-publish:
36
- runs-on: ubuntu-latest
36
+ runs-on: ubuntu-24.04
37
37
  needs: docker-test
38
38
  if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/stable' }}
39
39
 
@@ -61,8 +61,8 @@ jobs:
61
61
  type=sha,prefix=sha-
62
62
  type=raw,value=latest,enable={{is_default_branch}}
63
63
  type=raw,value=v11
64
- type=raw,value=v11.1
65
- type=raw,value=v11.1.0
64
+ type=raw,value=v11.2
65
+ type=raw,value=v11.2.0
66
66
 
67
67
  - name: Build and push Docker image
68
68
  uses: docker/build-push-action@v7
@@ -11,15 +11,15 @@ concurrency:
11
11
 
12
12
  jobs:
13
13
  test:
14
- runs-on: ubuntu-latest
14
+ runs-on: ubuntu-24.04
15
15
 
16
16
  steps:
17
17
  - uses: actions/checkout@v7
18
18
 
19
19
  - name: Set up Python
20
- uses: actions/setup-python@v6
20
+ uses: actions/setup-python@v7
21
21
  with:
22
- python-version: 3.x
22
+ python-version: "3.14"
23
23
 
24
24
  - name: Set up uv
25
25
  uses: astral-sh/setup-uv@v7
@@ -12,16 +12,16 @@ concurrency:
12
12
 
13
13
  jobs:
14
14
  test:
15
- runs-on: ubuntu-latest
15
+ runs-on: ubuntu-24.04
16
16
  strategy:
17
17
  matrix:
18
- python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
18
+ python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"]
19
19
 
20
20
  steps:
21
21
  - uses: actions/checkout@v7
22
22
 
23
23
  - name: Set up Python
24
- uses: actions/setup-python@v6
24
+ uses: actions/setup-python@v7
25
25
  with:
26
26
  python-version: ${{ matrix.python-version }}
27
27
 
@@ -29,22 +29,22 @@ jobs:
29
29
  uses: astral-sh/setup-uv@v7
30
30
 
31
31
  - name: Install Rust toolchain
32
- uses: actions-rust-lang/setup-rust-toolchain@v1
32
+ uses: actions-rust-lang/setup-rust-toolchain@v2
33
33
 
34
34
  - name: Install dependencies
35
35
  run: |
36
- uv sync
36
+ uv sync --no-default-groups --group test
37
37
 
38
38
  - name: Build Python bindings
39
39
  run: |
40
- uv run maturin develop --release
40
+ uv run --no-default-groups --group test maturin develop --release --group test
41
41
 
42
42
  - name: Run Python tests
43
43
  run: |
44
- uv run pytest test_cloudcheck.py -v
44
+ uv run --no-default-groups --group test pytest test_cloudcheck.py -v
45
45
 
46
46
  publish:
47
- runs-on: ubuntu-latest
47
+ runs-on: ubuntu-24.04
48
48
  needs: test
49
49
  if: github.event_name == 'push' && github.ref == 'refs/heads/stable'
50
50
  permissions:
@@ -61,11 +61,11 @@ jobs:
61
61
  fetch-depth: 0
62
62
  token: ${{ steps.app-token.outputs.token }}
63
63
  - name: Set up Python
64
- uses: actions/setup-python@v6
64
+ uses: actions/setup-python@v7
65
65
  with:
66
- python-version: "3.x"
66
+ python-version: "3.14"
67
67
  - name: Set up Rust
68
- uses: dtolnay/rust-toolchain@stable
68
+ uses: dtolnay/rust-toolchain@6bed0761d98439e5a578e2877258200ad565ba87 # 2026-09-03, no release tag
69
69
  - name: Set up uv
70
70
  uses: astral-sh/setup-uv@v7
71
71
  - name: Get current version
@@ -117,7 +117,7 @@ jobs:
117
117
  target: ppc64le
118
118
  steps:
119
119
  - uses: actions/checkout@v7
120
- - uses: actions/setup-python@v6
120
+ - uses: actions/setup-python@v7
121
121
  with:
122
122
  python-version: 3.x
123
123
  - name: Build wheels
@@ -163,7 +163,7 @@ jobs:
163
163
  target: armv7
164
164
  steps:
165
165
  - uses: actions/checkout@v7
166
- - uses: actions/setup-python@v6
166
+ - uses: actions/setup-python@v7
167
167
  with:
168
168
  python-version: 3.x
169
169
  - name: Build wheels
@@ -209,7 +209,7 @@ jobs:
209
209
  target: x86
210
210
  steps:
211
211
  - uses: actions/checkout@v7
212
- - uses: actions/setup-python@v6
212
+ - uses: actions/setup-python@v7
213
213
  with:
214
214
  python-version: 3.x
215
215
  architecture: ${{ matrix.platform.target }}
@@ -238,7 +238,7 @@ jobs:
238
238
  target: aarch64
239
239
  steps:
240
240
  - uses: actions/checkout@v7
241
- - uses: actions/setup-python@v6
241
+ - uses: actions/setup-python@v7
242
242
  with:
243
243
  python-version: 3.x
244
244
  - name: Build wheels
@@ -254,7 +254,7 @@ jobs:
254
254
  path: dist
255
255
 
256
256
  sdist:
257
- runs-on: ubuntu-latest
257
+ runs-on: ubuntu-24.04
258
258
  needs: publish
259
259
  if: github.event_name == 'push' && github.ref == 'refs/heads/stable'
260
260
  steps:
@@ -272,7 +272,7 @@ jobs:
272
272
 
273
273
  release:
274
274
  name: Release
275
- runs-on: ubuntu-latest
275
+ runs-on: ubuntu-24.04
276
276
  needs: [linux, musllinux, windows, macos, sdist]
277
277
  if: github.event_name == 'push' && github.ref == 'refs/heads/stable'
278
278
  permissions:
@@ -11,16 +11,16 @@ concurrency:
11
11
 
12
12
  jobs:
13
13
  test:
14
- runs-on: ubuntu-latest
14
+ runs-on: ubuntu-24.04
15
15
 
16
16
  steps:
17
17
  - uses: actions/checkout@v7
18
18
 
19
19
  - name: Install Rust toolchain
20
- uses: actions-rust-lang/setup-rust-toolchain@v1
20
+ uses: actions-rust-lang/setup-rust-toolchain@v2
21
21
 
22
22
  - name: Cache Rust dependencies
23
- uses: actions/cache@v5
23
+ uses: actions/cache@v6
24
24
  with:
25
25
  path: |
26
26
  ~/.cargo/registry
@@ -41,14 +41,14 @@ jobs:
41
41
 
42
42
  publish:
43
43
  needs: test
44
- runs-on: ubuntu-latest
44
+ runs-on: ubuntu-24.04
45
45
  if: github.event_name == 'push' && github.ref == 'refs/heads/stable'
46
46
 
47
47
  steps:
48
48
  - uses: actions/checkout@v7
49
49
 
50
50
  - name: Install Rust toolchain
51
- uses: actions-rust-lang/setup-rust-toolchain@v1
51
+ uses: actions-rust-lang/setup-rust-toolchain@v2
52
52
 
53
53
  - name: Publish to crates.io
54
54
  run: |
@@ -0,0 +1,74 @@
1
+ name: Signature Update Alerts
2
+
3
+ # Opens a GitHub issue when the daily signature update fails, comments on it if it keeps failing,
4
+ # and closes it when the update next succeeds.
5
+ # The name below must match `name:` in daily-update.yml exactly, or alerting silently stops.
6
+ # workflow_run only fires from this file on the default branch (stable).
7
+ on:
8
+ workflow_run:
9
+ workflows: [Daily Signature Update]
10
+ types: [completed]
11
+
12
+ permissions:
13
+ actions: read
14
+ issues: write
15
+
16
+ concurrency:
17
+ group: signature-update-alerts
18
+ cancel-in-progress: false
19
+
20
+ jobs:
21
+ alert:
22
+ runs-on: ubuntu-24.04
23
+ if: contains(fromJSON('["failure", "timed_out", "startup_failure", "success"]'), github.event.workflow_run.conclusion)
24
+ steps:
25
+ - name: Open, update, or close the alert issue
26
+ env:
27
+ GH_TOKEN: ${{ github.token }}
28
+ REPO: ${{ github.repository }}
29
+ CONCLUSION: ${{ github.event.workflow_run.conclusion }}
30
+ RUN_ID: ${{ github.event.workflow_run.id }}
31
+ RUN_URL: ${{ github.event.workflow_run.html_url }}
32
+ RUN_EVENT: ${{ github.event.workflow_run.event }}
33
+ HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
34
+ HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
35
+ run: |
36
+ TITLE="Daily signature update failing"
37
+ LABEL="signature-update-failure"
38
+
39
+ ISSUE=$(gh issue list --repo "$REPO" --label "$LABEL" --state open --json number,title \
40
+ | jq -r --arg t "$TITLE" '[.[] | select(.title == $t)][0].number // empty')
41
+
42
+ if [ "$CONCLUSION" = "success" ]; then
43
+ if [ -n "$ISSUE" ]; then
44
+ gh issue comment "$ISSUE" --repo "$REPO" --body "Recovered in $RUN_URL"
45
+ gh issue close "$ISSUE" --repo "$REPO"
46
+ fi
47
+ exit 0
48
+ fi
49
+
50
+ FAILED=$(gh api "repos/$REPO/actions/runs/$RUN_ID/jobs" --paginate \
51
+ --jq '.jobs[] | select(.conclusion == "failure") | "- `\(.name)`: \([.steps[]? | select(.conclusion == "failure") | .name] | join(", "))"')
52
+ FAILED=${FAILED:-"- (no failed job details available)"}
53
+
54
+ BODY=$(cat <<EOF
55
+ The daily signature update did not succeed.
56
+
57
+ - Conclusion: \`$CONCLUSION\`
58
+ - Run: $RUN_URL
59
+ - Trigger: \`$RUN_EVENT\` on \`$HEAD_BRANCH\` @ \`${HEAD_SHA:0:7}\`
60
+
61
+ Failed jobs and steps:
62
+ $FAILED
63
+
64
+ The run's job summary lists the provider errors.
65
+ EOF
66
+ )
67
+
68
+ if [ -n "$ISSUE" ]; then
69
+ gh issue comment "$ISSUE" --repo "$REPO" --body "$BODY"
70
+ else
71
+ gh label create "$LABEL" --repo "$REPO" --color B60205 \
72
+ --description "Daily signature update is failing" --force
73
+ gh issue create --repo "$REPO" --title "$TITLE" --label "$LABEL" --body "$BODY"
74
+ fi
@@ -88,12 +88,6 @@ version = "1.1.2"
88
88
  source = "registry+https://github.com/rust-lang/crates.io-index"
89
89
  checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
90
90
 
91
- [[package]]
92
- name = "autocfg"
93
- version = "1.5.0"
94
- source = "registry+https://github.com/rust-lang/crates.io-index"
95
- checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
96
-
97
91
  [[package]]
98
92
  name = "axum"
99
93
  version = "0.8.9"
@@ -237,7 +231,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
237
231
 
238
232
  [[package]]
239
233
  name = "cloudcheck"
240
- version = "11.1.0"
234
+ version = "11.2.0"
241
235
  dependencies = [
242
236
  "axum",
243
237
  "clap",
@@ -434,21 +428,6 @@ dependencies = [
434
428
  "percent-encoding",
435
429
  ]
436
430
 
437
- [[package]]
438
- name = "futures"
439
- version = "0.3.32"
440
- source = "registry+https://github.com/rust-lang/crates.io-index"
441
- checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d"
442
- dependencies = [
443
- "futures-channel",
444
- "futures-core",
445
- "futures-executor",
446
- "futures-io",
447
- "futures-sink",
448
- "futures-task",
449
- "futures-util",
450
- ]
451
-
452
431
  [[package]]
453
432
  name = "futures-channel"
454
433
  version = "0.3.32"
@@ -456,7 +435,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
456
435
  checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
457
436
  dependencies = [
458
437
  "futures-core",
459
- "futures-sink",
460
438
  ]
461
439
 
462
440
  [[package]]
@@ -465,23 +443,6 @@ version = "0.3.32"
465
443
  source = "registry+https://github.com/rust-lang/crates.io-index"
466
444
  checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
467
445
 
468
- [[package]]
469
- name = "futures-executor"
470
- version = "0.3.32"
471
- source = "registry+https://github.com/rust-lang/crates.io-index"
472
- checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
473
- dependencies = [
474
- "futures-core",
475
- "futures-task",
476
- "futures-util",
477
- ]
478
-
479
- [[package]]
480
- name = "futures-io"
481
- version = "0.3.32"
482
- source = "registry+https://github.com/rust-lang/crates.io-index"
483
- checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
484
-
485
446
  [[package]]
486
447
  name = "futures-macro"
487
448
  version = "0.3.32"
@@ -511,13 +472,9 @@ version = "0.3.32"
511
472
  source = "registry+https://github.com/rust-lang/crates.io-index"
512
473
  checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
513
474
  dependencies = [
514
- "futures-channel",
515
475
  "futures-core",
516
- "futures-io",
517
476
  "futures-macro",
518
- "futures-sink",
519
477
  "futures-task",
520
- "memchr",
521
478
  "pin-project-lite",
522
479
  "slab",
523
480
  ]
@@ -838,15 +795,6 @@ dependencies = [
838
795
  "serde_core",
839
796
  ]
840
797
 
841
- [[package]]
842
- name = "indoc"
843
- version = "2.0.7"
844
- source = "registry+https://github.com/rust-lang/crates.io-index"
845
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
846
- dependencies = [
847
- "rustversion",
848
- ]
849
-
850
798
  [[package]]
851
799
  name = "ipnet"
852
800
  version = "2.12.0"
@@ -962,15 +910,6 @@ version = "2.8.0"
962
910
  source = "registry+https://github.com/rust-lang/crates.io-index"
963
911
  checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
964
912
 
965
- [[package]]
966
- name = "memoffset"
967
- version = "0.9.1"
968
- source = "registry+https://github.com/rust-lang/crates.io-index"
969
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
970
- dependencies = [
971
- "autocfg",
972
- ]
973
-
974
913
  [[package]]
975
914
  name = "mime"
976
915
  version = "0.3.17"
@@ -1176,28 +1115,26 @@ dependencies = [
1176
1115
 
1177
1116
  [[package]]
1178
1117
  name = "pyo3"
1179
- version = "0.27.2"
1118
+ version = "0.29.3"
1180
1119
  source = "registry+https://github.com/rust-lang/crates.io-index"
1181
- checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
1120
+ checksum = "700d18fa267b73b9b521fd7e13580e2f446916f176cacee1ab63fcc8191f1655"
1182
1121
  dependencies = [
1183
- "indoc",
1184
1122
  "libc",
1185
- "memoffset",
1186
1123
  "once_cell",
1187
1124
  "portable-atomic",
1188
1125
  "pyo3-build-config",
1189
1126
  "pyo3-ffi",
1190
1127
  "pyo3-macros",
1191
- "unindent",
1192
1128
  ]
1193
1129
 
1194
1130
  [[package]]
1195
1131
  name = "pyo3-async-runtimes"
1196
- version = "0.27.0"
1132
+ version = "0.29.0"
1197
1133
  source = "registry+https://github.com/rust-lang/crates.io-index"
1198
- checksum = "57ddb5b570751e93cc6777e81fee8087e59cd53b5043292f2a6d59d5bd80fdfd"
1134
+ checksum = "b3ef68daa7316a3fac65e5e18b2203f010346de1c1c53456811a2624673ab046"
1199
1135
  dependencies = [
1200
- "futures",
1136
+ "futures-channel",
1137
+ "futures-util",
1201
1138
  "once_cell",
1202
1139
  "pin-project-lite",
1203
1140
  "pyo3",
@@ -1206,18 +1143,18 @@ dependencies = [
1206
1143
 
1207
1144
  [[package]]
1208
1145
  name = "pyo3-build-config"
1209
- version = "0.27.2"
1146
+ version = "0.29.3"
1210
1147
  source = "registry+https://github.com/rust-lang/crates.io-index"
1211
- checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
1148
+ checksum = "7b3fc0c4d08f6bb10e71fe39dfb9e2f59c6eb6854e22ec8092f50c69a4499adb"
1212
1149
  dependencies = [
1213
1150
  "target-lexicon",
1214
1151
  ]
1215
1152
 
1216
1153
  [[package]]
1217
1154
  name = "pyo3-ffi"
1218
- version = "0.27.2"
1155
+ version = "0.29.3"
1219
1156
  source = "registry+https://github.com/rust-lang/crates.io-index"
1220
- checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
1157
+ checksum = "dfc0b8e19df29aad7086cf977bb0c2a2f143e30567eb113e9cf72b62ca698330"
1221
1158
  dependencies = [
1222
1159
  "libc",
1223
1160
  "pyo3-build-config",
@@ -1225,9 +1162,9 @@ dependencies = [
1225
1162
 
1226
1163
  [[package]]
1227
1164
  name = "pyo3-macros"
1228
- version = "0.27.2"
1165
+ version = "0.29.3"
1229
1166
  source = "registry+https://github.com/rust-lang/crates.io-index"
1230
- checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
1167
+ checksum = "6100e8a4b5eba53afaa5ed078364851a0b2499c553a44c31026b929049b49dc6"
1231
1168
  dependencies = [
1232
1169
  "proc-macro2",
1233
1170
  "pyo3-macros-backend",
@@ -1237,13 +1174,12 @@ dependencies = [
1237
1174
 
1238
1175
  [[package]]
1239
1176
  name = "pyo3-macros-backend"
1240
- version = "0.27.2"
1177
+ version = "0.29.3"
1241
1178
  source = "registry+https://github.com/rust-lang/crates.io-index"
1242
- checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
1179
+ checksum = "6143877a16e82b5a727b7127ff4cd86858a24a28d745d72f43e6f227c7b1bdb3"
1243
1180
  dependencies = [
1244
1181
  "heck",
1245
1182
  "proc-macro2",
1246
- "pyo3-build-config",
1247
1183
  "quote",
1248
1184
  "syn",
1249
1185
  ]
@@ -1870,12 +1806,6 @@ version = "0.2.6"
1870
1806
  source = "registry+https://github.com/rust-lang/crates.io-index"
1871
1807
  checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
1872
1808
 
1873
- [[package]]
1874
- name = "unindent"
1875
- version = "0.2.4"
1876
- source = "registry+https://github.com/rust-lang/crates.io-index"
1877
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
1878
-
1879
1809
  [[package]]
1880
1810
  name = "untrusted"
1881
1811
  version = "0.9.0"
@@ -1,9 +1,9 @@
1
1
  [package]
2
2
  name = "cloudcheck"
3
- version = "11.1.0"
3
+ version = "11.2.0"
4
4
  edition = "2024"
5
5
  description = "CloudCheck is a simple Rust tool to check whether an IP address or hostname belongs to a cloud provider."
6
- license = "GPL-3.0"
6
+ license = "AGPL-3.0"
7
7
  repository = "https://github.com/blacklanternsecurity/cloudcheck"
8
8
  homepage = "https://github.com/blacklanternsecurity/cloudcheck"
9
9
  documentation = "https://docs.rs/cloudcheck"
@@ -15,8 +15,8 @@ serde_json = "1.0"
15
15
  tokio = { version = "1", features = ["full"] }
16
16
  reqwest = { version = "0.13", default-features = false, features = ["json", "native-tls", "http2"] }
17
17
  openssl = { version = "0.10", features = ["vendored"] }
18
- pyo3 = { version = "0.27", optional = true }
19
- pyo3-async-runtimes = { version = "0.27", features = ["tokio-runtime"], optional = true }
18
+ pyo3 = { version = "0.29", optional = true }
19
+ pyo3-async-runtimes = { version = "0.29", features = ["tokio-runtime"], optional = true }
20
20
  radixtarget = "4.2"
21
21
  log = "0.4"
22
22
  env_logger = "0.11"