Agency Onboarding Issue Scaffold #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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@v6 | |
| - name: Parent issue | |
| id: parent | |
| uses: actions/github-script@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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@v8 | |
| 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` | |
| }); |