autogits/workflow-pr
2024-12-01 11:36:26 +01:00
..
.gitignore rename things 2024-09-13 14:58:10 +02:00
example.json pr: WIP 2024-09-27 17:58:09 +02:00
go.mod wip 2024-11-07 18:25:35 +01:00
go.sum wip 2024-11-07 18:25:35 +01:00
main_test.go workflow-pr: refactor 2024-11-29 12:49:11 +01:00
main.go workflow-pr: refactor 2024-11-29 12:49:11 +01:00
maintainership_test.go workflow-pr: maintainership API change 2024-11-29 17:33:01 +01:00
maintainership.go workflow-pr: maintainership API change 2024-11-29 17:33:01 +01:00
pr_processor_closed_test.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor_closed.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor_opened_test.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor_opened.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor_sync_test.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor_sync.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor_test.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
pr_processor.go workflow-pr: renamed files 2024-12-01 11:36:26 +01:00
README.md workflow-pr: maintainership doc update 2024-11-28 17:25:32 +01:00
repo_check_test.go workflow-pr: tests 2024-11-27 17:50:55 +01:00
repo_check.go workflow-pr: more unit tests 2024-11-25 17:02:48 +01:00

Workflow-PR bot

Keeps ProjectGit PR in-sync with a PackageGit PR

Areas of Responsibility

  • Detects a PackageGit PR creation against a package and creates a coresponsing PR against the ProjectGit
  • When a PackageGit PR is updated, the corresponding PR against the ProjectGit is updated
  • Stores reference to the PackageGit PR in the headers of the ProjectGit PR comments, for later reference
    • this allows ProjectGit PR to be merged to seperated later (via another tool, for example)
  • Initiates all staging workflows via review requests

Target Usage

Any project (devel, etc) that accepts PR

Config file

JSON

  • Workflows: "pr" -- pr workflow enabled
  • Organization: organization that holds all the packages
  • Branch: branch updated in repo's
  • GitProjectName: package in above org, or org/package for PrjGit
  • Reviewers: accounts associated with mandatory reviews for PrjGit. Can trigger additional review requests for PrjGit or associated PkgGit repos. Only when all reviews are satisfied, will the PrjGit PR be merged.

example:

[
 {
    "Workflows": ["pr", "direct"],
    "Organization": "autogits",
    "GitProjectName": "HiddenPrj",
    "Branch": "hidden",
    "Reviewers": []
 },
 ...
]

Maintainership

Maintainership information is defined per project. For reviews, package maintainers are coalesced with project maintainers. A review by any of the maintainers is acceptable.

example:

{
    "package1": [ "reviewer", "reviewer2"],
    "package2": [],

    // "project" maintainer
    "": ["reviewer3", "reviewer4"]
}