Skip to content
Open
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
13 changes: 8 additions & 5 deletions .github/workflows/license-exception-approved.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
create-pr:
if: github.event.label.name == 'approved' || github.event.label.name == 'denied'
if: github.event.label.name == 'license-exception/approved' || github.event.label.name == 'license-exception/denied' || github.event.label.name == 'license-exception/not-eligible'
runs-on: ubuntu-latest
permissions:
contents: write
Expand All @@ -31,7 +31,7 @@ jobs:
const issueNumber = context.issue.number;
const today = new Date().toISOString().split('T')[0];
const labelName = context.payload.label.name;
const status = labelName === 'approved' ? 'approved' : 'denied';
const status = labelName.replace('license-exception/', '');

// Extract project name
const projectMatch = body.match(/For which CNCF project[^]*?\n\n([^\n]+)/);
Expand Down Expand Up @@ -135,9 +135,12 @@ jobs:
const status = '${{ steps.parse.outputs.status }}';

if (prNumber) {
const emoji = status === 'approved' ? '✅' : '❌';
const title = status === 'approved' ? 'Exception Approved' : 'Exception Denied';
const action = status === 'approved' ? 'add these approved exceptions' : 'record these denied exceptions';
const meta = {
'approved': { emoji: '✅', title: 'Exception Approved', action: 'add these approved exceptions' },
'denied': { emoji: '❌', title: 'Exception Denied', action: 'record these denied exceptions' },
'not-eligible': { emoji: '🚫', title: 'Exception Not Eligible', action: 'record these not-eligible requests' }
}[status] || { emoji: 'ℹ️', title: 'Exception Decision', action: 'record these exceptions' };
const { emoji, title, action } = meta;

await github.rest.issues.createComment({
owner: context.repo.owner,
Expand Down
75 changes: 0 additions & 75 deletions .github/workflows/netlify-preview.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/validate-exceptions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
if (!exc.package) throw new Error('Exception ' + i + ' missing package');
if (!exc.license) throw new Error('Exception ' + i + ' missing license');
if (!exc.status) throw new Error('Exception ' + i + ' missing status');
if (!['approved', 'denied', 'allowlisted', 'apache-2.0'].includes(exc.status)) {
if (!['approved', 'denied', 'not-eligible', 'allowlisted', 'apache-2.0'].includes(exc.status)) {
throw new Error('Exception ' + i + ' has invalid status: ' + exc.status);
}
}
Expand Down
1 change: 1 addition & 0 deletions license-exceptions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ All exception entries follow this structure:
|--------|-------------|
| `approved` | Approved by Governing Board vote |
| `denied` | Denied by Governing Board (e.g., non-OSS license) |
| `not-eligible` | Not eligible for the exception process (e.g., proposed use is inconsistent with the CNCF IP Policy) |
| `allowlisted` | Meets allowlist criteria automatically |
| `apache-2.0` | Apache-2.0 licensed (no exception needed) |

Expand Down
2 changes: 1 addition & 1 deletion license-exceptions/schema/exception.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"requestingProject": { "type": "string" },
"approvedDate": { "type": "string", "format": "date" },
"issueUrl": { "type": "string", "format": "uri" },
"status": { "type": "string", "enum": ["approved", "denied", "allowlisted", "apache-2.0"] },
"status": { "type": "string", "enum": ["approved", "denied", "not-eligible", "allowlisted", "apache-2.0"] },
"project": {
"oneOf": [
{ "type": "string" },
Expand Down
2 changes: 2 additions & 0 deletions license-exceptions/site/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,8 @@
return 'status-approved';
case 'denied':
return 'status-denied';
case 'not-eligible':
return 'status-not-eligible';
case 'allowlisted':
return 'status-allowlisted';
case 'apache-2.0':
Expand Down
3 changes: 2 additions & 1 deletion license-exceptions/site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<header class="header">
<div class="container">
<h1>CNCF License Exceptions</h1>
<p class="subtitle">Approved license exceptions for CNCF projects</p>
<p class="subtitle">Requested license exceptions for CNCF projects</p>
</div>
</header>

Expand All @@ -34,6 +34,7 @@ <h1>CNCF License Exceptions</h1>
<option value="">All Statuses</option>
<option value="approved">Approved</option>
<option value="denied">Denied</option>
<option value="not-eligible">Not Eligible</option>
<option value="allowlisted">Allowlisted</option>
<option value="apache-2.0">Apache-2.0</option>
</select>
Expand Down
5 changes: 5 additions & 0 deletions license-exceptions/site/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,11 @@ body {
color: #721c24;
}

.status-not-eligible {
background-color: #fff3cd;
color: #856404;
}

/* No Results */
.no-results {
padding: 3rem;
Expand Down
2 changes: 1 addition & 1 deletion license-exceptions/tests/package-exceptions.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ test.describe('Package Exceptions Page', () => {
test('page has subtitle text', async ({ page }) => {
// The page should have subtitle text about license exceptions
await expect(page.locator('.subtitle')).toBeVisible();
await expect(page.locator('.subtitle')).toContainText('Approved license exceptions');
await expect(page.locator('.subtitle')).toContainText('Requested license exceptions');
});

test('blanket exceptions are shown in main table', async ({ page }) => {
Expand Down
3 changes: 0 additions & 3 deletions netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@
[build.environment]
NODE_VERSION = "20"

[context.deploy-preview]
ignore = "exit 0"

[[headers]]
for = "/*"
[headers.values]
Expand Down
Loading