{"id":19110539,"url":"https://github.com/bulkgate/github-actions","last_synced_at":"2026-05-31T15:30:18.246Z","repository":{"id":92743395,"uuid":"431021118","full_name":"BulkGate/github-actions","owner":"BulkGate","description":null,"archived":false,"fork":false,"pushed_at":"2021-12-10T12:13:37.000Z","size":6190,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-03T04:17:46.476Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BulkGate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-11-23T08:35:30.000Z","updated_at":"2021-12-10T12:13:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"aeb8142a-3cc8-4cca-ad24-bd679d60b58c","html_url":"https://github.com/BulkGate/github-actions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BulkGate%2Fgithub-actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BulkGate%2Fgithub-actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BulkGate%2Fgithub-actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BulkGate%2Fgithub-actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BulkGate","download_url":"https://codeload.github.com/BulkGate/github-actions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240164610,"owners_count":19758201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-09T04:25:21.732Z","updated_at":"2026-05-31T15:30:18.184Z","avatar_url":"https://github.com/BulkGate.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BulkGate Github SMS actions\n\nSend SMS via Github actions\n\n## Setup\n\n- Go to your repository settings. Click secrets and set your application_id and application_token as secrets.\n\n- Set inputs in your workflow based on one of these uses cases.\n\n## SMS notification workflow\n\nWorkflow allowing to connect github event as push, pull request and many others to BulkGate API\n\n\n\n```\njobs:\n  notification:\n    runs-on: ubuntu-latest\n    name: Send SMS after push\n    environment: bulkgate_api\n    steps:\n      - name: Send SMS after push\n        uses: BulkGate/github-actions@master\n        id: SendSMS\n        with:\n          application_id: ${{ secrets.application_id }}\n          application_token: ${{ secrets.application_token }}\n          number: \"420777777777\"\n          text: \"test\"\n          sender_id: \"gText\"\n          sender_id_value: \"Github test\"\n\n      - name: Get http response\n        run: echo \"Response is ${{ steps.SendSMS.outputs.response }}\"\n```\n\n\n## Inputs\n\n| PARAMETER NAME | VALUE | MANDATORY | DEFAULT VALUE |\n|:--- |:--- |:--- |:--- |\n|application_id| [Application ID](https://help.bulkgate.com/docs/en/api-administration.html#what-is-application-id) |**Yes**|-| \n|application_token| [Application token](https://help.bulkgate.com/docs/en/api-tokens.html#what-is-an-api-token)\t|**Yes**|-|\n|number| Recipient number\t|**Yes** or `admin`|-|\n|admin| Number of BulkGate administrator receiving notification. [More info](https://help.bulkgate.com/docs/en/http-advanced-transactional-admin.html) |**Yes** or `number`|-|\n|text| Text of the SMS message (max. 612 characters, or 268 characters, if Unicode is activated), UTF-8 encoding. It is possible to add variables to the template from the `variables` array (another parameter) `Hello \u003cfirst_name\u003e \u003clast_name\u003e ....`\t|**Yes**|-|\n|variables| Associative array to add variables to text, for e.g.: `{\"first_name\": \"John\", \"last_name\": \"Doe\"}`| No | `[]` |\n|unicode\t|`Yes`/`true`/`1` for Unicode SMS, `no`/`false`/`0` for 7bit SMS|No|`false`|\n|sender_id| Sender ID, see [Sender ID type](#sender-id-type-sender_id) | No |`gSystem`|\n|sender_id_value| Sender value `gOwn`, `gText`, `gMobile`, `gProfile` or `gPush` (if `gMobile`, or `gPush` used, please supply `mobile connect key` as `sender_id_value`)| No |`null`|\n|country| Provide recipient numbers in international format (with prefix, for e.g `44`), or add [country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) (`7820125799` + `GB` = `447820125799`). See the example of a country requirement. If the value is **`null,`** your set time zone will be used to fill in the information | No |`null`|\n|schedule| Schedule the sending time and date in [unix timestamp,](https://en.wikipedia.org/wiki/Unix_time) or [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). | No |Now|\n|channel| Alternative channels. If message cannot be send by one channel, channel next in line will be used.\n|duplicates_check| Select **`on`** to prevent sending duplicate messages to the same phone number. Messages with the same text sent to the same number will be removed if there is a time interval shorter than 5 mins. If **`off`** no duplicates will be removed. |No|`off`|\n|tag|Message label for subsequent retrieval of the user.|No|-|\n\n### Sender ID type `sender_id`\n\n| VALUE| MEANING|\n|:--- |:---|\n|`gSystem` |System number| \n|`gShort`|Short Code| \n|`gText` |Text sender| \n|`gMobile`|Mobile Connect - Sends SMS message through Mobile Connect app|\n|`gPush`|Mobile Connect push - Sends a notification to the Mobile Connect app|\n|`gOwn` |Own number (requires number verification)| \n|`gProfile`|[BulkGate Profile ID](https://help.bulkgate.com/docs/en/sender-id-profile.html)|\n| `\u003cint\u003e` |BulkGate Profile ID| \n\n\n## After testing notification workflow\n\nWorkflow consisting of two jobs latter being dependand on the first one. When first job fails as a result of faulty nette test, notification SMS will be send out to specified phone number. Second job wont trigger if first is successful.\n\n```\njobs:\n  package_tested:\n    runs-on: ubuntu-latest\n    steps:\n\n      - uses: actions/checkout@v1\n\n      - name: Install dependencies\n        run: composer install --prefer-dist --no-progress\n\n      - name: Run test suite\n        id: run_tests\n        run: composer run tester\n\n  notification:\n    runs-on: ubuntu-latest\n    name: Send SMS after push\n    environment: bulkgate_api\n    needs: [package_tested]\n    if: always() \u0026\u0026 (needs.package_tested.result == 'failure')\n    steps:\n      - name: Send SMS after push\n        uses: BulkGate/github-actions@master\n        id: SendSMS\n        with:\n          application_id: ${{ secrets.application_id }}\n          application_token: ${{ secrets.application_token }}\n          number: \"420777777777\"\n          text: ${{ github.server_url }}/${{ github.repository }}/actions\n          sender_id: \"gText\"\n          sender_id_value: \"Github test\"\n          channel: '{\n            \"viber\": {\n              \"sender\": \"BulkGate\",\n              \"expiration\": 100,\n              \"text\": \"test\"\n            },\n            \"sms\": {\n              \"sender_id\": \"gText\",\n              \"sender_id_value\": \"Lt-Hagan\",\n              \"unicode\": true,\n              \"flash\": true,\n              \"text\": \"test\"\n            }\n          }'\n\n      - name: Get http response\n        run: echo \"Response is ${{ steps.SendSMS.outputs.response }}\"\n```\n\n## Alternative after testing notification workflow\n\nAlternative workflow consisting of two separate workflow files. After first one is resolved second will send SMS based on the first ones success, or failure.\nSecond workflow will trigger regardless on result of the first workflow, but could send different SMS notification.\n\n### main.yml\n```\nname: Main_Workflow\non: [push]\n\njobs:\n  package_tested:\n    runs-on: ubuntu-latest\n    steps:\n\n      - uses: actions/checkout@v1\n\n      - name: Install dependencies\n        run: composer install --prefer-dist --no-progress\n\n      - name: Run test suite\n        id: run_tests\n        run: composer run tester\n```\n\n### report.yml\n```\nname: Report\non:\n  workflow_run:\n    workflows: [\"Main_Workflow\"]\n    branches: [master]\n    types:\n      - completed\njobs:\n  on-success:\n    runs-on: ubuntu-latest\n    name: Report tests\n    environment: bulkgate_api\n    if: ${{ github.event.workflow_run.conclusion == 'success' }}\n    steps:\n      - name: \"Report success\"\n        uses: BulkGate/github-actions@master\n        with:\n          application_id: ${{ secrets.application_id }}\n          application_token: ${{ secrets.application_token }}\n          number: \"420777777777\"\n          text: \"test\"\n          sender_id: \"gText\"\n          sender_id_value: \"BulkGate tester\"\n          channel: '{\n            \"viber\": {\n              \"sender\": \"BulkGate\",\n              \"expiration\": 100,\n              \"text\": \"test\"\n            },\n            \"sms\": {\n              \"sender_id\": \"gText\",\n              \"sender_id_value\": \"Lt-Hagan\",\n              \"unicode\": true,\n              \"flash\": true,\n              \"text\": \"test\"\n            }\n          }'\n\n      - name: Get http response\n        run: echo \"Response is ${{ steps.SendSMS.outputs.response }}\"\n\n  on-failure:\n    runs-on: ubuntu-latest\n    if: ${{ github.event.workflow_run.conclusion == 'failure' }}\n    steps:\n      - name: \"Report failure\"\n        uses: BulkGate/github-actions@master\n        with:\n          application_id: ${{ secrets.application_id }}\n          application_token: ${{ secrets.application_token }}\n          number: \"420777777777\"\n          text: \"test\"\n          sender_id: \"gText\"\n          sender_id_value: \"BulkGate tester\"\n          channel: '{\n            \"viber\": {\n              \"sender\": \"BulkGate\",\n              \"expiration\": 100,\n              \"text\": \"test\"\n            },\n            \"sms\": {\n              \"sender_id\": \"gText\",\n              \"sender_id_value\": \"Lt-Hagan\",\n              \"unicode\": true,\n              \"flash\": true,\n              \"text\": \"test\"\n            }\n          }'\n\n      - name: Get http response\n        run: echo \"Response is ${{ steps.SendSMS.outputs.response }}\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulkgate%2Fgithub-actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbulkgate%2Fgithub-actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulkgate%2Fgithub-actions/lists"}