Skip to content

ci: adopt canonical skill template#87

Merged
CybotTM merged 3 commits into
mainfrom
ci/adopt-skill-template
Jun 17, 2026
Merged

ci: adopt canonical skill template#87
CybotTM merged 3 commits into
mainfrom
ci/adopt-skill-template

Conversation

@CybotTM

@CybotTM CybotTM commented Jun 16, 2026

Copy link
Copy Markdown
Member

Migrate CI to the canonical skill template (netresearch/.github): explicit per-call-site permissions on every reusable, drift-enforced. CodeQL via default setup.

Drift-enforced canonical CI with explicit per-call-site permissions. CodeQL via default setup.

Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
Copilot AI review requested due to automatic review settings June 16, 2026 11:02
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@github-actions

github-actions Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 4 package(s) with unknown licenses.
See the Details below.

License Issues

.github/workflows/scorecard.yml

PackageVersionLicenseIssue Type
netresearch/.github/.github/workflows/scorecard.ymlmainNullUnknown License

.github/workflows/security.yml

PackageVersionLicenseIssue Type
netresearch/.github/.github/workflows/dependency-review.ymlmainNullUnknown License
netresearch/.github/.github/workflows/gitleaks.ymlmainNullUnknown License
netresearch/typo3-ci-workflows/.github/workflows/security.ymlmainNullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
actions/netresearch/.github/.github/workflows/scorecard.yml main UnknownUnknown
actions/netresearch/.github/.github/workflows/dependency-review.yml main UnknownUnknown
actions/netresearch/.github/.github/workflows/gitleaks.yml main UnknownUnknown
actions/netresearch/typo3-ci-workflows/.github/workflows/security.yml main UnknownUnknown

Scanned Files

  • .github/workflows/scorecard.yml
  • .github/workflows/security.yml

@codecov

codecov Bot commented Jun 16, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 16.66667% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 66.71%. Comparing base (143ed8d) to head (f122674).

Files with missing lines Patch % Lines
src/Util/ComposerJsonDirectSkillsWriter.php 0.00% 2 Missing ⚠️
src/AgentsMdGenerator.php 0.00% 1 Missing ⚠️
src/Lock/SkillLockIo.php 0.00% 1 Missing ⚠️
src/Trust/TrustStore.php 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##               main      #87   +/-   ##
=========================================
  Coverage     66.71%   66.71%           
  Complexity      807      807           
=========================================
  Files            45       45           
  Lines          2289     2289           
=========================================
  Hits           1527     1527           
  Misses          762      762           
Flag Coverage Δ
unittests 66.71% <16.66%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…ositive unlink SAST

This repo is a PHP composer plugin, not a skill repo. Re-scope the
.github/ governance from the skill template to the php-module template:

- Remove skill-only workflows (eval-validate, harness-verify, lint).
- Sync security.yml, scorecard.yml, check-template-drift.yml and
  template.yaml byte-identically from netresearch/.github
  templates/php-module/. dependabot.yml, labeler.yml and
  auto-merge-deps.yml were already byte-identical.
- Keep the repo's own ci.yml and release.yml (PHP test/lint/release).

Add scoped Opengrep suppressions for 6 confirmed false-positive
php.lang.security.unlink-use findings. Five are the safe atomic-write
cleanup pattern (unlink of a freshly-created random-named temp file on
rename failure); one is recursive cleanup of plugin-managed directory
contents from directory iteration. None use untrusted input.

Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
Comment thread src/AgentsMdGenerator.php
if (!rename($tempPath, $agentsMdPath)) {
@unlink($tempPath);
// cleanup of our own freshly-created temp file (random name) on atomic-write rename failure; path is not user input
@unlink($tempPath); // nosemgrep: php.lang.security.unlink-use.unlink-use
Comment thread src/Lock/SkillLockIo.php
if (!rename($temp, $path)) {
@unlink($temp);
// cleanup of our own freshly-created temp file (random name) on atomic-write rename failure; path is not user input
@unlink($temp); // nosemgrep: php.lang.security.unlink-use.unlink-use
Comment thread src/Trust/TrustStore.php
if (!@rename($tempPath, $this->composerJsonPath)) {
@unlink($tempPath);
// cleanup of our own freshly-created temp file (random name) on atomic-write rename failure; path is not user input
@unlink($tempPath); // nosemgrep: php.lang.security.unlink-use.unlink-use
if (!rename($temp, $composerJsonPath)) {
@unlink($temp);
// cleanup of our own freshly-created temp file (random name) on atomic-write rename failure; path is not user input
@unlink($temp); // nosemgrep: php.lang.security.unlink-use.unlink-use
if (!rename($temp, $composerJsonPath)) {
@unlink($temp);
// cleanup of our own freshly-created temp file (random name) on atomic-write rename failure; path is not user input
@unlink($temp); // nosemgrep: php.lang.security.unlink-use.unlink-use
}
} elseif (file_exists($path) && !unlink($path)) {
// recursive cleanup of plugin-managed directory contents; path from directory iteration, not user input
} elseif (file_exists($path) && !unlink($path)) { // nosemgrep: php.lang.security.unlink-use.unlink-use
Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
7 Security Hotspots
3.2% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@CybotTM CybotTM merged commit 42fce2f into main Jun 17, 2026
30 of 32 checks passed
@CybotTM CybotTM deleted the ci/adopt-skill-template branch June 17, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants