linear-b / gitstream

/:\ gitStream - Workflow automation for your git repo. Use YAML to auto-assign reviewers, auto-merge PRs, automatic PR labeler, and more.
https://gitstream.cm
Apache License 2.0
246 stars 29 forks source link

Add `cron` based policies #483

Open TRAD-Anthony-CKO opened 3 months ago

TRAD-Anthony-CKO commented 3 months ago

Is your feature request related to a problem? Please describe. I wanted to write a policy that auto-close some PRs after a certain time (5 Days for example). I didn't find anything about supporting scheduled runs in policies. Is that supported somewhere? Any example I can use as a baseline?

Describe the solution you'd like Here's an example policy I tried to write:

# -*- mode: yaml -*-

manifest:
  version: 1.0

automations:
  auto_close_old_prs:
    schedule:
      cron: "0 0 * * *"
    if:
      - {{ pull_request.age_days > 10 }}
      - {{ 'auto-close' in pull_request.labels }}
    run:
      - action: close-pr@v1
        args:
          reason: "This PR has been automatically closed as it has been open for more than 10 days without being merged or updated and is tagged with 'auto-close'. Please feel free to reopen or create a new PR if the changes are still relevant."

pull_request:
  age_days: {{ now() | date:'Y-m-d' | diff(pull_request.created_at | date:'Y-m-d') | days }}
  labels: {{ pull_request.labels | map(attribute='name') }}  
PavelLinearB commented 3 months ago

Hi @TRAD-Anthony-CKO, thanks for raising this issue We are planning to add a cron trigger. But I'd like to make sure that our planned feature will address this use case I will update here on the details and ETA

TRAD-Anthony-CKO commented 1 month ago

Hi @PavelLinearB Any updates on this or ETA you can share? Thanks.

vim-zz commented 1 month ago

Hi @TRAD-Anthony-CKO I can confirm that this has been prioritized. However, I cannot provide a specific date at this time.