Skip to content

Commit 2212ea5

Browse files
various: strictly type five more scripts
These were all fairly trivial.
1 parent c7d8a9f commit 2212ea5

6 files changed

+22
-24
lines changed

github-info

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# along with Cockpit; If not, see <http://www.gnu.org/licenses/>.
1919

2020
# Shared GitHub code. When run as a script, we print out info about
21-
# our GitHub interacition.
21+
# our GitHub interaction.
2222

2323
import argparse
2424
import datetime
@@ -29,7 +29,7 @@ from task import github
2929
sys.dont_write_bytecode = True
3030

3131

32-
def httpdate(dt):
32+
def httpdate(dt: datetime.datetime) -> str:
3333
"""Return a string representation of a date according to RFC 1123
3434
(HTTP/1.1).
3535
@@ -45,7 +45,7 @@ def httpdate(dt):
4545
dt.year, dt.hour, dt.minute, dt.second)
4646

4747

48-
def main():
48+
def main() -> int:
4949
parser = argparse.ArgumentParser(description='Test GitHub rate limits')
5050
parser.parse_args()
5151

github-upload-secrets

+7-5
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,9 @@ def upload_secrets(
106106
api.put(f"{secrets_path}/{name}", payload)
107107

108108

109-
def upload_deploy_key(api, repo, title, content, opts):
109+
def upload_deploy_key(
110+
api: task.github.GitHub, repo: str, title: str, content: bytes, opts: argparse.Namespace
111+
) -> None:
110112
keys_path = f"/repos/{repo.lstrip('+')}/keys"
111113

112114
if repo.startswith('+'):
@@ -131,23 +133,23 @@ def upload_deploy_key(api, repo, title, content, opts):
131133
api.post(keys_path, {'title': title, 'key': content.decode('ascii')})
132134

133135

134-
def do_directory(api, repo, env, directory, opts):
136+
def do_directory(api: task.github.GitHub, repo: str, env: str, directory: str, opts: argparse.Namespace) -> None:
135137
secrets = {}
136-
for entry in os.scandir(opts.directory):
138+
for entry in os.scandir(directory):
137139
with open(entry.path, 'rb') as f:
138140
secrets[entry.name] = f.read().strip()
139141
upload_secrets(api, repo, env, secrets, opts)
140142

141143

142-
def do_deploy_key(api, deploy_to, deploy_from, opts):
144+
def do_deploy_key(api: task.github.GitHub, deploy_to: str, deploy_from: str, opts: argparse.Namespace) -> None:
143145
repo, env, secret = deploy_from.rsplit('/', 2)
144146
public, private = generate_ssh_key()
145147

146148
upload_deploy_key(api, deploy_to, deploy_from, public, opts)
147149
upload_secrets(api, repo, env, {secret: private}, opts)
148150

149151

150-
def main():
152+
def main() -> None:
151153
api = task.github.GitHub()
152154

153155
parser = argparse.ArgumentParser(description='Upload encrypted action secrets to GitHub')

inspect-queue

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ from task import distributed_queue
2525
MAX_PRIORITY = 9
2626

2727

28-
def main():
28+
def main() -> int:
2929
parser = argparse.ArgumentParser(description='Read and print messages from the queue without acknowleding them')
3030
parser.add_argument('--amqp', default=distributed_queue.DEFAULT_AMQP_SERVER,
3131
help='The host:port of the AMQP server to consume from (default: %(default)s)')
@@ -35,7 +35,7 @@ def main():
3535

3636
with distributed_queue.DistributedQueue(opts.amqp, ['public', 'rhel', 'statistics', 'webhook'],
3737
secrets_dir=opts.secrets_dir, passive=True) as q:
38-
def print_queue(queue):
38+
def print_queue(queue: str) -> None:
3939
if q.declare_results[queue] is None:
4040
print(f"queue {queue} does not exist")
4141
return

issues-review

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ the implementation, please comment here.
3131
"""
3232

3333

34-
def issues_review(api, opts):
34+
def issues_review(api: github.GitHub, opts: argparse.Namespace) -> None:
3535
now = time.time()
3636
treshold = opts.age * 86400
3737
count = 100
@@ -47,7 +47,7 @@ def issues_review(api, opts):
4747
api.post("issues/%i/labels" % issue["number"], [opts.label])
4848

4949

50-
def close_issues(api, opts):
50+
def close_issues(api: github.GitHub, opts: argparse.Namespace) -> None:
5151
count = 100
5252
page = 1
5353
while count == 100:
@@ -70,7 +70,7 @@ def close_issues(api, opts):
7070
api.post("issues/%i" % issue["number"], {"state": "closed"})
7171

7272

73-
def main():
73+
def main() -> None:
7474
parser = argparse.ArgumentParser(description='Label or close labeled stable issues')
7575
parser.add_argument('-a', '--age', metavar='DAYS', default=90,
7676
help='Label issues whose last update is older than DAYS (default: %(default)s)')

push-rewrite

+7-6
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ import subprocess
1717
import sys
1818
import time
1919

20+
from lib.aio.jsonutil import JsonObject, get_dict, get_str
2021
from task import github, labels_of_pull
2122

2223

23-
def execute(*args):
24+
def execute(*args: str) -> str:
2425
try:
2526
sys.stderr.write("+ " + " ".join(args) + "\n")
2627
output = subprocess.check_output(args, text=True)
@@ -29,20 +30,20 @@ def execute(*args):
2930
return output
3031

3132

32-
def git(*args):
33+
def git(*args: str) -> str:
3334
return execute("git", *args).strip()
3435

3536

36-
def find_pr_with_sha(api, sha):
37+
def find_pr_with_sha(api: github.GitHub, sha: str) -> JsonObject:
3738
pulls = api.pulls()
3839
for pull in pulls:
39-
if pull["head"]["sha"] == sha:
40+
if get_str(get_dict(pull, "head"), "sha") == sha:
4041
return pull
4142
sys.stderr.write(f"Could not find pull with revision {sha}.\n")
4243
sys.exit(1)
4344

4445

45-
def main():
46+
def main() -> None:
4647
parser = argparse.ArgumentParser(description='Force push after a rewrite')
4748
parser.add_argument('--repo', help="The GitHub repository to work with", default=None)
4849
opts = parser.parse_args()
@@ -61,7 +62,7 @@ def main():
6162

6263
pull = find_pr_with_sha(api, remote)
6364
labels = labels_of_pull(pull)
64-
tests_disabled = "no-test" in labels or "[no-test]" in pull["title"]
65+
tests_disabled = "no-test" in labels or "[no-test]" in get_str(pull, "title")
6566
# needs no-test label to prevent tests bring triggered
6667
# we cannot set the label for ourselves without `repo` permission
6768
if not tests_disabled:

pyproject.toml

-5
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,11 @@ module = [
3434
'test_tests_scan',
3535

3636
'cockpit-lib-update',
37-
'github-info',
38-
'github-upload-secrets',
3937
'image-refresh',
4038
'image-trigger',
41-
'inspect-queue',
42-
'issues-review',
4339
'naughty-prune',
4440
'npm-update',
4541
'po-refresh',
46-
'push-rewrite',
4742
'run-queue',
4843
'store-tests',
4944
'tasks-container-update',

0 commit comments

Comments
 (0)