This repo contains workflow templates and other org level config and files
QuIC repos should enable the Repolinter GitHub Action upon creation. This action runs the Repolinter tool, which lints open source repositories for common issues.
- Navigate to the new repo
- Click on Actions
- If you have existing actions in the repo, click "New workflow", else skip to next step
- Locate the "By Qualcomm Innovation Center" section and click "Configure" under "QuIC Organization Repolinter Workflow"
- Click "Commit changes...", select "Commit directly to the main branch" (or feel free to create a new branch and start a PR), ensure your QuIC email is selected under "Commit Email", and then click "Sign off and commit changes"
- This will create a GitHub Action config file in your repo under the path
.github/workflows/quic-organization-repolinter.yml
- Adjust it as needed, e.g. the Repolinter action is configured to run on Push and Pull Requests into the main/master branch, but you may want to further adjust when it runs.
When the GitHub Action is run, it first checks your QuIC repo for a local repolint.json
file at the root directory. If it doesn't find one it'll use the default QuIC Repolinter ruleset, which is located here https://github.com/quic/.github/blob/main/repolint.json
To customize the default QuIC repolinter ruleset (e.g. to add some language specific file extensions for the license check), you can extend the default ruleset and override specific rules.
For example, if we wanted to exclude the copyright/license check for a directory e.g. /test-data
from Repolinter:
- Create the file
repolint.json
at the root of your project - "Extend" the QuIC repolint.json file
{
"extends": "https://raw.githubusercontent.com/quic/.github/main/repolint.json",
"rules": {}
}
- Copy the rule block you need to adjust from
https://raw.githubusercontent.com/quic/.github/main/repolint.json
. E.g. in this case we want to exclude/test-data
from the license header check. So let's copy the json blocksource-license-headers-exist
and paste it into therules
section of the localrepolint.json
we extended - Now lets add the
test-data
directory to the list of patterns to skip/exclude from being checked
{
"extends": "https://raw.githubusercontent.com/quic/.github/main/repolint.json",
"rules": {
"source-license-headers-exist": {
"level": "error",
"rule": {
"type": "file-starts-with",
"options": {
"globsAll": [
"**/*.py",
"**/*.js",
"**/*.c",
"**/*.cc",
"**/*.cpp",
"**/*.h",
"**/*.ts",
"**/*.sh",
"**/*.rs",
"**/*.java",
"**/*.go",
"**/*.bbclass",
"**/*.S"
],
"skip-paths-matching": {
"patterns": [
"babel.config.js",
"build\/",
"jest.config.js",
"node_modules\/",
"types\/",
"uthash.h",
"test-data\/"
]
},
"lineCount": 60,
"patterns": [
"(Copyright|©).*Qualcomm Innovation Center, Inc|Copyright (\\(c\\)|©) (20(1[2-9]|2[0-2])(-|,|\\s)*)+ The Linux Foundation",
"SPDX-License-Identifier|Redistribution and use in source and binary forms, with or without"
],
"flags": "i"
}
}
}
}
}