This pull request updates multiple GitHub Actions workflows to improve security, stability, and functionality. The most notable changes include pinning action versions to specific commit SHAs, adding validation for branch names, and updating dependencies and configurations. ### Security Improvements: * Added `persist-credentials: false` to `actions/checkout` steps in `.github/workflows/build-engine-docker-image-and-publish-to-dockerhub.yml` and `.github/workflows/e2e-tests.yml` to reduce the risk of unauthorized access to credentials. [[1]](diffhunk://#diff-f87667d48e22abfbbccf3695a8acc386143e3542286f432e6e3d8330960c76f9R29) [[2]](diffhunk://#diff-194218c48b9a0cdd03974145733804c2d992ca818529fe2fa69a501d8b5b1cc3R48-R59) * Validated branch names against a safe pattern in `.github/workflows/linting-and-tests.yml` to prevent potential misuse of branch names in subsequent steps. ### Stability Enhancements: * Pinned all third-party GitHub Actions to specific commit SHAs across various workflows to ensure consistent and predictable behavior. Examples include `grafana/shared-workflows/actions/build-push-to-dockerhub`, `catchpoint/workflow-telemetry-action`, and `actions-ecosystem/action-remove-labels`. [[1]](diffhunk://#diff-f87667d48e22abfbbccf3695a8acc386143e3542286f432e6e3d8330960c76f9L37-R38) [[2]](diffhunk://#diff-194218c48b9a0cdd03974145733804c2d992ca818529fe2fa69a501d8b5b1cc3R48-R59) [[3]](diffhunk://#diff-f93a3de9563193d65121683e6383741ac4b6aa18bdb51ba82b80497e700561cdL15-R15) * Updated Helm-related actions in `.github/workflows/linting-and-tests.yml` and `.github/workflows/on-release-published.yml` to specific SHAs for better reliability. [[1]](diffhunk://#diff-a70d3d29c45894eeef2036c533385dbc424f9479590aaea01e62c06dc67079a1L147-R170) [[2]](diffhunk://#diff-e95a5d3f03a1351728732657b6b150cfbbd9a9724b387226b1f99f079b1954b0L91-R91) ### Functional Updates: * Enhanced `.github/workflows/linting-and-tests.yml` by using validated branch references in Git commands to avoid errors caused by unsafe branch names. * Updated `snyk/actions/setup` in `.github/workflows/snyk-security-scan.yml` to a specific SHA for improved compatibility and security. These changes collectively enhance the security, reliability, and maintainability of the workflows.
90 lines
4.7 KiB
YAML
90 lines
4.7 KiB
YAML
name: On issue creation
|
|
|
|
on:
|
|
issues:
|
|
types:
|
|
- opened
|
|
|
|
jobs:
|
|
add-latest-version-comment-to-feature-request-issues:
|
|
name: Add latest version comment to feature request issues
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.issue.labels.*.name, 'feature request')
|
|
permissions:
|
|
issues: write
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Get latest version tag
|
|
id: get-latest-tag
|
|
uses: actions-ecosystem/action-get-latest-tag@b7c32daec3395a9616f88548363a42652b22d435 #v1.6.0
|
|
with:
|
|
semver_only: true
|
|
- name: Add latest version comment
|
|
# GitHub recommends pinning actions to a commit SHA.
|
|
# To get a newer version, you will need to update the SHA.
|
|
# You can also reference a tag or branch, but the action may change without warning.
|
|
uses: peter-evans/create-or-update-comment@5f728c3dae25f329afbe34ee4d08eef25569d79f
|
|
with:
|
|
issue-number: ${{ github.event.issue.number }}
|
|
body: >
|
|
The current version of Grafana OnCall, at the time this issue was opened,
|
|
is ${{ steps.get-latest-tag.outputs.tag }}. If your issue pertains to an older version of Grafana OnCall,
|
|
please be sure to list it in the PR description. Thank you :smile:!
|
|
|
|
add-needs-triage-label:
|
|
name: Add "needs triage" label
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Add "needs triage" label
|
|
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf #v1.1.3
|
|
with:
|
|
labels: needs triage
|
|
|
|
map-selected-product-areas-to-labels-and-assignees:
|
|
name: Map selected product areas to labels and assignees
|
|
runs-on: ubuntu-latest
|
|
# try to avoid running this job for an issue that is created via a tasklist
|
|
# only run it for issues created via the bug or feature request issue templates
|
|
if: >
|
|
contains(github.event.issue.labels.*.name, 'bug') ||
|
|
contains(github.event.issue.labels.*.name, 'feature request')
|
|
permissions:
|
|
issues: write
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- id: issue-form-values
|
|
uses: stefanbuck/github-issue-parser@2ea9b35a8c584529ed00891a8f7e41dc46d0441e #v3.2.1
|
|
|
|
- run: echo $JSON_STRING
|
|
env:
|
|
JSON_STRING: ${{ steps.issue-form-values.outputs.jsonString }}
|
|
|
|
- name: Map mobile app product area to appropriate assignees
|
|
uses: actions-ecosystem/action-add-assignees@ce5019e63cc4f35aba27308dc88d19c8f3686747 #v1.0.0
|
|
if: contains(steps.issue-form-values.outputs.issueparser_product_area, 'Mobile App')
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
assignees: |
|
|
imtoori
|
|
dieterbe
|
|
|
|
- name: Map selected product area(s) to issue labels
|
|
uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf #v1.1.3
|
|
# github actions have a weird ternary operator, see below for more details
|
|
# https://docs.github.com/en/actions/learn-github-actions/expressions#literals:~:text=GitHub%20offers%20ternary%20operator%20like%20behaviour%20that%20you%20can%20use%20in%20expressions
|
|
with:
|
|
# yamllint disable rule:line-length
|
|
labels: |
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Alert Flow & Configuration') && 'part:alert flow & configuration' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Auth') && 'part:auth/teams' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Chatops') && 'part:chatops' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Mobile App') && 'part:mobile' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Schedules') && 'part:schedules' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'API') && 'part:API' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Metrics') && 'part:metrics/logging' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Terraform/Crossplane') && 'part:Terraform/Crossplane' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Helm/Kubernetes/Docker') && 'part:helm/kubernetes/docker' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'CI/CD') && 'part:ci/cd' || '' }}
|
|
${{ contains(steps.issue-form-values.outputs.issueparser_product_area, 'Other') && 'more info needed' || '' }}
|
|
# yamllint enable rule:line-length
|