Skip to content

Agency Onboarding Issue Scaffold #9

Agency Onboarding Issue Scaffold

Agency Onboarding Issue Scaffold #9

name: "Agency Onboarding Issue Scaffold"
on:
workflow_dispatch:
inputs:
long_name:
description: "The full name of the transit provider; e.g. California State Transit"
required: true
type: string
short_name:
description: "The short name / acronym of the transit provider; e.g. CST"
required: true
type: string
transit_processor:
description: "Which transit processor does this transit provider use?"
required: true
type: choice
options:
- Littlepay
- Switchio
website:
description: "The full URL (including https://) to the transit provider's website"
required: false
type: string
launch_date:
description: "Estimated launch date (month and year); e.g. August 2026"
required: false
type: string
initiative_issue:
description: "The number (e.g. 1234) for the parent Initiative issue"
required: false
type: number
permissions:
contents: write
issues: write
pull-requests: write
jobs:
scaffold-issues:
runs-on: ubuntu-latest
env:
helpers_script: "${{ github.workspace }}/.github/workflows/agency-onboarding/helpers.js"
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Parent issue
id: parent
uses: actions/github-script@v9
with:
script: |
const { createEpicIssue } = await import(process.env.helpers_script);
const epicIssue = await createEpicIssue({ context, core, github });
core.setOutput('node_id', epicIssue.data.node_id);
core.setOutput('issue_number', epicIssue.data.number);
- name: Onboarding form issue
id: form
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'onboarding-form.md',
title: `Transit provider has completed their onboarding form`
});
- name: Adoption table issue
id: table
uses: actions/github-script@v9
with:
script: |
const { updateAdoptionTable } = await import(process.env.helpers_script);
draftPr = await updateAdoptionTable({
github, context,
parentIssue: "${{ steps.parent.outputs.issue_number }}"
});
core.notice(`Draft PR for updating agency adoption table: ${draftPr.html_url}`);
- name: Transit processor configuration issue
id: transit-processor
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
const { transit_processor } = context.payload.inputs;
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: `${transit_processor.toLowerCase()}.md`,
title: `${transit_processor} configuration complete; ready for configuration in Cal-ITP Benefits`
});
- name: Production Validation configuration issue
id: production-validation
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'production-validation.md',
title: `Transit provider fully configured for Production Validation testing in Cal-ITP Benefits \`test\` environment`
});
- name: Test environment configuration issue
id: test
uses: actions/github-script@v9
if: inputs.transit_processor == 'Littlepay'
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'test.md',
title: `Transit provider fully configured and in Cal-ITP Benefits \`test\` environment`
});
- name: Production environment configuration issue
id: production
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'production.md',
title: `Transit provider fully configured and active in Cal-ITP Benefits \`production\` environment`
});
- name: In-Person Enrollment configuration issue
id: in-person
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'in-person.md',
title: `Transit provider is configured for In-Person Enrollments in Benefits Administrator`
});
- name: Metabase configuration issue
id: metabase-config
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'metabase-config.md',
title: `Add product names to transaction charts in Metabase`
});
- name: Amplitude enrollment issue
id: amplitude-enrollment
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'amplitude.md',
title: `Amplitude displays one or more successful enrollments for this transit provider`
});
- name: Metabase metrics issue
id: metabase-metrics
uses: actions/github-script@v9
with:
script: |
const { createSubIssue } = await import(process.env.helpers_script);
await createSubIssue({
github, context, core,
parentNodeId: "${{ steps.parent.outputs.node_id }}",
templateName: 'metabase-metrics.md',
title: `Metabase metrics display activity for this transit provider`
});