Merge branch 'actions:main' into main

This commit is contained in:
fredster33
2022-05-14 22:20:42 +08:00
committed by GitHub
12 changed files with 271 additions and 21 deletions
+17
View File
@@ -0,0 +1,17 @@
# Set to true to add reviewers to pull requests
addReviewers: true
# Set to true to add assignees to pull requests
addAssignees: false
# A list of reviewers to be added to pull requests (GitHub user name)
reviewers:
- phantsure
- anuragc617
- tiwarishub
- vsvipul
- bishal-pdmsft
# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 1
+15
View File
@@ -0,0 +1,15 @@
name: Issue assignment
on:
issues:
types: [opened]
jobs:
auto-assign:
runs-on: ubuntu-latest
steps:
- name: 'Auto-assign issue'
uses: pozil/auto-assign-issue@v1.4.0
with:
assignees: phantsure,tiwarishub,anuragc617,vsvipul,bishal-pdmsft
numOfAssignee: 1
+10
View File
@@ -0,0 +1,10 @@
name: 'Auto Assign'
on:
pull_request:
types: [opened, ready_for_review]
jobs:
add-reviews:
runs-on: ubuntu-latest
steps:
- uses: kentaro-m/auto-assign-action@v1.2.1
+1 -1
View File
@@ -90,4 +90,4 @@ jobs:
COSIGN_EXPERIMENTAL: "true"
# This step uses the identity token to provision an ephemeral certificate
# against the sigstore community Fulcio instance.
run: cosign sign ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}
run: cosign sign ${{ steps.meta.outputs.tags }}@${{ steps.build-and-push.outputs.digest }}
+1 -1
View File
@@ -105,7 +105,7 @@ jobs:
# Remove the pfx
- name: Remove the pfx
run: Remove-Item -path $env:Wap_Project_Directory\$env:Signing_Certificate
run: Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
+9 -7
View File
@@ -48,8 +48,11 @@ jobs:
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
@@ -58,13 +61,12 @@ jobs:
# ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
#- run: |
# make bootstrap
# make release
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
+47
View File
@@ -0,0 +1,47 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# hadoint is a Dockerfile linter written in Haskell
# that helps you build best practice Docker images.
# More details at https://github.com/hadolint/hadolint
name: Hadolint
on:
push:
branches: [ $default-branch, $protected-branches ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ $default-branch ]
schedule:
- cron: $cron-weekly
permissions:
contents: read
jobs:
hadolint:
name: Run hadolint scanning
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Run hadolint
uses: hadolint/hadolint-action@f988afea3da57ee48710a9795b6bb677cc901183
with:
dockerfile: ./Dockerfile
format: sarif
output-file: hadolint-results.sarif
no-fail: true
- name: Upload analysis results to GitHub
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: hadolint-results.sarif
wait-for-processing: true
@@ -0,0 +1,6 @@
{
"name": "Haskell Dockerfile Linter",
"description": "A smarter Dockerfile linter that helps you build best practice Docker images.",
"iconName": "hadolint",
"categories": ["Code Scanning", "Dockerfile"]
}
+131
View File
@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px" height="200px" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve"> <image id="image0" width="200" height="200" x="0" y="0"
href="data:image/png;base64,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" />
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

+17 -6
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env npx ts-node
import { promises as fs } from "fs";
import { safeLoad } from "js-yaml";
import { basename, extname, join } from "path";
import { basename, extname, join, dirname } from "path";
import { Validator as validator } from "jsonschema";
import { endGroup, error, info, setFailed, startGroup } from '@actions/core';
@@ -14,6 +14,7 @@ interface WorkflowWithErrors {
interface WorkflowProperties {
name: string;
description: string;
creator: string;
iconName: string;
categories: string[];
}
@@ -40,7 +41,7 @@ const propertiesSchema = {
}
}
async function checkWorkflows(folders: string[], allowed_categories: string[]): Promise<WorkflowWithErrors[]> {
async function checkWorkflows(folders: string[], allowed_categories: object[]): Promise<WorkflowWithErrors[]> {
const result: WorkflowWithErrors[] = []
const workflow_template_names = new Set()
for (const folder of folders) {
@@ -69,7 +70,7 @@ async function checkWorkflows(folders: string[], allowed_categories: string[]):
return result;
}
async function checkWorkflow(workflowPath: string, propertiesPath: string, allowed_categories: string[]): Promise<WorkflowWithErrors> {
async function checkWorkflow(workflowPath: string, propertiesPath: string, allowed_categories: object[]): Promise<WorkflowWithErrors> {
let workflowErrors: WorkflowWithErrors = {
id: workflowPath,
name: null,
@@ -104,9 +105,19 @@ async function checkWorkflow(workflowPath: string, propertiesPath: string, allow
}
}
if (!workflowPath.endsWith("blank.yml") && (!properties.categories ||
!properties.categories.some(category => allowed_categories.some(ac => ac.toLowerCase() == category.toLowerCase())))) {
workflowErrors.errors.push(`Workflow does not contain at least one allowed category - ${allowed_categories}`)
var path = dirname(workflowPath)
var folder_categories = allowed_categories.find( category => category["path"] == path)["categories"]
if (!workflowPath.endsWith("blank.yml")) {
if(!properties.categories || properties.categories.length == 0) {
workflowErrors.errors.push(`Workflow categories cannot be null or empty`)
}
else if(!folder_categories.some(category => properties.categories[0].toLowerCase() == category.toLowerCase())) {
workflowErrors.errors.push(`The first category in properties.json categories for workflow in ${basename(path)} folder must be one of "${folder_categories}. Either move the workflow to an appropriate directory or change the category."`)
}
}
if(basename(path).toLowerCase() == 'deployments' && !properties.creator) {
workflowErrors.errors.push(`The "creator" in properties.json must be present.`)
}
} catch (e) {
workflowErrors.errors.push(e.toString())
+17 -6
View File
@@ -5,11 +5,22 @@
"../../deployments",
"../../code-scanning"
],
"allowed_categories" : [
"Continuous integration",
"Deployment",
"Code Scanning",
"Dependency review",
"Automation"
"allowed_categories": [
{
"path": "../../ci",
"categories": ["Continuous integration"]
},
{
"path": "../../automation",
"categories": ["Automation"]
},
{
"path": "../../deployments",
"categories": ["Deployment"]
},
{
"path": "../../code-scanning",
"categories": ["Code Scanning", "Dependency review"]
}
]
}