dycw-actions 0.7.1__py3-none-any.whl → 0.8.4__py3-none-any.whl

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 (30) hide show
  1. actions/__init__.py +1 -1
  2. actions/clean_dir/lib.py +1 -0
  3. actions/cli.py +10 -0
  4. actions/constants.py +64 -1
  5. actions/pre_commit/conformalize_repo/action_dicts.py +247 -0
  6. actions/pre_commit/conformalize_repo/cli.py +14 -14
  7. actions/pre_commit/conformalize_repo/constants.py +2 -38
  8. actions/pre_commit/conformalize_repo/lib.py +317 -242
  9. actions/pre_commit/conformalize_repo/settings.py +37 -33
  10. actions/pre_commit/touch_empty_py/lib.py +9 -1
  11. actions/pre_commit/touch_py_typed/lib.py +9 -1
  12. actions/pre_commit/update_requirements/classes.py +16 -3
  13. actions/pre_commit/update_requirements/lib.py +15 -4
  14. actions/pre_commit/utilities.py +3 -4
  15. actions/register_gitea_runner/cli.py +32 -0
  16. actions/register_gitea_runner/configs/config.yml +110 -0
  17. actions/register_gitea_runner/configs/entrypoint.sh +23 -0
  18. actions/register_gitea_runner/constants.py +23 -0
  19. actions/register_gitea_runner/lib.py +289 -0
  20. actions/register_gitea_runner/settings.py +33 -0
  21. actions/run_hooks/lib.py +13 -4
  22. actions/run_hooks/settings.py +3 -0
  23. actions/types.py +2 -2
  24. {dycw_actions-0.7.1.dist-info → dycw_actions-0.8.4.dist-info}/METADATA +4 -3
  25. {dycw_actions-0.7.1.dist-info → dycw_actions-0.8.4.dist-info}/RECORD +28 -23
  26. actions/action_dicts/constants.py +0 -8
  27. actions/action_dicts/lib.py +0 -186
  28. /actions/{action_dicts → register_gitea_runner}/__init__.py +0 -0
  29. {dycw_actions-0.7.1.dist-info → dycw_actions-0.8.4.dist-info}/WHEEL +0 -0
  30. {dycw_actions-0.7.1.dist-info → dycw_actions-0.8.4.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,289 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+ from re import search
5
+ from string import Template
6
+ from typing import TYPE_CHECKING
7
+
8
+ from requests import get
9
+ from utilities.atomicwrites import writer
10
+ from utilities.subprocess import chmod, run, ssh
11
+ from utilities.text import strip_and_dedent
12
+
13
+ from actions import __version__
14
+ from actions.logging import LOGGER
15
+ from actions.register_gitea_runner.constants import (
16
+ PATH_CACHE,
17
+ PATH_CONFIGS,
18
+ PATH_WAIT_FOR_IT,
19
+ URL_WAIT_FOR_IT,
20
+ )
21
+ from actions.register_gitea_runner.settings import SETTINGS
22
+
23
+ if TYPE_CHECKING:
24
+ from utilities.types import PathLike
25
+
26
+
27
+ def register_gitea_runner(
28
+ *,
29
+ ssh_user: str = SETTINGS.ssh_user,
30
+ ssh_host: str = SETTINGS.ssh_host,
31
+ gitea_container_user: str = SETTINGS.gitea_container_user,
32
+ gitea_container_name: str = SETTINGS.gitea_container_name,
33
+ runner_certificate: PathLike = SETTINGS.runner_certificate,
34
+ runner_capacity: int = SETTINGS.runner_capacity,
35
+ runner_container_name: str = SETTINGS.runner_container_name,
36
+ gitea_host: str = SETTINGS.gitea_host,
37
+ gitea_port: int = SETTINGS.gitea_port,
38
+ runner_instance_name: str = SETTINGS.runner_instance_name,
39
+ ) -> None:
40
+ """Register against a remote instance of Gitea."""
41
+ LOGGER.info(
42
+ strip_and_dedent("""
43
+ Running '%s' (version %s) with settings:
44
+ - ssh_user = %s
45
+ - ssh_host = %s
46
+ - gitea_container_user = %s
47
+ - gitea_container_name = %s
48
+ - runner_certificate = %s
49
+ - runner_capacity = %d
50
+ - runner_container_name = %s
51
+ - gitea_host = %s
52
+ - gitea_port = %d
53
+ - runner_instance_name = %s
54
+ """),
55
+ register_gitea_runner.__name__,
56
+ __version__,
57
+ ssh_user,
58
+ ssh_host,
59
+ gitea_container_user,
60
+ gitea_container_name,
61
+ runner_certificate,
62
+ runner_capacity,
63
+ runner_container_name,
64
+ gitea_host,
65
+ gitea_port,
66
+ runner_instance_name,
67
+ )
68
+ token = ssh(
69
+ ssh_user,
70
+ ssh_host,
71
+ *_docker_exec_generate(user=gitea_container_user, name=gitea_container_name),
72
+ return_=True,
73
+ )
74
+ _start_runner(
75
+ token,
76
+ runner_certificate=runner_certificate,
77
+ runner_capacity=runner_capacity,
78
+ runner_container_name=runner_container_name,
79
+ gitea_host=gitea_host,
80
+ gitea_port=gitea_port,
81
+ runner_instance_name=runner_instance_name,
82
+ )
83
+
84
+
85
+ def register_against_local(
86
+ *,
87
+ gitea_container_user: str = SETTINGS.gitea_container_user,
88
+ gitea_container_name: str = SETTINGS.gitea_container_name,
89
+ runner_certificate: PathLike = SETTINGS.runner_certificate,
90
+ runner_capacity: int = SETTINGS.runner_capacity,
91
+ runner_container_name: str = SETTINGS.runner_container_name,
92
+ gitea_host: str = SETTINGS.gitea_host,
93
+ gitea_port: int = SETTINGS.gitea_port,
94
+ runner_instance_name: str = SETTINGS.runner_instance_name,
95
+ ) -> None:
96
+ """Register against a local instance of Gitea."""
97
+ LOGGER.info("Registering against %s:%d...", gitea_host, gitea_port)
98
+ token = run(
99
+ *_docker_exec_generate(user=gitea_container_user, name=gitea_container_name),
100
+ return_=True,
101
+ logger=LOGGER,
102
+ )
103
+ _start_runner(
104
+ token,
105
+ runner_certificate=runner_certificate,
106
+ runner_capacity=runner_capacity,
107
+ runner_container_name=runner_container_name,
108
+ gitea_host=gitea_host,
109
+ gitea_port=gitea_port,
110
+ runner_instance_name=runner_instance_name,
111
+ )
112
+
113
+
114
+ def _check_certificate(*, certificate: PathLike = SETTINGS.runner_certificate) -> None:
115
+ if not Path(certificate).is_file():
116
+ msg = f"Missing certificate {certificate!r}"
117
+ raise FileNotFoundError(msg)
118
+
119
+
120
+ def _check_token(text: str, /) -> None:
121
+ if not search(r"^[A-Za-z0-9]{40}$", text):
122
+ msg = f"Invalid token; got {text!r}"
123
+ raise ValueError(msg)
124
+
125
+
126
+ def _docker_exec_generate(
127
+ *,
128
+ user: str = SETTINGS.gitea_container_user,
129
+ name: str = SETTINGS.gitea_container_name,
130
+ ) -> list[str]:
131
+ return [
132
+ "docker",
133
+ "exec",
134
+ "--user",
135
+ user,
136
+ name,
137
+ "gitea",
138
+ "actions",
139
+ "generate-runner-token",
140
+ ]
141
+
142
+
143
+ def _docker_run_act_runner_args(
144
+ token: str,
145
+ /,
146
+ *,
147
+ host: str = SETTINGS.gitea_host,
148
+ port: int = SETTINGS.gitea_port,
149
+ runner_certificate: PathLike = SETTINGS.runner_certificate,
150
+ instance_name: str = SETTINGS.runner_instance_name,
151
+ container_name: str = SETTINGS.runner_container_name,
152
+ ) -> list[str]:
153
+ config_host = _get_config_path(token)
154
+ config_cont = "/config.yml"
155
+ entrypoint_host = _get_entrypoint_path(host=host, port=port)
156
+ entrypoint_cont = Path("/usr/local/bin/entrypoint.sh")
157
+ return [
158
+ "docker",
159
+ "run",
160
+ "--detach",
161
+ "--entrypoint",
162
+ str(entrypoint_cont),
163
+ "--env",
164
+ f"CONFIG_FILE={config_cont}",
165
+ "--env",
166
+ f"GITEA_INSTANCE_URL=https://{host}:{port}",
167
+ "--env",
168
+ f"GITEA_RUNNER_NAME={instance_name}",
169
+ "--env",
170
+ f"GITEA_RUNNER_REGISTRATION_TOKEN={token}",
171
+ "--name",
172
+ container_name,
173
+ "--volume",
174
+ "/var/run/docker.sock:/var/run/docker.sock",
175
+ "--volume",
176
+ f"{PATH_WAIT_FOR_IT}:/usr/local/bin/wait-for-it.sh:ro",
177
+ "--volume",
178
+ f"{Path.cwd()}/data:/data",
179
+ "--volume",
180
+ f"{config_host}:{config_cont}:ro",
181
+ "--volume",
182
+ f"{entrypoint_host}:{entrypoint_cont}:ro",
183
+ "--volume",
184
+ f"{runner_certificate}:/etc/ssl/certs/runner-certificate.pem:ro",
185
+ "gitea/act_runner",
186
+ ]
187
+
188
+
189
+ def _docker_stop_runner_args(
190
+ *, name: str = SETTINGS.runner_container_name
191
+ ) -> list[str]:
192
+ return ["docker", "rm", "--force", name]
193
+
194
+
195
+ def _get_config_contents(
196
+ *,
197
+ capacity: int = SETTINGS.runner_capacity,
198
+ certificate: PathLike = SETTINGS.runner_certificate,
199
+ ) -> str:
200
+ src = PATH_CONFIGS / "config.yml"
201
+ return Template(src.read_text()).safe_substitute(
202
+ CAPACITY=capacity, CERTIFICATE=certificate
203
+ )
204
+
205
+
206
+ def _get_config_path(token: str, /) -> Path:
207
+ return PATH_CACHE / f"configs/{token}.yml"
208
+
209
+
210
+ def _get_entrypoint_contents(
211
+ *, host: str = SETTINGS.gitea_host, port: int = SETTINGS.gitea_port
212
+ ) -> str:
213
+ src = PATH_CONFIGS / "entrypoint.sh"
214
+ return Template(src.read_text()).safe_substitute(GITEA_HOST=host, GITEA_PORT=port)
215
+
216
+
217
+ def _get_entrypoint_path(
218
+ *, host: str = SETTINGS.gitea_host, port: int = SETTINGS.gitea_port
219
+ ) -> Path:
220
+ return PATH_CACHE / f"entrypoints/{host}-{port}"
221
+
222
+
223
+ def _start_runner(
224
+ token: str,
225
+ /,
226
+ *,
227
+ runner_certificate: PathLike = SETTINGS.runner_certificate,
228
+ runner_capacity: int = SETTINGS.runner_capacity,
229
+ runner_container_name: str = SETTINGS.runner_container_name,
230
+ gitea_host: str = SETTINGS.gitea_host,
231
+ gitea_port: int = SETTINGS.gitea_port,
232
+ runner_instance_name: str = SETTINGS.runner_instance_name,
233
+ ) -> None:
234
+ _check_certificate(certificate=runner_certificate)
235
+ _check_token(token)
236
+ _write_config(token, capacity=runner_capacity, certificate=runner_certificate)
237
+ _write_entrypoint(host=gitea_host, port=gitea_port)
238
+ _write_wait_for_it()
239
+ run(
240
+ *_docker_stop_runner_args(name=runner_container_name), print=True, logger=LOGGER
241
+ )
242
+ run(
243
+ *_docker_run_act_runner_args(
244
+ token,
245
+ host=gitea_host,
246
+ port=gitea_port,
247
+ runner_certificate=runner_certificate,
248
+ instance_name=runner_instance_name,
249
+ container_name=runner_container_name,
250
+ ),
251
+ print=True,
252
+ logger=LOGGER,
253
+ )
254
+
255
+
256
+ def _write_config(
257
+ token: str,
258
+ /,
259
+ *,
260
+ capacity: int = SETTINGS.runner_capacity,
261
+ certificate: PathLike = SETTINGS.runner_certificate,
262
+ ) -> None:
263
+ dest = _get_config_path(token)
264
+ text = _get_config_contents(capacity=capacity, certificate=certificate)
265
+ with writer(dest, overwrite=True) as temp:
266
+ _ = temp.write_text(text)
267
+
268
+
269
+ def _write_entrypoint(
270
+ *, host: str = SETTINGS.gitea_host, port: int = SETTINGS.gitea_port
271
+ ) -> None:
272
+ dest = _get_entrypoint_path(host=host, port=port)
273
+ text = _get_entrypoint_contents(host=host, port=port)
274
+ with writer(dest, overwrite=True) as temp:
275
+ _ = temp.write_text(text)
276
+ chmod(temp, "u=rwx,g=rx,o=rx")
277
+
278
+
279
+ def _write_wait_for_it() -> None:
280
+ if PATH_WAIT_FOR_IT.is_file():
281
+ return
282
+ with writer(PATH_WAIT_FOR_IT, overwrite=True) as temp:
283
+ resp = get(URL_WAIT_FOR_IT, timeout=60)
284
+ resp.raise_for_status()
285
+ _ = temp.write_bytes(resp.content)
286
+ chmod(temp, "u=rwx,g=rx,o=rx")
287
+
288
+
289
+ __all__ = ["register_against_local"]
@@ -0,0 +1,33 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+
5
+ from typed_settings import load_settings, option, settings
6
+ from utilities.getpass import USER
7
+ from utilities.socket import HOSTNAME
8
+
9
+ from actions.utilities import LOADER
10
+
11
+
12
+ @settings
13
+ class Settings:
14
+ ssh_user: str = option(default="user", help="SSH username")
15
+ ssh_host: str = option(default="gitea", help="SSH host")
16
+ gitea_container_user: str = option(default="git", help="Gitea container user name")
17
+ gitea_container_name: str = option(default="gitea", help="Gitea container name")
18
+ gitea_host: str = option(default="gitea", help="Gitea host")
19
+ gitea_port: int = option(default=3000, help="Gitea port")
20
+ runner_capacity: int = option(default=1, help="Runner capacity")
21
+ runner_instance_name: str = option(
22
+ default=f"{USER}--{HOSTNAME}", help="Runner instance name"
23
+ )
24
+ runner_certificate: Path = option(
25
+ default=Path("root.pem"), help="Runner root certificate"
26
+ )
27
+ runner_container_name: str = option(default="runner", help="Runner container name")
28
+
29
+
30
+ SETTINGS = load_settings(Settings, [LOADER])
31
+
32
+
33
+ __all__ = ["SETTINGS", "Settings"]
actions/run_hooks/lib.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import time
4
+ from contextlib import suppress
4
5
  from pathlib import Path
5
6
  from re import search
6
7
  from subprocess import CalledProcessError
@@ -24,24 +25,27 @@ def run_hooks(
24
25
  *,
25
26
  repos: list[str] | None = SETTINGS.repos,
26
27
  hooks: list[str] | None = SETTINGS.hooks,
28
+ hooks_exclude: list[str] | None = SETTINGS.hooks_exclude,
27
29
  sleep: int = SETTINGS.sleep,
28
30
  ) -> None:
29
31
  LOGGER.info(
30
32
  strip_and_dedent("""
31
33
  Running '%s' (version %s) with settings:
32
- - repos = %s
33
- - hooks = %s
34
- - sleep = %d
34
+ - repos = %s
35
+ - hooks = %s
36
+ - hooks_exclude = %s
37
+ - sleep = %d
35
38
  """),
36
39
  run_hooks.__name__,
37
40
  __version__,
38
41
  repos,
39
42
  hooks,
43
+ hooks_exclude,
40
44
  sleep,
41
45
  )
42
46
  results = {
43
47
  hook: _run_hook(hook, sleep=sleep)
44
- for hook in _yield_hooks(repos=repos, hooks=hooks)
48
+ for hook in _yield_hooks(repos=repos, hooks=hooks, hooks_exclude=hooks_exclude)
45
49
  }
46
50
  failed = {hook: result for hook, result in results.items() if not result}
47
51
  if len(failed) >= 1:
@@ -53,6 +57,7 @@ def _yield_hooks(
53
57
  *,
54
58
  repos: list[str] | None = SETTINGS.repos,
55
59
  hooks: list[str] | None = SETTINGS.hooks,
60
+ hooks_exclude: list[str] | None = SETTINGS.hooks_exclude,
56
61
  ) -> Iterator[str]:
57
62
  dict_ = safe_load(Path(".pre-commit-config.yaml").read_text())
58
63
  repos_list = ensure_class(dict_["repos"], list)
@@ -65,6 +70,10 @@ def _yield_hooks(
65
70
  for hook in _yield_repo_hooks(repo):
66
71
  if any(search(hook_i, hook) for hook_i in hooks):
67
72
  results.add(hook)
73
+ if hooks_exclude is not None:
74
+ for hook in hooks_exclude:
75
+ with suppress(KeyError):
76
+ results.remove(hook)
68
77
  yield from sorted(results)
69
78
 
70
79
 
@@ -15,6 +15,9 @@ class Settings:
15
15
  hooks: list[str] | None = option(
16
16
  default=None, converter=convert_list_strs, help="The hooks to be run"
17
17
  )
18
+ hooks_exclude: list[str] | None = option(
19
+ default=None, converter=convert_list_strs, help="The hooks not to be run"
20
+ )
18
21
  sleep: int = option(default=1, help="Sleep in between runs")
19
22
 
20
23
 
actions/types.py CHANGED
@@ -6,6 +6,7 @@ from typing import TYPE_CHECKING, Any
6
6
  from tomlkit.items import Array, Table
7
7
  from typed_settings import Secret
8
8
  from utilities.packaging import Requirement
9
+ from utilities.types import StrDict
9
10
 
10
11
  if TYPE_CHECKING:
11
12
  from tomlkit.container import Container
@@ -15,7 +16,6 @@ type FuncRequirement = Callable[[Requirement], Requirement]
15
16
  type HasAppend = Array | list[Any]
16
17
  type HasSetDefault = Container | StrDict | Table
17
18
  type SecretLike = str | Secret[str]
18
- type StrDict = dict[str, Any]
19
19
 
20
20
 
21
- __all__ = ["FuncRequirement", "HasAppend", "HasSetDefault", "SecretLike", "StrDict"]
21
+ __all__ = ["FuncRequirement", "HasAppend", "HasSetDefault", "SecretLike"]
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: dycw-actions
3
- Version: 0.7.1
3
+ Version: 0.8.4
4
4
  Summary: Library of actions
5
5
  Requires-Dist: click>=8.3.1,<9
6
- Requires-Dist: dycw-utilities>=0.177.0,<1
6
+ Requires-Dist: dycw-utilities>=0.179.0,<1
7
7
  Requires-Dist: inflect>=7.5.0,<8
8
8
  Requires-Dist: libcst>=1.8.6,<2
9
9
  Requires-Dist: packaging>=25.0,<26
10
10
  Requires-Dist: pydantic>=2.12.5,<3
11
11
  Requires-Dist: pyyaml>=6.0.3,<7
12
+ Requires-Dist: requests>=2.32.5,<3
12
13
  Requires-Dist: rich>=14.2.0,<15
13
- Requires-Dist: ruamel-yaml>=0.19.0,<1
14
+ Requires-Dist: ruamel-yaml>=0.19.1,<1
14
15
  Requires-Dist: tomlkit>=0.13.3,<1
15
16
  Requires-Dist: typed-settings[attrs,click]>=25.3.0,<26
16
17
  Requires-Dist: xdg-base-dirs>=6.0.2,<7
@@ -1,23 +1,21 @@
1
- actions/__init__.py,sha256=_OevY0-QRr7A22CyPm0BKMCDflx5qu_IVMMkCcVHxdE,58
2
- actions/action_dicts/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
3
- actions/action_dicts/constants.py,sha256=tYYLr3aRRRvnR6NSADOJMN-B6gtqg2A9gBuheEPyGy4,189
4
- actions/action_dicts/lib.py,sha256=MpK_y5Jao0-3p6bWeYX5QQy3-JjMxwyzXRU5LjO25Iw,5547
1
+ actions/__init__.py,sha256=H8mH4w15RqfIw35Zak8l6adkEaCxYcUWrU66Ygj9eb0,58
5
2
  actions/clean_dir/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
6
3
  actions/clean_dir/cli.py,sha256=OrFA2nEN2LyGF22mhTNEBr7KSuKgX54sGy9RyE73qUc,569
7
4
  actions/clean_dir/constants.py,sha256=aDNaYtemEv3lcMXo96Oh4pw_HASMby1GZC1D_gbjPAc,167
8
- actions/clean_dir/lib.py,sha256=s8FdQBd9-PVmPixWFRmpcK6oOHrdutIxtsCSf1N1Tws,1577
5
+ actions/clean_dir/lib.py,sha256=7_-QbvB9Bq2veEl4eYWkBBWN0jSNrjGVlx1gLWS1PwU,1606
9
6
  actions/clean_dir/settings.py,sha256=mqM0Oq-yz4dXKcUi3JmOCvDhoeBNQm_Qe70cGmhdcQE,345
10
- actions/cli.py,sha256=NPiRNWXUyYLcalbDdsQaYDtjdkfSPvR3i6SyVrD5NUQ,4079
11
- actions/constants.py,sha256=SO0SBwEW8Wn5Uzt95OvlwTctyH0K7uvXMnNf1uCkrxk,212
7
+ actions/cli.py,sha256=J9k7_BQzgDHdgzkTqwXVzncRMHm0eAT0WW_c_gAUFlE,4441
8
+ actions/constants.py,sha256=C_eTTPwNJRjXV5BkFqdHMC2yQW86-iNTOCZjHYkMix0,1776
12
9
  actions/logging.py,sha256=rMTcQMGndUHTCaXXtyOHt_VXUMhQGRHoN7okpoX0y5I,120
13
10
  actions/pre_commit/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
14
11
  actions/pre_commit/click.py,sha256=BLHjkO0gIW7rgLabuWnszwXmI4yb8Li5D8gt81GR-FQ,270
15
12
  actions/pre_commit/conformalize_repo/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
16
- actions/pre_commit/conformalize_repo/cli.py,sha256=rPrxobdo4sKnq0de_UWDtrHqlhF6GTAabRhw_1XBeZY,3063
13
+ actions/pre_commit/conformalize_repo/action_dicts.py,sha256=6KVL5xeQ8fSAjPpgRnDmKV9lsqqJJND7VvHNBqMgjs8,7605
14
+ actions/pre_commit/conformalize_repo/cli.py,sha256=1og2QndEIvOgub_az3Nk3KOLWSaae6eARpBMw22eUu4,2891
17
15
  actions/pre_commit/conformalize_repo/configs/gitignore,sha256=8YCRPwysCD8-67yFXaTg6O8TTl4xeNIh7_DVmaU5Ix0,5063
18
- actions/pre_commit/conformalize_repo/constants.py,sha256=7WMbc1BwkVPJIf3eh3MaCoWj5A7pSPvNic28nrFTcoA,2148
19
- actions/pre_commit/conformalize_repo/lib.py,sha256=rgUQjX1ScjQcLeXx9cPqFqGYQmHprUhDodxEjp7RonM,47604
20
- actions/pre_commit/conformalize_repo/settings.py,sha256=Oz2AeStS64DFzT1HKJ888_7tiU1TdJIGBarvyKYfp4E,4985
16
+ actions/pre_commit/conformalize_repo/constants.py,sha256=s96CbNkfghrxQSJSWSOGuqWs-XjpwLyJBwKDlb-YdUY,1136
17
+ actions/pre_commit/conformalize_repo/lib.py,sha256=ur2gDK3MwB5Vnb6Zb33alXobgN55tQgECkjd9AfXpfU,50348
18
+ actions/pre_commit/conformalize_repo/settings.py,sha256=SDP34Ux75Db1MEsHpXx52bEJuqA03xKTYulJX1wvl4g,5338
21
19
  actions/pre_commit/constants.py,sha256=NBJ5GBMg5qhMAhAfxx1FKw0CdPwW_wG2cUJJ0dkF5HE,158
22
20
  actions/pre_commit/format_requirements/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
23
21
  actions/pre_commit/format_requirements/cli.py,sha256=c9UdOFDLEei5AEzrVvo6FopIEOf2EqyOliA-bOR5a2o,584
@@ -30,17 +28,17 @@ actions/pre_commit/replace_sequence_strs/lib.py,sha256=FzfwYeL3bhTCYbb1T-Yk1NtdH
30
28
  actions/pre_commit/touch_empty_py/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
31
29
  actions/pre_commit/touch_empty_py/cli.py,sha256=s2S5OfAGcSLtd2aGm1ooa1k20oNK-LQ1PZWz6T30vO8,559
32
30
  actions/pre_commit/touch_empty_py/constants.py,sha256=zSwH60zfn9RhIAbBFnXjHrm2s1nFpPUskX3CZuJpQLk,198
33
- actions/pre_commit/touch_empty_py/lib.py,sha256=avGiqWRi0x7E4zvvyxaqv_ccRpOT8Le7ol4_ETaXx2s,1458
31
+ actions/pre_commit/touch_empty_py/lib.py,sha256=jxT6CRZ3rrBatk3o-D0xDXon3a-G02sCvdMSNuRvCv0,1706
34
32
  actions/pre_commit/touch_py_typed/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
35
33
  actions/pre_commit/touch_py_typed/cli.py,sha256=CDJV4NuUHJlSdJ84dY0XvdwYHMdqygZ7C6x07B-iN3E,559
36
34
  actions/pre_commit/touch_py_typed/constants.py,sha256=kLZOm_wgypp7MaXRYq-6AZqVE4OttOMKmUqt11V2zn0,191
37
- actions/pre_commit/touch_py_typed/lib.py,sha256=Vsi1oDC6nUvWlQdA_a5t-kM5W5o3v0PBZZQe3_QS3Zo,1772
35
+ actions/pre_commit/touch_py_typed/lib.py,sha256=8crPXxI6CwudW13RIJrn3YtrFcZsspyJnTmNRHz4TaU,2020
38
36
  actions/pre_commit/update_requirements/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
39
- actions/pre_commit/update_requirements/classes.py,sha256=STRC3LS_2PkdvHPgPxkNAcSIDiomzsKhyiP5uhcLUe0,3266
37
+ actions/pre_commit/update_requirements/classes.py,sha256=ERC70c1CxQ3rOsQaEtp6FGbK_VaJ4K0jAV5XTB5-L30,3486
40
38
  actions/pre_commit/update_requirements/cli.py,sha256=CBfm8M7hwSRw8KS6ttiNE86IFHJ52V42AxlfakqTDN0,584
41
39
  actions/pre_commit/update_requirements/constants.py,sha256=ve44_RYed_41ckgQNPkb08u7Y1cpLpzutGSL9FdGBF8,228
42
- actions/pre_commit/update_requirements/lib.py,sha256=o3wUfeof-6oLYziHE74Q8WIHk4nyOv5PcK8cFkazm1k,4107
43
- actions/pre_commit/utilities.py,sha256=L1HCi3l778REPfomMuYbxrrnCn0FDRFaWAfmFR0lsTY,11422
40
+ actions/pre_commit/update_requirements/lib.py,sha256=Wh8Lq6s_YJv4sDoUUMB-HuP0Ysm9nHePX7_xZ81o7Pk,4590
41
+ actions/pre_commit/utilities.py,sha256=VLh2tC9NNI60Uwx-ze3uuqKgOJ1OvFCvzYjDWM5o0Js,11397
44
42
  actions/publish_package/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
45
43
  actions/publish_package/cli.py,sha256=nAPHCq67mxUb3yHepVGcoQ69qgaQahM1-cxdbHfxQg0,803
46
44
  actions/publish_package/constants.py,sha256=C68ZCVL_jVlYdLGpOK6saZccWoFy5AmC_NMBIWYdYOE,209
@@ -52,11 +50,18 @@ actions/random_sleep/cli.py,sha256=-d9y63oWgvQtNp9j_8v3zt5gKl-GrUq8-b3Ky52R42c,6
52
50
  actions/random_sleep/constants.py,sha256=5GMqCD1f12uyKDVTZBbnDDn6TQa99mUYZb9p-crg5BA,190
53
51
  actions/random_sleep/lib.py,sha256=JzgpeEONdKXSBeNc3ex9goVyJR3bsa76lB_tkH1Ggc0,1762
54
52
  actions/random_sleep/settings.py,sha256=F8gO2j2EEX8moemwhWWCPdRuOpZ_qLtqzSfWhjIy3P8,529
53
+ actions/register_gitea_runner/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
54
+ actions/register_gitea_runner/cli.py,sha256=70RUyzKCZHxyDRMFwCAwDC0LDsUZxBi2T6ctzbFlpc8,1129
55
+ actions/register_gitea_runner/configs/config.yml,sha256=0kpaqAjMRDqdSxkSK8ydOk2IsrlkB4cUkYmbkHAurrg,5683
56
+ actions/register_gitea_runner/configs/entrypoint.sh,sha256=IN40hAu8ufyyFWPIgsX_hWp0ZZZ0c36czCaqmECjBrw,476
57
+ actions/register_gitea_runner/constants.py,sha256=wX1f5qvhIXngBVWbIQRoIaXIdPaUByvG8HS8P0WcCGM,694
58
+ actions/register_gitea_runner/lib.py,sha256=V_K6UHmZOD9V-DF6ZNA2QakNyuyuyjgJZ6AJQFf37lQ,8832
59
+ actions/register_gitea_runner/settings.py,sha256=0UQm8M3qDiBE3jiE333M4FdLjikNAzpc9gk_VlzI0s8,1149
55
60
  actions/run_hooks/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
56
61
  actions/run_hooks/cli.py,sha256=xKBw6iIlHpUlHl6-QWQLSL6KKVjnsihBeJ7h58Rl8P4,616
57
62
  actions/run_hooks/constants.py,sha256=JRhDk08qbzo5C-zwHdXZV5ajvNSKh4GcOcBvOIY6IGU,172
58
- actions/run_hooks/lib.py,sha256=a-eUOtgTouxJYCsLRjsPIXl6nP58T2RB4jhr-Hhz0Sg,2850
59
- actions/run_hooks/settings.py,sha256=XbQe1j1oEvDnbl4H6B-YEY6Ms6qlsj-N2XSJhdVHCWA,606
63
+ actions/run_hooks/lib.py,sha256=_IXK6uzKpXyyky6D0oYLjXoRLHsbA1pvTk_bcdY26RU,3259
64
+ actions/run_hooks/settings.py,sha256=Cj6QVK6JspzOp6-1CaOENlXbg25kvgPXG4FKWgIiDgY,740
60
65
  actions/setup_cronjob/__init__.py,sha256=U4S_2y3zgLZVfMenHRaJFBW8yqh2mUBuI291LGQVOJ8,35
61
66
  actions/setup_cronjob/cli.py,sha256=l6t2WjCUprACV0rY8kHvpHLt3LgMI4q2XY4AEOiutkk,891
62
67
  actions/setup_cronjob/configs/cron.tmpl,sha256=UD_d0LYlB6tbkXAcUTzpGDWVNgIhCR45Jgky91iSCP8,412
@@ -69,9 +74,9 @@ actions/tag_commit/cli.py,sha256=1E6cM0XKTCt_Ukb7pxqOojHpJjoa63dVBO6DXoESe9Q,745
69
74
  actions/tag_commit/constants.py,sha256=ceOvQpY4dgtJSd7v_jI1V00S0SjRq2ToGeZu41-DL7M,176
70
75
  actions/tag_commit/lib.py,sha256=rq1SqAkNp98cPsNOsFY4F1D6nNi7N3wqVbFPno8lsuI,1849
71
76
  actions/tag_commit/settings.py,sha256=TOeKG_GODP--2lBSyGzH_M32jDIfh4vk_Ts06R3_ak4,629
72
- actions/types.py,sha256=GRXLoJtYWmRjgfatDDRMcXKZkN9ZtK1Fi2MEyAZ84uk,591
77
+ actions/types.py,sha256=1P3oAnYxyKgAfv8986jZ6whwdHV0qLHoX0oR8brviQk,586
73
78
  actions/utilities.py,sha256=VpFLBiAezgSRlm9dvnyPyQohreaV2Lv7cJ9HAxqZ4WI,4086
74
- dycw_actions-0.7.1.dist-info/WHEEL,sha256=KSLUh82mDPEPk0Bx0ScXlWL64bc8KmzIPNcpQZFV-6E,79
75
- dycw_actions-0.7.1.dist-info/entry_points.txt,sha256=2Uu7wAZOm0mmcsGBEsGB370HAWgVWECRFJ9rKgfC3-I,46
76
- dycw_actions-0.7.1.dist-info/METADATA,sha256=T4208DBQxD3yT09fwfKIiVGyOvSax8tyqNt8MxNGBLM,619
77
- dycw_actions-0.7.1.dist-info/RECORD,,
79
+ dycw_actions-0.8.4.dist-info/WHEEL,sha256=KSLUh82mDPEPk0Bx0ScXlWL64bc8KmzIPNcpQZFV-6E,79
80
+ dycw_actions-0.8.4.dist-info/entry_points.txt,sha256=2Uu7wAZOm0mmcsGBEsGB370HAWgVWECRFJ9rKgfC3-I,46
81
+ dycw_actions-0.8.4.dist-info/METADATA,sha256=GyCgKEL03OjKWo5XN-TLYvLBqNfsih61YIFlwZwvQW4,654
82
+ dycw_actions-0.8.4.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- from __future__ import annotations
2
-
3
- GITHUB_TOKEN = "${{github.token}}" # noqa: S105
4
- PRERELEASE = "disallow"
5
- RESOLUTION = "highest"
6
-
7
-
8
- __all__ = ["GITHUB_TOKEN", "PRERELEASE", "RESOLUTION"]