cloudcheck 9.3.0__tar.gz → 10.0.1__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 (98) hide show
  1. cloudcheck-10.0.1/.github/workflows/cla.yml +97 -0
  2. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.github/workflows/daily-update.yml +3 -12
  3. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.github/workflows/python-tests.yml +5 -6
  4. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.github/workflows/rust-tests.yml +7 -1
  5. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/Cargo.lock +404 -302
  6. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/Cargo.toml +1 -1
  7. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/PKG-INFO +45 -44
  8. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/README.md +44 -43
  9. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloud_providers_v2.json +7044 -4201
  10. cloudcheck-10.0.1/cloud_providers_v3.json +61361 -0
  11. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/helpers.py +15 -2
  12. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/amazon.py +13 -2
  13. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/base.py +2 -1
  14. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/cloudflare.py +3 -3
  15. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/digitalocean.py +7 -2
  16. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/gocache.py +3 -1
  17. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/google.py +6 -3
  18. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/hetzner.py +7 -2
  19. cloudcheck-10.0.1/cloudcheck/providers/iboss.py +13 -0
  20. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/microsoft.py +2 -2
  21. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck_update/__init__.py +1 -1
  22. cloudcheck-10.0.1/cloudcheck_update/cli.py +21 -0
  23. cloudcheck-10.0.1/dist/cloudcheck-10.0.1-cp314-cp314-manylinux_2_38_x86_64.whl +0 -0
  24. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/pyproject.toml +5 -5
  25. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/scripts/update_readme_table.py +3 -3
  26. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/src/lib.rs +2 -2
  27. cloudcheck-10.0.1/test_cloudcheck.py +110 -0
  28. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/uv.lock +1 -1
  29. cloudcheck-9.3.0/cloudcheck_update/cli.py +0 -13
  30. cloudcheck-9.3.0/dist/cloudcheck-9.3.0-cp314-cp314-manylinux_2_38_x86_64.whl +0 -0
  31. cloudcheck-9.3.0/test_cloudcheck.py +0 -38
  32. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.github/dependabot.yml +0 -0
  33. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.github/workflows/docker-tests.yml +0 -0
  34. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.github/workflows/pipeline-tests.yml +0 -0
  35. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/.gitignore +0 -0
  36. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/Dockerfile +0 -0
  37. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloud_providers.json +0 -0
  38. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/__init__.py +0 -0
  39. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/__init__.py +0 -0
  40. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/akamai.py +0 -0
  41. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/alibaba.py +0 -0
  42. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/arvancloud.py +0 -0
  43. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/backblaze.py +0 -0
  44. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/baidu.py +0 -0
  45. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/cachefly.py +0 -0
  46. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/cdnetworks.py +0 -0
  47. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/cisco.py +0 -0
  48. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/cloudfront.py +0 -0
  49. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/ddosguard.py +0 -0
  50. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/dell.py +0 -0
  51. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/dod.py +0 -0
  52. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/fastly.py +0 -0
  53. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/fbi.py +0 -0
  54. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/gabia.py +0 -0
  55. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/gcore.py +0 -0
  56. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/github.py +0 -0
  57. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/heroku.py +0 -0
  58. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/hostway.py +0 -0
  59. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/hpe.py +0 -0
  60. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/huawei.py +0 -0
  61. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/ibm.py +0 -0
  62. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/imperva.py +0 -0
  63. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/kamatera.py +0 -0
  64. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/kinx.py +0 -0
  65. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/ktcloud.py +0 -0
  66. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/leaseweb.py +0 -0
  67. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/lgtelecom.py +0 -0
  68. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/microsoft365.py +0 -0
  69. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/navercloud.py +0 -0
  70. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/nhncloud.py +0 -0
  71. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/oracle.py +0 -0
  72. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/ovh.py +0 -0
  73. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/qrator.py +0 -0
  74. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/quiccloud.py +0 -0
  75. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/rackspace.py +0 -0
  76. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/ru_fso.py +0 -0
  77. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/salesforce.py +0 -0
  78. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/scaleway.py +0 -0
  79. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/skbroadband.py +0 -0
  80. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/stormwall.py +0 -0
  81. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/sucuri.py +0 -0
  82. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/tencent.py +0 -0
  83. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/uk_mod.py +0 -0
  84. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/wasabi.py +0 -0
  85. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/x4b.py +0 -0
  86. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/yandex.py +0 -0
  87. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/zoho.py +0 -0
  88. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck/providers/zscaler.py +0 -0
  89. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/cloudcheck_update/test_cloudcheck_update.py +0 -0
  90. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/helm/Chart.yaml +0 -0
  91. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/helm/cloudcheck/values.yaml +0 -0
  92. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/helm/templates/cloudcheck.yaml +0 -0
  93. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/helm/values.yaml +0 -0
  94. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/pytest.ini +0 -0
  95. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/src/api.rs +0 -0
  96. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/src/main.rs +0 -0
  97. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/src/python.rs +0 -0
  98. {cloudcheck-9.3.0 → cloudcheck-10.0.1}/test_docker.py +0 -0
@@ -0,0 +1,97 @@
1
+ name: "CLA Assistant"
2
+ on:
3
+ issue_comment:
4
+ types: [created]
5
+ pull_request_target:
6
+ types: [opened, closed, synchronize]
7
+
8
+ permissions:
9
+ pull-requests: write
10
+ statuses: write
11
+
12
+ jobs:
13
+ CLAAssistant:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Generate token from GitHub App
17
+ id: app-token
18
+ uses: actions/create-github-app-token@v1
19
+ with:
20
+ app-id: ${{ secrets.APP_ID }}
21
+ private-key: ${{ secrets.APP_PRIVATE_KEY }}
22
+ owner: blacklanternsecurity
23
+
24
+ - name: Check all committers against org and allowlist
25
+ id: cla-check
26
+ env:
27
+ GH_TOKEN: ${{ steps.app-token.outputs.token }}
28
+ run: |
29
+ if [ "${{ github.event_name }}" = "pull_request_target" ]; then
30
+ PR_NUM="${{ github.event.pull_request.number }}"
31
+ else
32
+ PR_NUM="${{ github.event.issue.number }}"
33
+ fi
34
+
35
+ COMMITTERS=$(gh api "repos/${{ github.repository }}/pulls/$PR_NUM/commits" --paginate --jq '.[].author.login' | sort -u)
36
+ ALL_EXEMPT=true
37
+
38
+ for LOGIN in $COMMITTERS; do
39
+ # treat commits with no associated GitHub login as non-exempt
40
+ if [ -z "$LOGIN" ] || [ "$LOGIN" = "null" ]; then
41
+ echo "Unknown committer (no GitHub login) — not exempt"
42
+ ALL_EXEMPT=false
43
+ break
44
+ fi
45
+
46
+ EXEMPT=false
47
+
48
+ # check if account type is Bot (GitHub App accounts)
49
+ AUTHOR_TYPE=$(gh api "users/${LOGIN}" --jq '.type' 2>/dev/null || echo "Unknown")
50
+ if [ "$AUTHOR_TYPE" = "Bot" ]; then
51
+ echo "$LOGIN is a Bot account — exempt"
52
+ EXEMPT=true
53
+ fi
54
+
55
+ # check org membership
56
+ if [ "$EXEMPT" = "false" ]; then
57
+ if gh api "orgs/blacklanternsecurity/members/$LOGIN" > /dev/null 2>&1; then
58
+ echo "$LOGIN is an org member — exempt"
59
+ EXEMPT=true
60
+ fi
61
+ fi
62
+
63
+ if [ "$EXEMPT" = "false" ]; then
64
+ echo "$LOGIN is not exempt — CLA required"
65
+ ALL_EXEMPT=false
66
+ break
67
+ fi
68
+ done
69
+
70
+ echo "all_exempt=$ALL_EXEMPT" >> "$GITHUB_OUTPUT"
71
+
72
+ - name: Skip CLA when all committers are exempt
73
+ if: steps.cla-check.outputs.all_exempt == 'true' && github.event_name == 'pull_request_target'
74
+ env:
75
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76
+ run: |
77
+ gh api --method POST "repos/${{ github.repository }}/statuses/${{ github.event.pull_request.head.sha }}" \
78
+ -f state=success \
79
+ -f context="CLAAssistant" \
80
+ -f description="CLA check skipped — all committers are org members or bots"
81
+
82
+ - name: "CLA Assistant"
83
+ if: |
84
+ (steps.cla-check.outputs.all_exempt != 'true') &&
85
+ ((github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target')
86
+ uses: contributor-assistant/github-action@v2.6.1
87
+ env:
88
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89
+ PERSONAL_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }}
90
+ with:
91
+ path-to-signatures: "signatures/version1/cla.json"
92
+ path-to-document: "https://github.com/blacklanternsecurity/CLA/blob/main/ICLA.md"
93
+ branch: "main"
94
+ allowlist: "dependabot[bot],github-actions[bot],renovate[bot]"
95
+ remote-organization-name: "blacklanternsecurity"
96
+ remote-repository-name: "CLA"
97
+ lock-pullrequest-aftermerge: "false"
@@ -24,10 +24,6 @@ jobs:
24
24
  with:
25
25
  ref: stable
26
26
 
27
- - name: Create temporary update branch
28
- run: |
29
- git checkout -b update/daily-$(date -u +%Y-%m-%d)
30
-
31
27
  - name: Set up Python
32
28
  uses: actions/setup-python@v6
33
29
  with:
@@ -56,16 +52,11 @@ jobs:
56
52
  echo "has_changes=true" >> $GITHUB_OUTPUT
57
53
  fi
58
54
 
59
- - name: Commit and merge changes
55
+ - name: Commit and push to stable
60
56
  if: steps.changes.outputs.has_changes == 'true'
61
57
  run: |
62
- BRANCH="update/daily-$(date -u +%Y-%m-%d)"
63
58
  git config user.name "github-actions[bot]"
64
59
  git config user.email "github-actions[bot]@users.noreply.github.com"
65
- git add cloud_providers_v2.json README.md
60
+ git add cloud_providers_v3.json README.md
66
61
  git commit -m "chore: daily signature update $(date -u +%Y-%m-%d)"
67
- git push origin "$BRANCH"
68
- git checkout stable
69
- git merge "$BRANCH" --no-edit -m "chore: merge daily signature update"
70
- git push origin stable
71
- git push origin --delete "$BRANCH"
62
+ git push origin HEAD:stable
@@ -60,8 +60,7 @@ jobs:
60
60
  - name: Build PyPi package
61
61
  run: uv run maturin build --release --out dist
62
62
  - name: Publish PyPi package
63
- # TODO: Remove || true
64
- run: uv run maturin publish --username __token__ --password ${{ secrets.PYPI_TOKEN }} || true
63
+ run: uv run maturin publish --skip-existing --username __token__ --password ${{ secrets.PYPI_TOKEN }}
65
64
  linux:
66
65
  runs-on: ${{ matrix.platform.runner }}
67
66
  needs: publish
@@ -92,7 +91,7 @@ jobs:
92
91
  with:
93
92
  target: ${{ matrix.platform.target }}
94
93
  args: --release --out dist --find-interpreter
95
- sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
94
+ sccache: false
96
95
  manylinux: auto
97
96
  before-script-linux: |
98
97
  if command -v apt-get >/dev/null 2>&1; then
@@ -138,7 +137,7 @@ jobs:
138
137
  with:
139
138
  target: ${{ matrix.platform.target }}
140
139
  args: --release --out dist --find-interpreter
141
- sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
140
+ sccache: false
142
141
  manylinux: musllinux_1_2
143
142
  before-script-linux: |
144
143
  if command -v apk >/dev/null 2>&1; then
@@ -185,7 +184,7 @@ jobs:
185
184
  with:
186
185
  target: ${{ matrix.platform.target }}
187
186
  args: --release --out dist --find-interpreter
188
- sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
187
+ sccache: false
189
188
  - name: Upload wheels
190
189
  uses: actions/upload-artifact@v6
191
190
  with:
@@ -213,7 +212,7 @@ jobs:
213
212
  with:
214
213
  target: ${{ matrix.platform.target }}
215
214
  args: --release --out dist --find-interpreter
216
- sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
215
+ sccache: false
217
216
  - name: Upload wheels
218
217
  uses: actions/upload-artifact@v6
219
218
  with:
@@ -51,4 +51,10 @@ jobs:
51
51
  uses: actions-rust-lang/setup-rust-toolchain@v1
52
52
 
53
53
  - name: Publish to crates.io
54
- run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
54
+ run: |
55
+ VERSION=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[0].version')
56
+ if cargo search cloudcheck --limit 1 | head -1 | grep -q "$VERSION"; then
57
+ echo "Version $VERSION already exists on crates.io, skipping publish"
58
+ else
59
+ cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
60
+ fi