{"id":26009970,"url":"https://github.com/byu-oit/github-action-start-standard-change","last_synced_at":"2026-01-21T12:35:00.282Z","repository":{"id":39983582,"uuid":"264535839","full_name":"byu-oit/github-action-start-standard-change","owner":"byu-oit","description":"A GitHub Action for starting standard change RFCs in BYU's ServiceNow system","archived":false,"fork":false,"pushed_at":"2025-07-21T22:50:26.000Z","size":2300,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":18,"default_branch":"staging","last_synced_at":"2025-12-16T08:11:52.274Z","etag":null,"topics":["github-action"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byu-oit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-16T22:04:14.000Z","updated_at":"2024-10-02T17:15:15.000Z","dependencies_parsed_at":"2025-03-05T22:30:02.470Z","dependency_job_id":"d76fdfa8-a4e6-4aa7-8c1b-c264171aa419","html_url":"https://github.com/byu-oit/github-action-start-standard-change","commit_stats":{"total_commits":49,"total_committers":8,"mean_commits":6.125,"dds":"0.34693877551020413","last_synced_commit":"5ea29b2798130f76308c0f8d9841526a1c428f75"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":"actions/javascript-action","purl":"pkg:github/byu-oit/github-action-start-standard-change","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byu-oit%2Fgithub-action-start-standard-change","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byu-oit%2Fgithub-action-start-standard-change/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byu-oit%2Fgithub-action-start-standard-change/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byu-oit%2Fgithub-action-start-standard-change/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byu-oit","download_url":"https://codeload.github.com/byu-oit/github-action-start-standard-change/tar.gz/refs/heads/staging","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byu-oit%2Fgithub-action-start-standard-change/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28632842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-action"],"created_at":"2025-03-05T22:26:42.134Z","updated_at":"2026-01-21T12:35:00.262Z","avatar_url":"https://github.com/byu-oit.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/byu-oit/github-action-start-standard-change/workflows/CI/badge.svg)\n![Test as a step](https://github.com/byu-oit/github-action-start-standard-change/workflows/Test%20as%20a%20step/badge.svg)\n![Test as a job](https://github.com/byu-oit/github-action-start-standard-change/workflows/Test%20as%20a%20job/badge.svg)\n\n# ![BYU logo](https://www.hscripts.com/freeimages/logos/university-logos/byu/byu-logo-clipart-128.gif) github-action-start-standard-change\nA GitHub Action for starting standard change RFCs in BYU's ServiceNow system\n\n## Usage\n\n### Get the inputs\n\n* Get client credentials from Tyk\n   \u003e In the `byu-oit` GitHub organization, we provide the following secrets to every repo:\n   \u003e - `STANDARD_CHANGE_PRODUCTION_CLIENT_KEY`\n   \u003e - `STANDARD_CHANGE_PRODUCTION_CLIENT_SECRET`\n   \u003e - `STANDARD_CHANGE_SANDBOX_CLIENT_KEY`\n   \u003e - `STANDARD_CHANGE_SANDBOX_CLIENT_SECRET`\n* Get the alias or sys_id of your standard change template\n   \u003eExisting templates can be found [here](https://support.byu.edu/nav_to.do?uri=%2Fu_standard_change_template_list.do) in production, or [here](https://support-test.byu.edu/nav_to.do?uri=%2Fu_standard_change_template_list.do) in sandbox\n* Estimate how long a deployment should take, in minutes\n\n### Add to your workflow (making replacements as necessary)\n\n\u003cdetails\u003e\n\u003csummary\u003eIn a workflow where the deploy phase is a step, do this...\u003c/summary\u003e\n\u003cp\u003e\n\n```yaml\non: push\nname: Some Pipeline\njobs:\n  do-all-the-things:\n    runs-on: ubuntu-latest\n    steps:\n      # Build, unit tests, linting, etc.\n      # ...\n      - name: Start Standard Change\n        uses: byu-oit/github-action-start-standard-change@v1\n        id: start-standard-change\n        with:\n          client-key: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_KEY }} # You'll want to use the production secrets in production\n          client-secret: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_SECRET }}\n          template-id: \u003calias or sys_id of standard change template\u003e\n          minutes-until-planned-end: 30 # Optional, defaults to 15\n      # Your actual deployment step would go here\n      - name: Deploy\n        id: deploy\n        run: echo Deploy\n      - name: End Standard Change\n        uses: byu-oit/github-action-end-standard-change@v1\n        if: always() \u0026\u0026 steps.start-standard-change.outcome == 'success' # Run if RFC started, even if the deploy failed\n        with:\n          client-key: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_KEY }}\n          client-secret: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_SECRET }}\n          change-sys-id: ${{ steps.start-standard-change.outputs.change-sys-id }}\n          work-start: ${{ steps.start-standard-change.outputs.work-start }}\n          success: ${{ job.status == 'success' }}\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eIn a workflow where the deploy phase is a job, do this...\u003c/summary\u003e\n\u003cp\u003e\n\nHave a job with an `id` of `deploy` (or change this example accordingly), then\n\n```yaml\non: push\nname: Some Pipeline\njobs:\n  # Build, unit tests, linting, etc.\n  # ...\n\n  start-standard-change:\n    name: Start Standard Change\n    needs: \u003cid of previous job\u003e\n    runs-on: ubuntu-latest\n    steps:\n      - name: Start Standard Change\n        uses: byu-oit/github-action-start-standard-change@v1\n        id: start-standard-change\n        with:\n          client-key: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_KEY }} # You'll want to use the production secrets in production\n          client-secret: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_SECRET }}\n          template-id: \u003calias or sys_id of standard change template\u003e\n          minutes-until-planned-end: 30 # Optional, defaults to 15\n    outputs:\n      change-sys-id: ${{ steps.start-standard-change.outputs.change-sys-id }}\n      work-start: ${{ steps.start-standard-change.outputs.work-start }}\n\n  deploy:\n    name: Deploy\n    needs: start-standard-change\n    runs-on: ubuntu-latest\n    steps:\n      # ...\n\n  end-standard-change:\n    name: End Standard Change\n    needs: [deploy, start-standard-change] # We need to wait on outcome of deploy, and we list start-standard-change so that we can grab its outputs\n    if: always() \u0026\u0026 needs.start-standard-change.result == 'success' # Run if RFC started, even if the deploy failed\n    runs-on: ubuntu-latest\n    steps:\n      - uses: byu-oit/github-action-end-standard-change@v1\n        with:\n          client-key: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_KEY }}\n          client-secret: ${{ secrets.STANDARD_CHANGE_SANDBOX_CLIENT_SECRET }}\n          change-sys-id: ${{ needs.start-standard-change.outputs.change-sys-id }}\n          work-start: ${{ needs.start-standard-change.outputs.work-start }}\n          success: ${{ needs.deploy.result == 'success' }} # Evaluates to 'true' or 'false'\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003eFor performance reasons, we'd recommend a workflow where the deploy phase is a step, but sometimes it needs to be a job\n\n## Contributing\nHopefully this is useful to others at BYU. Feel free to ask me some questions about it, but I make no promises about being able to commit time to support it.\n\n### Modifying Source Code\n\nJust run `npm install` locally. There aren't many files here, so hopefully it should be pretty straightforward.\n\n### Cutting new releases\n\nGitHub Actions will run the entry point from the `action.yml`. In our case, that happens to be `/dist/index.js`.\n\nActions run from GitHub repos. We don't want to check in `node_modules`. Hence, we package the app using `npm run package`.\n\nThen, push to the corresponding branch, respecting SemVer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyu-oit%2Fgithub-action-start-standard-change","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyu-oit%2Fgithub-action-start-standard-change","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyu-oit%2Fgithub-action-start-standard-change/lists"}