repoactive 0.2.3.dev1__tar.gz → 0.2.3.dev2__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 (22) hide show
  1. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/PKG-INFO +1 -1
  2. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/pyproject.toml +1 -1
  3. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/config.py +3 -0
  4. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/platforms/base.py +1 -0
  5. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/platforms/github.py +2 -0
  6. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/platforms/gitlab.py +2 -0
  7. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/runner.py +3 -0
  8. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/updates.py +1 -0
  9. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/.gitignore +0 -0
  10. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/LICENSE +0 -0
  11. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/README.md +0 -0
  12. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/__init__.py +0 -0
  13. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/cli.py +0 -0
  14. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/constants.py +0 -0
  15. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/graph.py +0 -0
  16. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/jj.py +0 -0
  17. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/jobtree.py +0 -0
  18. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/lock.py +0 -0
  19. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/platforms/__init__.py +0 -0
  20. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/progress.py +0 -0
  21. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/settings.py +0 -0
  22. {repoactive-0.2.3.dev1 → repoactive-0.2.3.dev2}/src/repoactive/ui.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: repoactive
3
- Version: 0.2.3.dev1
3
+ Version: 0.2.3.dev2
4
4
  Summary: Script-driven code changes with automated merge requests
5
5
  License-Expression: GPL-3.0-or-later
6
6
  License-File: LICENSE
@@ -10,7 +10,7 @@ only-include = ["src"]
10
10
 
11
11
  [project]
12
12
  name = "repoactive"
13
- version = "0.2.3.dev1"
13
+ version = "0.2.3.dev2"
14
14
  description = "Script-driven code changes with automated merge requests"
15
15
  readme = "README.md"
16
16
  requires-python = ">=3.11"
@@ -269,6 +269,7 @@ class JobDefaults(BaseModel):
269
269
  base_branch: str | None = None
270
270
  cooldown_period: _Duration | None = None
271
271
  timeout: _Duration | None = "2m"
272
+ auto_merge: bool = False
272
273
 
273
274
  @field_validator("mr_title_prefix", "commit_title_prefix")
274
275
  @classmethod
@@ -288,6 +289,7 @@ _DEFAULTED_FIELDS = (
288
289
  "base_branch",
289
290
  "cooldown_period",
290
291
  "timeout",
292
+ "auto_merge",
291
293
  )
292
294
 
293
295
 
@@ -323,6 +325,7 @@ class Job(BaseModel):
323
325
  labels: list[str] = Field(default_factory=list)
324
326
  cooldown_period: _Duration | None = None
325
327
  timeout: _Duration | None = None
328
+ auto_merge: bool | None = None
326
329
 
327
330
  @field_validator("name")
328
331
  @classmethod
@@ -25,6 +25,7 @@ class MRParams:
25
25
  description: str
26
26
  labels: list[str]
27
27
  draft: bool
28
+ auto_merge: bool = False
28
29
 
29
30
 
30
31
  class Platform(ABC):
@@ -59,4 +59,6 @@ class GitHubPlatform(Platform):
59
59
  )
60
60
  if params.labels:
61
61
  pr.set_labels(*params.labels)
62
+ if params.auto_merge:
63
+ pr.enable_automerge()
62
64
  return pr.html_url
@@ -49,4 +49,6 @@ class GitLabPlatform(Platform):
49
49
  "labels": params.labels,
50
50
  }
51
51
  )
52
+ if params.auto_merge:
53
+ mr.merge(merge_when_pipeline_succeeds=True)
52
54
  return mr.web_url
@@ -63,6 +63,7 @@ _INHERITED_FIELDS = (
63
63
  "commit_title_prefix",
64
64
  "draft",
65
65
  "create_mr",
66
+ "auto_merge",
66
67
  )
67
68
 
68
69
 
@@ -1033,6 +1034,7 @@ def _absorb_results(
1033
1034
  command_output=result.command_output,
1034
1035
  labels=result.job.labels,
1035
1036
  draft=result.job.draft,
1037
+ auto_merge=result.job.auto_merge or False,
1036
1038
  depends_on=list(result.job.depends_on),
1037
1039
  )
1038
1040
  plan.updates.append(
@@ -1287,6 +1289,7 @@ def _apply_plan_publish(
1287
1289
  description=build_mr_description(update.mr, dependency_links),
1288
1290
  labels=update.mr.labels,
1289
1291
  draft=update.mr.draft,
1292
+ auto_merge=update.mr.auto_merge,
1290
1293
  )
1291
1294
  url = platform.ensure_mr(params)
1292
1295
  except Exception as e:
@@ -46,6 +46,7 @@ class MRUpdate(BaseModel):
46
46
  command_output: str
47
47
  labels: list[str]
48
48
  draft: bool
49
+ auto_merge: bool = False
49
50
  depends_on: list[str] = Field(default_factory=list)
50
51
 
51
52
 
File without changes