T6386: added caller workflows and codeowners (#634)

This commit is contained in:
Vijayakumar A 2024-05-23 12:22:26 +05:30 committed by GitHub
parent fad55b3e97
commit e43017472c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 140 additions and 193 deletions

View File

@ -41,7 +41,7 @@ like this
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
<!--- The entire development process is outlined here: https://docs.vyos.io/en/latest/contributing/development.html -->
- [ ] I have read the [**CONTRIBUTING**](https://github.com/vyos/vyos-1x/blob/current/CONTRIBUTING.md) document
- [ ] I have read the [**CONTRIBUTING**](https://github.com/vyos/vyos-build/blob/current/CONTRIBUTING.md) document
- [ ] I have linked this PR to one or more Phabricator Task(s)
- [ ] My commit headlines contain a valid Task id
- [ ] My change requires a change to the documentation

12
.github/labeler.yml vendored
View File

@ -1,12 +0,0 @@
equuleus:
- any:
- base-branch: 'equuleus'
current:
- any:
- base-branch: 'current'
crux:
- any:
- base-branch: 'crux'
sagitta:
- any:
- base-branch: 'sagitta'

View File

@ -1,3 +0,0 @@
---
"**/*":
- team: reviewers

18
.github/workflows/add-pr-labels.yml vendored Normal file
View File

@ -0,0 +1,18 @@
---
name: Add pull request labels
on:
pull_request_target:
branches:
- current
- equuleus
- sagitta
permissions:
pull-requests: write
contents: read
jobs:
add-pr-label:
uses: vyos/.github/.github/workflows/add-pr-labels.yml@feature/T6349-reusable-workflows
secrets: inherit

View File

@ -3,25 +3,12 @@ on:
pull_request_target:
types: [opened, reopened, ready_for_review, locked]
permissions:
pull-requests: write
contents: read
jobs:
# https://github.com/marketplace/actions/auto-author-assign
assign-author:
runs-on: ubuntu-latest
steps:
- name: "Assign Author to PR"
uses: toshimaru/auto-author-assign@v1.3.5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/shufo/auto-assign-reviewer-by-files
assign_reviewer:
runs-on: ubuntu-latest
steps:
- name: Request review based on files changes and/or groups the author belongs to
uses: shufo/auto-assign-reviewer-by-files@v1.1.4
with:
token: ${{ secrets.PR_ACTION_ASSIGN_REVIEWERS }}
config: .github/reviewers.yml
uses: vyos/.github/.github/workflows/assign-author.yml@feature/T6349-reusable-workflows
secrets: inherit

18
.github/workflows/chceck-pr-message.yml vendored Normal file
View File

@ -0,0 +1,18 @@
---
name: Check pull request message format
on:
pull_request:
branches:
- current
- sagitta
- equuleus
permissions:
pull-requests: write
contents: read
jobs:
check-pr-title:
uses: vyos/.github/.github/workflows/check-pr-message.yml@feature/T6349-reusable-workflows
secrets: inherit

View File

@ -0,0 +1,14 @@
name: "PR Conflicts checker"
on:
pull_request_target:
types: [synchronize]
permissions:
pull-requests: write
contents: read
jobs:
check-pr-conflict-call:
uses: vyos/.github/.github/workflows/check-pr-merge-conflict.yml@feature/T6349-reusable-workflows
secrets: inherit

14
.github/workflows/check-stale.yml vendored Normal file
View File

@ -0,0 +1,14 @@
name: "Issue and PR stale management"
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
permissions:
pull-requests: write
contents: read
jobs:
stale:
uses: vyos/.github/.github/workflows/check-stale.yml@feature/T6349-reusable-workflows
secrets: inherit

View File

@ -0,0 +1,16 @@
name: Check for unused imports using Pylint
on:
pull_request:
branches:
- current
- sagitta
- equuleus
workflow_dispatch:
permissions:
contents: read
jobs:
check-unused-imports:
uses: vyos/.github/.github/workflows/check-unused-imports.yml@feature/T6349-reusable-workflows
secrets: inherit

23
.github/workflows/codeql.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: "Perform CodeQL Analysis"
on:
push:
branches: [ "current", "sagitta", "equuleus" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "current" ]
schedule:
- cron: '22 10 * * 0'
workflow_dispatch:
permissions:
actions: read
contents: read
security-events: write
jobs:
codeql-analysis-call:
uses: vyos/.github/.github/workflows/codeql-analysis.yml@feature/T6349-reusable-workflows
secrets: inherit
with:
languages: "['python']"

12
.github/workflows/label-backport.yml vendored Normal file
View File

@ -0,0 +1,12 @@
name: Mergifyio backport
on: [issue_comment]
permissions:
pull-requests: write
contents: read
jobs:
mergifyio-backport:
uses: vyos/.github/.github/workflows/label-backport.yml@feature/T6349-reusable-workflows
secrets: inherit

19
.github/workflows/linit-j2.yml vendored Normal file
View File

@ -0,0 +1,19 @@
---
name: J2 Lint
on:
pull_request:
branches:
- current
- sagitta
- equuleus
workflow_dispatch:
permissions:
pull-requests: write
contents: read
jobs:
j2lint:
uses: vyos/.github/.github/workflows/lint-j2.yml@feature/T6349-reusable-workflows
secrets: inherit

View File

@ -1,22 +0,0 @@
name: Mergifyio backport
on: [issue_comment]
jobs:
mergifyio_backport:
if: github.repository == 'vyos/vyos-build'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-ecosystem/action-regex-match@v2
id: regex-match
with:
text: ${{ github.event.comment.body }}
regex: '[Mm]ergifyio backport '
- uses: actions-ecosystem/action-add-labels@v1
if: ${{ steps.regex-match.outputs.match != '' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
labels: backport

View File

@ -1,18 +0,0 @@
name: "PR Conflicts checker"
on:
pull_request_target:
types: [synchronize]
jobs:
Conflict_Check:
name: 'Check PR status: conflicts and resolution'
runs-on: ubuntu-latest
steps:
- name: check if PRs are dirty
uses: eps1lon/actions-label-merge-conflict@v3
with:
dirtyLabel: "state: conflict"
removeOnDirtyLabel: "state: conflict resolved"
repoToken: "${{ secrets.GITHUB_TOKEN }}"
commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request."
commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly."

View File

@ -1,20 +0,0 @@
---
name: Add pull request labels
on:
pull_request_target:
branches:
- current
- crux
- equuleus
- sagitta
jobs:
add-pr-label:
name: Add PR Labels
runs-on: ubuntu-20.04
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/labeler@v5.0.0

View File

@ -1,23 +0,0 @@
---
name: Check pull request message format
on:
pull_request:
branches:
- current
- crux
- equuleus
jobs:
check-pr-title:
name: Check pull request title
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
timeout-minutes: 2
- name: Install the requests library
run: pip3 install requests
- name: Check the PR title
timeout-minutes: 2
run: |
./scripts/check-pr-title-and-commit-messages.py '${{ github.event.pull_request.url }}'

View File

@ -1,22 +0,0 @@
name: "Issue and PR stale management"
on:
schedule:
- cron: "0 0 * * *"
jobs:
stale:
runs-on: ubuntu-latest
if: github.repository == 'vyos/vyos-1x'
steps:
# Issue stale management
- uses: actions/stale@v6
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 90
days-before-close: -1
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. The issue will be reviewed by a maintainer and may be closed'
stale-issue-label: 'state: stale'
exempt-issue-labels: 'state: accepted, state: in-progress'
stale-pr-message: 'This PR is stale because it has been open 30 days with no activity. The PR will be reviewed by a maintainer and may be closed'
stale-pr-label: 'state: stale'
exempt-pr-labels: 'state: accepted, state: in-progress'

1
CODEOWNERS Normal file
View File

@ -0,0 +1 @@
* @kumvijaya

View File

@ -1,54 +0,0 @@
#!/usr/bin/env python3
import re
import sys
import time
import requests
# Use the same regex for PR title and commit messages for now
title_regex = r'^(([a-zA-Z\-_.]+:\s)?)T\d+:\s+[^\s]+.*'
commit_regex = title_regex
def check_pr_title(title):
if not re.match(title_regex, title):
print(f"PR title '{title}' does not match the required format!")
print("Valid title example: T99999: make IPsec secure")
sys.exit(1)
def check_commit_message(title):
if not re.match(commit_regex, title):
print(f"Commit title '{title}' does not match the required format!")
print("Valid title example: T99999: make IPsec secure")
sys.exit(1)
if __name__ == '__main__':
if len(sys.argv) < 2:
print("Please specify pull request URL!")
sys.exit(1)
# There seems to be a race condition that causes this scripts to receive
# an incomplete PR object that is missing certain fields,
# which causes temporary CI failures that require re-running the script
#
# It's probably better to add a small delay to prevent that
time.sleep(5)
# Get the pull request object
pr = requests.get(sys.argv[1]).json()
if "title" not in pr:
print("The PR object does not have a title field!")
print("Did not receive a valid pull request object, please check the URL!")
sys.exit(1)
check_pr_title(pr["title"])
# Get the list of commits
commits = requests.get(pr["commits_url"]).json()
for c in commits:
# Retrieve every individual commit and check its title
co = requests.get(c["url"]).json()
check_commit_message(co["commit"]["message"])

View File

@ -18,7 +18,6 @@
import os
import sys
import shutil
import traceback
import vyos.utils.process