Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

version: 2
updates:

# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code-metrics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ jobs:
with:
title: '${{ steps.dotnet-code-metrics.outputs.summary-title }}'
body: '${{ steps.dotnet-code-metrics.outputs.summary-details }}'
commit-message: '.NET code metrics, automated pull request.'
commit-message: '.NET code metrics, automated pull request.'
32 changes: 32 additions & 0 deletions .github/workflows/lint-markdown.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Lint Markdown
# Runs markdownlint-cli2 using the repo's .markdownlint.json config

on:
push:
branches: [dev, insider]
paths: ['**.md', '.markdownlint.json', '.github/workflows/lint-markdown.yml']
pull_request:
branches: [dev, preview, main, insider]
paths: ['**.md', '.markdownlint.json', '.github/workflows/lint-markdown.yml']

permissions:
contents: read

jobs:
markdownlint:
name: markdownlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Run markdownlint
uses: DavidAnson/markdownlint-cli2-action@v23
with:
globs: |
**/*.md
!.squad/**
!.copilot/**
!.github/agents/**
!.github/skills/**
!.github/copilot-instructions.md
config: '.markdownlint.json'
38 changes: 38 additions & 0 deletions .github/workflows/lint-yaml.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Lint YAML
# Validates all workflow and config YAML files

on:
push:
branches: [dev, insider]
paths: ['**.yml', '**.yaml']
pull_request:
branches: [dev, preview, main, insider]
paths: ['**.yml', '**.yaml']

permissions:
contents: read

jobs:
yamllint:
name: yamllint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Run yamllint
uses: ibiqlik/action-yamllint@v3
with:
file_or_dir: .
config_data: |
extends: default
ignore: |
.squad/
rules:
line-length:
max: 200
allow-non-breakable-inline-mappings: true
truthy:
allowed-values: ['true', 'false', 'on']
brackets:
min-spaces-inside: 0
max-spaces-inside: 1
10 changes: 5 additions & 5 deletions .github/workflows/squad-heartbeat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ jobs:
core.info('No triage results — board is clear');
return;
}

const results = JSON.parse(fs.readFileSync(path, 'utf8'));
if (results.length === 0) {
core.info('📋 Board is clear — Ralph found no untriaged issues');
return;
}

for (const decision of results) {
try {
await github.rest.issues.addLabels({
Expand All @@ -76,7 +76,7 @@ jobs:
issue_number: decision.issueNumber,
labels: [decision.label]
});

await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
Expand All @@ -92,13 +92,13 @@ jobs:
'> To reassign, swap the `squad:*` label.'
].join('\n')
});

core.info(`Triaged #${decision.issueNumber} → ${decision.assignTo} (${decision.source})`);
} catch (e) {
core.warning(`Failed to triage #${decision.issueNumber}: ${e.message}`);
}
}

core.info(`🔄 Ralph triaged ${results.length} issue(s)`);

# Copilot auto-assign step (uses PAT if available)
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/squad-label-enforce.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

// Handle go: namespace (mutual exclusivity)
if (appliedLabel.startsWith('go:')) {
const otherGoLabels = allLabels.filter(l =>
const otherGoLabels = allLabels.filter(l =>
l.startsWith('go:') && l !== appliedLabel
);

Expand Down Expand Up @@ -97,7 +97,7 @@ jobs:

// Handle release: namespace (mutual exclusivity)
if (appliedLabel.startsWith('release:')) {
const otherReleaseLabels = allLabels.filter(l =>
const otherReleaseLabels = allLabels.filter(l =>
l.startsWith('release:') && l !== appliedLabel
);

Expand All @@ -123,7 +123,7 @@ jobs:

// Handle type: namespace (mutual exclusivity)
if (appliedLabel.startsWith('type:')) {
const otherTypeLabels = allLabels.filter(l =>
const otherTypeLabels = allLabels.filter(l =>
l.startsWith('type:') && l !== appliedLabel
);

Expand All @@ -149,7 +149,7 @@ jobs:

// Handle priority: namespace (mutual exclusivity)
if (appliedLabel.startsWith('priority:')) {
const otherPriorityLabels = allLabels.filter(l =>
const otherPriorityLabels = allLabels.filter(l =>
l.startsWith('priority:') && l !== appliedLabel
);

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/squad-mark-released.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ permissions:
contents: read

env:
PROJECT_ID: PVT_kwHOA5k0b84BVFTy
STATUS_FIELD_ID: PVTSSF_lAHOA5k0b84BVFTyzhQjgPk
DONE_OPTION_ID: "98236657"
PROJECT_ID: PVT_kwHOA5k0b84BVFTy
STATUS_FIELD_ID: PVTSSF_lAHOA5k0b84BVFTyzhQjgPk
DONE_OPTION_ID: "98236657"
RELEASED_OPTION_ID: "8e246b27"

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/squad-pr-auto-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
const labelNames = currentLabels.map(l => l.name);

// Check if already has squad labels
const hasSquadLabel = labelNames.some(name =>
const hasSquadLabel = labelNames.some(name =>
name === 'squad' || name.startsWith('squad:')
);

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/squad-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,7 @@ jobs:
ls -la ~/.cache/ms-playwright/ 2>/dev/null || echo "No playwright cache found"
echo "dotnet version:"
dotnet --version

dotnet test tests/AppHost.Tests \
--configuration Release \
--no-build \
Expand Down
Loading