Skip to content

Commit 93a86ea

Browse files
committed
Initial commit
1 parent d8b7742 commit 93a86ea

15 files changed

Lines changed: 1293 additions & 0 deletions

File tree

.eslintrc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ extends:
4545
- plugin:jest/recommended
4646

4747
rules:
48+
'@typescript-eslint/no-explicit-any': off
49+
'@typescript-eslint/no-unused-vars': off
4850
camelcase: off
4951
eslint-comments/no-use: off
5052
eslint-comments/no-unused-disable: off
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Create a Class
2+
description: Create a GitHub Intermediate Class
3+
title: '[Create] <CUSTOMER_NAME>'
4+
assignees:
5+
- ncalteen
6+
body:
7+
- type: markdown
8+
attributes:
9+
value:
10+
This form will kick off creation of a new GitHub Intermediate class
11+
environment for you. Please fill out the form below and click the
12+
`Submit new issue` button. A comment will be added to the issue when the
13+
request has been validated.
14+
- type: input
15+
id: customer-name
16+
attributes:
17+
label: Customer Name
18+
description: The name of the customer.
19+
placeholder: Octocat Enterprises
20+
validations:
21+
required: true
22+
- type: input
23+
id: customer-abbr
24+
attributes:
25+
label: Customer Abbreviation
26+
description: A 2-3 character abbreviation for the customer.
27+
placeholder: OCT
28+
validations:
29+
required: true
30+
- type: input
31+
id: start-date
32+
attributes:
33+
label: Start Date
34+
description: The start date in `YYYY-MM-DD`` format.
35+
placeholder: '2024-01-01'
36+
validations:
37+
required: true
38+
- type: input
39+
id: end-date
40+
attributes:
41+
label: End Date
42+
description:
43+
The end date in `YYYY-MM-DD`` format. Access will be revoked when this
44+
date has passed!
45+
placeholder: '2024-01-15'
46+
validations:
47+
required: true
48+
- type: textarea
49+
id: administrators
50+
attributes:
51+
label: Administrators
52+
description:
53+
A list of GitHub handles and emails to add as repository administrators.
54+
This should include anyone who will be delivering or supporting delivery
55+
of this training.
56+
placeholder: |
57+
ncalteen,ncalteen@github.com
58+
octocat,octocat@github.com
59+
render: CSV
60+
validations:
61+
required: true
62+
- type: textarea
63+
id: attendees
64+
attributes:
65+
label: Attendees
66+
description: A list of GitHub handles and emails to add as members.
67+
placeholder: |
68+
ncalteen,ncalteen@github.com
69+
octocat,octocat@github.com
70+
render: CSV
71+
validations:
72+
required: true

.github/workflows/check-dist.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Check dist/
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths-ignore:
8+
- '**.md'
9+
pull_request:
10+
branches:
11+
- main
12+
paths-ignore:
13+
- '**.md'
14+
15+
permissions:
16+
contents: read
17+
18+
jobs:
19+
check-dist:
20+
name: Build and Compare
21+
runs-on: ubuntu-latest
22+
23+
steps:
24+
- name: Checkout
25+
id: checkout
26+
uses: actions/checkout@v4
27+
28+
- name: Setup Node.js
29+
id: setup-node
30+
uses: actions/setup-node@v4
31+
with:
32+
node-version-file: .node-version
33+
cache: npm
34+
35+
- name: Install Dependencies
36+
id: install
37+
run: npm ci
38+
39+
- name: Build dist/ Directory
40+
id: build
41+
run: npm run bundle
42+
43+
- name: Compare Expected and Actual Directories
44+
id: diff
45+
run: |
46+
if [ "$(git diff --ignore-space-at-eol --text -- dist/ ':(exclude)dist/84.index.js' | wc -l)" -gt "0" ]; then
47+
echo "Detected uncommitted changes after build. See status below:"
48+
git diff --ignore-space-at-eol --text dist/
49+
exit 1
50+
fi
51+
52+
- if: ${{ failure() && steps.diff.conclusion == 'failure' }}
53+
name: Upload Artifact
54+
id: upload
55+
uses: actions/upload-artifact@v4
56+
with:
57+
name: dist
58+
path: dist/

.github/workflows/codeql.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: CodeQL
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
schedule:
11+
- cron: '30 1 * * 4'
12+
13+
permissions:
14+
actions: read
15+
checks: write
16+
contents: read
17+
security-events: write
18+
19+
jobs:
20+
analyze:
21+
name: Analyze
22+
runs-on: ubuntu-latest
23+
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
language:
28+
- javascript
29+
30+
steps:
31+
- name: Checkout
32+
id: checkout
33+
uses: actions/checkout@v4
34+
35+
- name: Initialize CodeQL
36+
id: initialize
37+
uses: github/codeql-action/init@v3
38+
with:
39+
languages: ${{ matrix.language }}
40+
41+
- name: Autobuild
42+
id: autobuild
43+
uses: github/codeql-action/autobuild@v3
44+
45+
- name: Perform CodeQL Analysis
46+
id: analyze
47+
uses: github/codeql-action/analyze@v3
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Continuous Delivery
2+
3+
on:
4+
pull_request:
5+
types:
6+
- closed
7+
branches:
8+
- main
9+
workflow_dispatch:
10+
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
release:
16+
name: Release Version
17+
runs-on: ubuntu-latest
18+
19+
if: |
20+
github.event_name == 'workflow_dispatch' ||
21+
(github.event.pull_request.merged == true &&
22+
startsWith(github.head_ref, 'dependabot/') == false)
23+
24+
steps:
25+
- name: Checkout
26+
id: checkout
27+
uses: actions/checkout@v4
28+
with:
29+
fetch-tags: true
30+
31+
- name: Tag
32+
id: tag
33+
uses: issue-ops/semver@v2
34+
with:
35+
manifest-path: package.json
36+
workspace: ${{ github.workspace }}
37+
ref: main
38+
39+
- name: Create Release
40+
id: release
41+
uses: issue-ops/releaser@v2
42+
with:
43+
tag: v${{ steps.tag.outputs.version }}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Whenever a pull request is created or updated, this workflow will:
2+
# - Checkout the repository
3+
# - Install Node.js and dependencies
4+
# - Check the format of the code
5+
# - Lint the code
6+
# - Test the code
7+
#
8+
# Each of the `npm` steps is defined in the `scripts` section of `package.json`.
9+
name: Continuous Integration
10+
11+
on:
12+
pull_request:
13+
branches:
14+
- main
15+
workflow_dispatch:
16+
17+
permissions:
18+
checks: write
19+
contents: read
20+
21+
jobs:
22+
continuous-integration:
23+
name: Continuous Integration
24+
runs-on: ubuntu-latest
25+
26+
steps:
27+
# Checkout the repository.
28+
- name: Checkout
29+
id: checkout
30+
uses: actions/checkout@v4
31+
32+
# Setup Node.js using the version specified in `.node-version`.
33+
- name: Setup Node.js
34+
id: setup-node
35+
uses: actions/setup-node@v4
36+
with:
37+
node-version-file: .node-version
38+
cache: npm
39+
40+
# Install dependencies using `npm ci`.
41+
- name: Install Dependencies
42+
id: install
43+
run: npm ci
44+
45+
# Check the format of the code.
46+
- name: Check Format
47+
id: format-check
48+
run: npm run format:check
49+
50+
# Lint the code.
51+
- name: Lint
52+
id: lint
53+
run: npm run lint
54+
55+
# Test the code.
56+
- name: Test
57+
id: test
58+
run: npm run ci-test

.github/workflows/linter.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Lint Codebase
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
concurrency:
10+
group: ${{ github.ref }}-${{ github.workflow }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
lint:
15+
name: Lint Codebase
16+
runs-on: ubuntu-latest
17+
18+
permissions:
19+
contents: read
20+
issues: write
21+
packages: read
22+
pull-requests: write
23+
statuses: write
24+
25+
steps:
26+
# Checkout the repository.
27+
- name: Checkout
28+
id: checkout
29+
uses: actions/checkout@v4
30+
31+
# Setup Node.js using the version specified in `.node-version`.
32+
- name: Setup Node.js
33+
id: setup-node
34+
uses: actions/setup-node@v4
35+
with:
36+
node-version-file: .node-version
37+
cache: npm
38+
39+
# Install dependencies using `npm ci`.
40+
- name: Install Dependencies
41+
id: install
42+
run: npm ci
43+
44+
- name: Lint Codebase
45+
id: lint-codebase
46+
env:
47+
DEFAULT_WORKSPACE: ${{ github.workspace }}
48+
GITHUB_TOKEN: ${{ github.token }}
49+
uses: oxsecurity/megalinter/flavors/cupcake@v8

action.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: GitHub Intermediate IssueOps Automation Action
2+
description: Automates management of GitHub Intermediate deliveries
3+
author: Nick Alteen <ncalteen@github.com>
4+
5+
inputs:
6+
action:
7+
description:
8+
The action to perform. You can either `create` a new class, `add` a user
9+
to an existing class, `remove` a user from an existing class, `close` an
10+
existing class, or `extend` an existing class.
11+
required: true
12+
github_token:
13+
description: The GitHub token used to authenticate with the GitHub API
14+
required: true
15+
workspace:
16+
description: The path to the workspace
17+
required: true
18+
default: ${{ github.workspace }}
19+
20+
outputs:
21+
deleted:
22+
description: Repositories that have been deleted
23+
existing:
24+
description: Existing repositories that were already created
25+
new:
26+
description: New repositories that have been created
27+
28+
runs:
29+
using: node20
30+
main: dist/index.js

0 commit comments

Comments
 (0)