Skip to content

Commit 0ef2ee6

Browse files
authored
Merge pull request #692 from linode/dev
TPT-4278: python-sdk: update dev
2 parents 05b9f8a + 7bf9b4d commit 0ef2ee6

42 files changed

Lines changed: 854 additions & 227 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,35 @@ on:
1212
jobs:
1313
lint:
1414
runs-on: ubuntu-latest
15+
permissions:
16+
contents: read
17+
pull-requests: read
1518
steps:
19+
# Enforce TPT-1234: prefix on PR titles, with the following exemptions:
20+
# - PRs labeled 'dependencies' (e.g. Dependabot PRs)
21+
# - PRs labeled 'hotfix' (urgent fixes that may not have a ticket)
22+
# - PRs labeled 'community-contribution' (external contributors without TPT tickets)
23+
# - PRs labeled 'ignore-for-release' (release PRs that don't need a ticket prefix)
24+
- name: Validate PR Title
25+
if: github.event_name == 'pull_request'
26+
uses: amannn/action-semantic-pull-request@v6
27+
with:
28+
types: |
29+
TPT-\d+
30+
requireScope: false
31+
# Override the default header pattern to allow hyphens and digits in the type
32+
# (e.g. "TPT-4298: Description"). The default pattern only matches word
33+
# characters (\w) which excludes hyphens.
34+
headerPattern: '^([\w-]+):\s?(.*)$'
35+
headerPatternCorrespondence: type, subject
36+
ignoreLabels: |
37+
dependencies
38+
hotfix
39+
community-contribution
40+
ignore-for-release
41+
env:
42+
GITHUB_TOKEN: ${{ github.token }}
43+
1644
- name: checkout repo
1745
uses: actions/checkout@v6
1846

@@ -31,7 +59,7 @@ jobs:
3159
runs-on: ubuntu-latest
3260
strategy:
3361
matrix:
34-
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
62+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
3563
steps:
3664
- uses: actions/checkout@v6
3765
- uses: actions/setup-python@v6
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Clean Release Notes
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
clean-release-notes:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: write
12+
13+
steps:
14+
- name: Remove ticket prefixes from release notes
15+
uses: actions/github-script@v9
16+
with:
17+
script: |
18+
const release = context.payload.release;
19+
20+
let body = release.body;
21+
22+
if (!body) {
23+
console.log("Release body empty, nothing to clean.");
24+
return;
25+
}
26+
27+
// Remove ticket prefixes like "TPT-1234: " or "TPT-1234:"
28+
body = body.replace(/TPT-\d+:\s*/g, '');
29+
30+
await github.rest.repos.updateRelease({
31+
owner: context.repo.owner,
32+
repo: context.repo.repo,
33+
release_id: release.id,
34+
body: body
35+
});
36+
37+
console.log("Release notes cleaned.");

.github/workflows/e2e-test-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ jobs:
123123
LINODE_CLI_OBJ_ACCESS_KEY: ${{ secrets.LINODE_CLI_OBJ_ACCESS_KEY }}
124124
LINODE_CLI_OBJ_SECRET_KEY: ${{ secrets.LINODE_CLI_OBJ_SECRET_KEY }}
125125

126-
- uses: actions/github-script@v8
126+
- uses: actions/github-script@v9
127127
id: update-check-run
128128
if: ${{ inputs.pull_request_number != '' && fromJson(steps.commit-hash.outputs.data).repository.pullRequest.headRef.target.oid == inputs.sha }}
129129
env:

.github/workflows/e2e-test.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ on:
5555
- dev
5656

5757
env:
58-
DEFAULT_PYTHON_VERSION: "3.10"
59-
EOL_PYTHON_VERSION: "3.9"
58+
DEFAULT_PYTHON_VERSION: "3.13"
59+
EOL_PYTHON_VERSION: "3.10"
6060
EXIT_STATUS: 0
6161

6262
jobs:
@@ -105,7 +105,7 @@ jobs:
105105

106106
- name: Upload Test Report as Artifact
107107
if: always()
108-
uses: actions/upload-artifact@v6
108+
uses: actions/upload-artifact@v7
109109
with:
110110
name: test-report-file
111111
if-no-files-found: ignore
@@ -241,7 +241,7 @@ jobs:
241241
steps:
242242
- name: Notify Slack
243243
id: main_message
244-
uses: slackapi/slack-github-action@v2.1.1
244+
uses: slackapi/slack-github-action@v3
245245
with:
246246
method: chat.postMessage
247247
token: ${{ secrets.SLACK_BOT_TOKEN }}
@@ -273,7 +273,7 @@ jobs:
273273
274274
- name: Test summary thread
275275
if: success()
276-
uses: slackapi/slack-github-action@v2.1.1
276+
uses: slackapi/slack-github-action@v3
277277
with:
278278
method: chat.postMessage
279279
token: ${{ secrets.SLACK_BOT_TOKEN }}

.github/workflows/nightly-smoke-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545

4646
- name: Notify Slack
4747
if: always() && github.repository == 'linode/linode_api4-python'
48-
uses: slackapi/slack-github-action@v2.1.1
48+
uses: slackapi/slack-github-action@v3
4949
with:
5050
method: chat.postMessage
5151
token: ${{ secrets.SLACK_BOT_TOKEN }}

.github/workflows/publish-pypi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ jobs:
2828
LINODE_SDK_VERSION: ${{ github.event.release.tag_name }}
2929

3030
- name: Publish the release artifacts to PyPI
31-
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # pin@release/v1.13.0
31+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # pin@release/v1.14.0

.github/workflows/release-notify-slack.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
- name: Notify Slack - Main Message
1313
id: main_message
14-
uses: slackapi/slack-github-action@v2.1.1
14+
uses: slackapi/slack-github-action@v3
1515
with:
1616
method: chat.postMessage
1717
token: ${{ secrets.SLACK_BOT_TOKEN }}

CODEOWNERS

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
* @linode/dx
2-
1+
* @linode/dx @linode/dx-sdets

linode_api4/groups/linode.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,6 @@ def instance_create(
323323
:param firewall: The firewall to attach this Linode to.
324324
:type firewall: int or Firewall
325325
:param disk_encryption: The disk encryption policy for this Linode.
326-
NOTE: Disk encryption may not currently be available to all users.
327326
:type disk_encryption: InstanceDiskEncryptionType or str
328327
:param interfaces: An array of Network Interfaces to add to this Linode’s Configuration Profile.
329328
At least one and up to three Interface objects can exist in this array.

linode_api4/groups/lock.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __call__(self, *filters):
2424
2525
locks = client.locks()
2626
27-
API Documentation: TBD
27+
API Documentation: https://techdocs.akamai.com/linode-api/reference/get-resource-locks
2828
2929
:param filters: Any number of filters to apply to this query.
3030
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
@@ -44,7 +44,7 @@ def create(
4444
"""
4545
Creates a new Resource Lock for the specified entity.
4646
47-
API Documentation: TBD
47+
API Documentation: https://techdocs.akamai.com/linode-api/reference/post-resource-lock
4848
4949
:param entity_type: The type of entity to lock (e.g., "linode").
5050
:type entity_type: str

0 commit comments

Comments
 (0)