<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: rdlucas2</title>
    <description>The latest articles on Forem by rdlucas2 (@rdlucas2).</description>
    <link>https://forem.com/rdlucas2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F452862%2F75dd1614-126b-4af6-b427-128ecfcd8001.jpeg</url>
      <title>Forem: rdlucas2</title>
      <link>https://forem.com/rdlucas2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/rdlucas2"/>
    <language>en</language>
    <item>
      <title>Bob Ross blesses your Repo With Happy Little Accidents</title>
      <dc:creator>rdlucas2</dc:creator>
      <pubDate>Fri, 18 Sep 2020 04:25:12 +0000</pubDate>
      <link>https://forem.com/rdlucas2/bob-ross-blesses-your-repo-with-happy-little-accidents-58ci</link>
      <guid>https://forem.com/rdlucas2/bob-ross-blesses-your-repo-with-happy-little-accidents-58ci</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;The action is named "happy-little-action". This workflow is for anyone who wants to feel the joy of painting in their repository. Bob Ross's gentle spirit will add a happy little accident (a text file containing some of his words of wisdom or a PNG of one of his paintings) to your repository after each commit or pull request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zGoXSufs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/45zrtxd8thf9uj3545wc.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zGoXSufs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/45zrtxd8thf9uj3545wc.PNG" alt="screenshot of repository with happy accident files added"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S5mVEank--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xsav5l7gotn3xujjusq1.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S5mVEank--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xsav5l7gotn3xujjusq1.PNG" alt="screenshot of painting file added"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1nPNFJWt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m83ucgfawjk82dq9k4jz.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1nPNFJWt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/m83ucgfawjk82dq9k4jz.PNG" alt="screenshot of text file added"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Wacky Wildcards&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/rdlucas2"&gt;
        rdlucas2
      &lt;/a&gt; / &lt;a href="https://github.com/rdlucas2/happy-little-action"&gt;
        happy-little-action
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Happy little accidents appear in your github repository
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
happy-little-action&lt;/h1&gt;
&lt;p&gt;Happy little accidents appear in your github repository&lt;/p&gt;
&lt;h2&gt;
Inputs&lt;/h2&gt;
&lt;h3&gt;
&lt;code&gt;github-token&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Your Github Token used to auth to github rest api, set to: &lt;code&gt;"${{ secrets.GITHUB_TOKEN }}"&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;
Example usage&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;uses: rdlucas2/happy-little-action@v0.0.13
    with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/rdlucas2/happy-little-action"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;&lt;a href="https://github.com/rdlucas2/reimagined-octo-umbrella/blob/master/.github/workflows/happyaccident.yml"&gt;**&lt;strong&gt;&lt;em&gt;Example Yaml Workflow File&lt;/em&gt;&lt;/strong&gt;**&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;This is the last of my entries to the actionsHackathon submissions! I found some of the resources from existing github repositories, that saved me a lot of time not having to gather the quotes and images. I learned a little using octokit for the first time which was nice too. Thanks for sticking around and happy coding!&lt;/p&gt;

&lt;p&gt;Link to where I found the &lt;a href="https://github.com/mndvns/bobross-api/blob/master/quotes.js"&gt;Quotes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Link to where I found the &lt;a href="https://github.com/jwilber/Bob_Ross_Paintings/tree/master/data/paintings"&gt;Paintings&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;My other actionsHackathon submissions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/rdlucas2/let-me-google-that-issue-for-you-3jl4"&gt;Let me google that issue for you&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/rdlucas2/register-azure-iot-edge-device-on-existing-hub-22ne"&gt;Register Azure IoT Edge Device on Existing Hub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/rdlucas2/tell-alexa-to-trigger-your-deployment-2im2"&gt;Tell Alexa to Trigger Your Deployment&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/rdlucas2/alexa-notifies-you-when-someone-stars-your-repository-3nf4"&gt;Alexa Notifies You When Someone Stars Your Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>actionshackathon</category>
      <category>github</category>
    </item>
    <item>
      <title>Let me google that (issue) for you</title>
      <dc:creator>rdlucas2</dc:creator>
      <pubDate>Mon, 14 Sep 2020 05:02:52 +0000</pubDate>
      <link>https://forem.com/rdlucas2/let-me-google-that-issue-for-you-3jl4</link>
      <guid>https://forem.com/rdlucas2/let-me-google-that-issue-for-you-3jl4</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;This is the &lt;code&gt;"lmgtfy-action"&lt;/code&gt;... on issue creation, the action will trigger and automatically take the issue creator's issue title or body content and use it to create a let me google that for you short url as a reply to the issue. This is just a wacky wildcard, as it's bad open source etiquette to snarkily reply to users with a let me google that for you link! Hopefully it will be unlikely that you're getting poor quality comments that the answer can be googled for as well. This might have been better as a Rick Roll even, as a search on the issue will likely turn up irrelevant results in most cases. I was mostly using this as a learning opportunity to experiment with JavaScript github actions!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rmPhX4Ku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/oj7fynpzmgn7pken06z2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rmPhX4Ku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/oj7fynpzmgn7pken06z2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Te86fea--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/62lucok0tac479tgd44q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Te86fea--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/62lucok0tac479tgd44q.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This isn't being used by anything yet, it was solely created as an actionsHackathon submission.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Wacky Wildcards&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/rdlucas2/lmgtfy-action/blob/master/.github/workflows/autoRespond.yml"&gt;**&lt;strong&gt;&lt;em&gt;Yaml workflow file&lt;/em&gt;&lt;/strong&gt;**&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/rdlucas2"&gt;
        rdlucas2
      &lt;/a&gt; / &lt;a href="https://github.com/rdlucas2/lmgtfy-action"&gt;
        lmgtfy-action
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Let me google that for you action&lt;/h1&gt;
&lt;p&gt;Add this action to your repository to auto reply to issues with a let me google that for you link.&lt;/p&gt;
&lt;h2&gt;
Inputs&lt;/h2&gt;
&lt;h3&gt;
&lt;code&gt;github-token&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Your Github Token used to auth to github rest api, set to: &lt;code&gt;"${{ secrets.GITHUB_TOKEN }}"&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;
&lt;code&gt;field-to-query&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Use the title or body of the issue to search for. Default: &lt;code&gt;"title"&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
Example usage&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;uses: rdlucas2/lmgtfy-action@v0.0.7
    with:
        github-token: ${{ secrets.GITHUB_TOKEN }}
        field-to-query: 'body'
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/rdlucas2/lmgtfy-action"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;Nothing too special about this one. I used chrome dev tools to inspect the network tab while on the "let me google that for you" site when I clicked the button to produce the short url. I copied the relevant info to postman to play with the call, then went about learning how to setup the JavaScript action. Once I did a test run to see what the payload returned, it was pretty easy to plug in the relevant info to make the necessary REST calls to the lmgtfy API and the GitHub API to create a response to the issue. I learned about a tool that was new to me... &lt;a href="https://github.com/vercel/ncc"&gt;ncc&lt;/a&gt;, which was a nice find that I may use in future projects.&lt;/p&gt;

&lt;p&gt;Thanks for sticking around and happy coding!&lt;/p&gt;

</description>
      <category>actionshackathon</category>
    </item>
    <item>
      <title>Register Azure IoT Edge Device on Existing Hub</title>
      <dc:creator>rdlucas2</dc:creator>
      <pubDate>Mon, 07 Sep 2020 20:00:04 +0000</pubDate>
      <link>https://forem.com/rdlucas2/register-azure-iot-edge-device-on-existing-hub-22ne</link>
      <guid>https://forem.com/rdlucas2/register-azure-iot-edge-device-on-existing-hub-22ne</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;This workflow is designed to register a new Azure IoT Edge Device on an existing Azure IoT Hub. I made my own custom docker action to handle setting up the azure cli, and read from a file in your repository which is a list of device names you'd like registered on your hub. Once the devices are registered on the hub, you can get their connection strings, and use the hub to deploy code to them as well. See the additional info section for more on that later in this article.&lt;/p&gt;

&lt;p&gt;This isn't being used by anything yet, it is just a proof of concept for the actionsHackathon submission.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;on: [workflow_dispatch]

jobs:
  register_iot_job:
    runs-on: ubuntu-latest
    name: A job to register an IoT Edge Device on Azure IoT Hub
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Register step
      id: register
      uses: rdlucas2/actionsHackathonSubmissions@v0.0.9
      with:
        azure-sp-client-id: '${{ secrets.AZ_SP_CLIENTID }}'
        azure-sp-password: '${{ secrets.AZ_SP_PASSWORD }}'
        azure-tenant-id: '${{ secrets.AZ_TENANT }}'
        azure-iot-hub-name: '${{ secrets.AZ_IOT_HUB_NAME }}'
        device-list-file-path: '/github/workspace/devices/list.txt'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I added secrets for my azure account information, although it wasn't necessary for some of them to be secret. The last item on the list, "device-list-file-path", is just a text file with each line containing the name of a device you'd like registered on the hub - which is why the checkout step is necessary. It is important to note that when you use a docker action, it will automatically pull in /github/workspace as a volume in the container.&lt;/p&gt;

&lt;p&gt;On a successful run the devices should appear in your IoT Hub. Note that if a device was already registered, it will show an error message, but it should continue to register other devices and won't overwrite any existing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V6jWwAXa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mfysrlsnqtd0igdy46f5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V6jWwAXa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mfysrlsnqtd0igdy46f5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Interesting IoT&lt;/p&gt;
&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/rdlucas2/actionsHackathonSubmissions/blob/master/.github/workflows/mycustomaction.yml"&gt;**&lt;strong&gt;&lt;em&gt;Yaml file&lt;/em&gt;&lt;/strong&gt;**&lt;/a&gt; &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/rdlucas2"&gt;
        rdlucas2
      &lt;/a&gt; / &lt;a href="https://github.com/rdlucas2/actionsHackathonSubmissions"&gt;
        actionsHackathonSubmissions
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      playing around with actions
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Register Azure IoT Edge Device&lt;/h1&gt;
&lt;p&gt;This action Registers a new IoT Edge Device on a given Azure IoT Hub.&lt;/p&gt;
&lt;h2&gt;
Inputs&lt;/h2&gt;
&lt;h3&gt;
&lt;code&gt;azure-sp-client-id&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Azure Service Principal Client ID.&lt;/p&gt;
&lt;h3&gt;
&lt;code&gt;azure-sp-password&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Azure Service Principal Password.&lt;/p&gt;
&lt;h3&gt;
&lt;code&gt;azure-tenant-id&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Azure Tenant ID.&lt;/p&gt;
&lt;h3&gt;
&lt;code&gt;azure-iot-hub-name&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Azure IoT Hub Name.&lt;/p&gt;
&lt;h3&gt;
&lt;code&gt;device-list-file-path&lt;/code&gt;
&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt; Device List File Path.&lt;/p&gt;
&lt;h2&gt;
Outputs&lt;/h2&gt;
&lt;p&gt;None&lt;/p&gt;
&lt;h2&gt;
Example usage&lt;/h2&gt;
&lt;p&gt;uses: rdlucas2/actionsHackathonSubmissions@v0.0.1&lt;/p&gt;
&lt;p&gt;with:
azure-sp-client-id: '${{ secrets.AZ_SP_CLIENTID }}'
azure-sp-password: '${{ secrets.AZ_SP_PASSWORD }}'
azure-tenant-id: '${{ secrets.AZ_TENANT }}'
azure-iot-hub-name: 'MyExistingHubName'
device-list-file-path: '/devices/list.txt'&lt;/p&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/rdlucas2/actionsHackathonSubmissions"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/rdlucas2/actionsHackathonSubmissions/blob/master/.github/workflows/mycustomaction.yml"&gt;**&lt;strong&gt;&lt;em&gt;Yaml file&lt;/em&gt;&lt;/strong&gt;**&lt;/a&gt; &lt;br&gt;
For this one, I created my own custom action, but then used the checkout action and my custom action in concert to read device names from a file in the repo, and register them on the Azure IoT Hub. I did not register this action on the marketplace yet, but have created some pre-release candidates of it. I'd move it into it's own repository instead of utilizing my actions hackathon repo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;Used the tutorial here for some of the setup: &lt;a href="https://docs.microsoft.com/en-us/azure/iot-edge/quickstart-linux"&gt;IoT Edge Linux Quickstart&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you examine the code I wrote, you'll see I followed the IoT Edge Device tutorial linked above, and used ARM to deploy an azure vm with the IoT runtime on it, using the newly registered device's connection string to it. I then went into the portal and deployed the "simulated temperature sensor" marketplace code to this device through the portal page on the hub. I think this workflow could be built out to manage devices on an azure IoT hub. In addition to adding new devices, you could build out actions like deleting devices, deploying code to devices, and perhaps even collecting telemetry from devices. This was mostly a learning opportunity for myself. I had made a few other entries utilizing actions created by other individuals, and this one I wanted to explore custom docker actions.&lt;/p&gt;

&lt;p&gt;I'm determining the proper workflow for this, as it might make sense to combine this in some way with a deployment action, where when you connect a new device, it can reach out to a repository to register itself on the hub, then update the hub connection string, deploy some code to the device with that updated connection string, then go about collecting telemetry from the device. I certainly learned a lot about how actions behave from this experience. Here are some links to my other submissions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/rdlucas2/tell-alexa-to-trigger-your-deployment-2im2"&gt;Tell Alexa to trigger your deployment&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/rdlucas2/alexa-notifies-you-when-someone-stars-your-repository-3nf4"&gt;Alexa notifies you when someone stars your repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>actionshackathon</category>
      <category>showdev</category>
      <category>azure</category>
      <category>github</category>
    </item>
    <item>
      <title>Tell Alexa to trigger your deployment</title>
      <dc:creator>rdlucas2</dc:creator>
      <pubDate>Wed, 19 Aug 2020 03:10:27 +0000</pubDate>
      <link>https://forem.com/rdlucas2/tell-alexa-to-trigger-your-deployment-2im2</link>
      <guid>https://forem.com/rdlucas2/tell-alexa-to-trigger-your-deployment-2im2</guid>
      <description>&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mtr-saW7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1295919808446423051/pu/img/AkZLQNOQeW7rNCfM.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xfm6abIW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/2614436804/xihbq2ts19corvs6y4wb_normal.jpeg" alt="Ryan profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Ryan
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/rdlucas2"&gt;@rdlucas2&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Alexa, trigger my deployment. My second submission to the &lt;a href="https://twitter.com/hashtag/actionsHackathon"&gt;#actionsHackathon&lt;/a&gt; for &lt;a href="https://twitter.com/ThePracticalDev"&gt;@ThePracticalDev&lt;/a&gt;. Run your &lt;a href="https://twitter.com/github"&gt;@github&lt;/a&gt; action with &lt;a href="https://twitter.com/alexa99"&gt;@alexa99&lt;/a&gt; voice command. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      03:05 AM - 19 Aug 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1295919875760762881" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1295919875760762881" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1295919875760762881" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;The "on voice" workflow uses the workflow_dispatch event to trigger the github action via the github rest api. This action is just a proof of concept for allowing you to interact with your repo by voice, and is not used anywhere except the repo I've created for this actionsHackathon submissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Interesting IoT&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/rdlucas2/actionsHackathonSubmissions/blob/master/.github/workflows/onvoice.yml"&gt;onvoice.yml&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;The code used in the action is really nothing special. I've left it as the "default" action template but just changed the event trigger to "workflow_dispatch". This allows me to call the rest api targeted at the "onvoice.yml" file, which in turn would kick off any deployment defined within. The idea here is that you could tell alexa to trigger {your project name} deployment, and have it kickoff this process.&lt;/p&gt;

&lt;p&gt;To set this up, you'll need an &lt;a href="https://ifttt.com"&gt;IFTTT&lt;/a&gt; account, and add the Alexa service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iZf-3XSt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h04ivxx63zg4ujoy93g0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iZf-3XSt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h04ivxx63zg4ujoy93g0.png" alt="Alt Text" width="880" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you connect the Alexa service, setup a new trigger for "say a specific phrase".&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BUEGAPfB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uxmhopn4afftlj1fk0m4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BUEGAPfB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uxmhopn4afftlj1fk0m4.png" alt="Alt Text" width="880" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill out the form with something like "my deployment" - when you interact with alexa you'll say "Alexa, trigger my deployment"&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5CW6YN7b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uqxyb97s6a99i5wywp5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5CW6YN7b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/uqxyb97s6a99i5wywp5y.png" alt="Alt Text" width="525" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, for the action - search for "webhook" and set the action as "make a web request"&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0uI53nsn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6yzevosx4q2qp8y48g3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0uI53nsn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6yzevosx4q2qp8y48g3o.png" alt="Alt Text" width="538" height="745"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where things got a little funky. I could not get this web request action to properly authenticate to the github rest api. I tried doing basic auth in the url with &lt;a href="https://user:pat@api.github.com"&gt;https://user:pat@api.github.com&lt;/a&gt;... which works with curl but not via ifttt. Unfortunately the ifttt interface doesn't give you a lot of options for customizing your http request, so I ended up setting up an azure function to bypass this problem. My webhook instead calls the function app URL, which in turn calls the workflow dispatch. The curl for the call looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/{USER}/{REPOSITORY}/actions/workflows/{WORKFLOW_ID_OR_YML_FILE_NAME}/dispatches \
  -d '{"ref":"{BRANCH_NAME}"}' \
  -u {USER}:{PAT}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anything surrounded with curly braces {} would be specific to your account/repository. Learn how to make a Personal Access Token (PAT) here: &lt;a href="https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token"&gt;Create a PAT&lt;/a&gt;. You can read up on the workflow_dispatch event here: &lt;a href="https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch"&gt;Workflow Dispatch Trigger Event&lt;/a&gt; and the github rest api for calling the workflow dispatch event here: &lt;a href="https://docs.github.com/en/rest/reference/actions#create-a-workflow-dispatch-event"&gt;Workflow Dispatch Rest Api Call&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>actionshackathon</category>
      <category>iot</category>
      <category>alexa</category>
      <category>github</category>
    </item>
    <item>
      <title>Alexa notifies you when someone stars your repository</title>
      <dc:creator>rdlucas2</dc:creator>
      <pubDate>Sat, 15 Aug 2020 03:32:30 +0000</pubDate>
      <link>https://forem.com/rdlucas2/alexa-notifies-you-when-someone-stars-your-repository-3nf4</link>
      <guid>https://forem.com/rdlucas2/alexa-notifies-you-when-someone-stars-your-repository-3nf4</guid>
      <description>&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rAaDZ6am--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1294482691270860800/pu/img/KbDoz7sUKwbVS87J.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--xfm6abIW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/2614436804/xihbq2ts19corvs6y4wb_normal.jpeg" alt="Ryan profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Ryan
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        &lt;a class="mentioned-user" href="https://dev.to/rdlucas2"&gt;@rdlucas2&lt;/a&gt;
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      &lt;a href="https://twitter.com/ThePracticalDev"&gt;@ThePracticalDev&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/actionshackathon"&gt;#actionshackathon&lt;/a&gt; my submission, get a notification on your Alexa when someone stars your repo. &lt;a href="https://t.co/8hO9pFkywP"&gt;dev.to/rdlucas2/alexa…&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      03:55 AM - 15 Aug 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1294482773181423616" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1294482773181423616" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1294482773181423616" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;The workflow is a silly one, for vain individuals who want to know when people are starring their code on github! This isn't a published marketplace action, just something spun up in a workflow, so there's no official name... I'll just go with the name of: &lt;a href="https://github.com/rdlucas2/actionsHackathonSubmissions/blob/master/.github/workflows/starred.yml"&gt;On Repository Starred - get a notification on your Alexa device(s)&lt;/a&gt;. This isn't being used anywhere except for the repository I created for submissions to this hackathon.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Interesting IoT&lt;/p&gt;

&lt;h3&gt;
  
  
  Yaml File or Link to Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/rdlucas2/actionsHackathonSubmissions/blob/master/.github/workflows/starred.yml"&gt;Action YAML file&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;All this required was an http request, so used an &lt;a href="https://github.com/Satak/webrequest-action"&gt;existing action&lt;/a&gt; to accomplish this. On the Alexa side, what's required is adding the skill &lt;a href="https://www.thomptronics.com/about/notify-me"&gt;Notify Me&lt;/a&gt;. With the skill added, all you have to do is say "Alexa, open notify me" - and the app will send you an email with the secret required to get this running. Add the secret to your github secrets, and craft a custom message in the json body to get your notification. The message I've made in the code says who starred which repository (yes, you could add this to multipe repos). Your Alexa device will only make a sound when a notification is received, you have to ask to read or hear your notifications to actually listen to the response. &lt;/p&gt;

&lt;p&gt;This is kind of a silly example - if your repository becomes popular and you're getting a lot of stars you probably don't want to hear that many notifications! Others have already made an &lt;a href="https://ifttt.com"&gt;IFTTT&lt;/a&gt; action, which could be used to kickoff processes for any of your other smart devices with relatively little hassle... think, you could flash your hue lights red when an issue is created, or maybe play the final fantasy victory song when a milestone gets completed.&lt;/p&gt;

&lt;p&gt;Happy coding :-)&lt;/p&gt;

</description>
      <category>actionshackathon</category>
      <category>alexa</category>
      <category>iot</category>
      <category>github</category>
    </item>
  </channel>
</rss>
