diff --git a/.github/workflows/full-seeding-of-lpb.yaml b/.github/workflows/full-seeding-of-lpb.yaml index ad795de1..7b266cc5 100644 --- a/.github/workflows/full-seeding-of-lpb.yaml +++ b/.github/workflows/full-seeding-of-lpb.yaml @@ -3,7 +3,7 @@ on: workflow_dispatch: inputs: environment: - description: 'What environment are you seeding?' + description: "What environment are you seeding?" required: true type: environment @@ -29,7 +29,7 @@ jobs: send_content_to_development: name: Send content to development Lighthouse Platform Backend (LPB) needs: [gather_content] - environment: + environment: name: development url: https://dev-developer.va.gov runs-on: ubuntu-latest @@ -44,12 +44,11 @@ jobs: - id: get_bearer_token name: Get Bearer Token env: - LPB_HOST: 'dev-api.va.gov' + LPB_HOST: "dev-api.va.gov" LPB_CLIENT_ID: ${{ secrets.LPB_CLIENT_ID }} LPB_RSA_TOKEN: ${{ secrets.LPB_RSA_SECRET }} - OKTA_TOKEN_AUD: 'https://deptva-eval.okta.com/oauth2/ausg95zxf6dFPccy02p7/v1/token' - run: - echo "$LPB_RSA_TOKEN" > ./rsa.pem; + OKTA_TOKEN_AUD: "https://deptva-eval.okta.com/oauth2/ausg95zxf6dFPccy02p7/v1/token" + run: echo "$LPB_RSA_TOKEN" > ./rsa.pem; ls -la; wc -l ./rsa.pem; node ./get-bearer-token.js $LPB_CLIENT_ID ./rsa.pem $LPB_HOST $OKTA_TOKEN_AUD; @@ -62,27 +61,69 @@ jobs: name: seed-files - name: Seed content to development env: - LPB_HOST: 'dev-api.va.gov' + LPB_HOST: "dev-api.va.gov" BEARER_TOKEN: ${{ steps.get_bearer_token.outputs.bearer_token }} run: + for n in `cat seed-files.txt | grep content/ | grep -v 'content/website/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; + CONTENT_STRING=`cat $n | base64 -w 0`; + TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer $BEARER_TOKEN" + --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; + sleep 1; + done; + for n in `cat seed-files.txt | grep 'content/website/news/articles/\|content/website/news/digital-media/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + SOURCE_STRING=`cat $n | 's/^.*source:\s*//'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"source\":\"$SOURCE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; + for n in `cat changed-files.txt | grep content/website/news/releases`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; for n in `cat seed-files.txt | grep content/`; do - echo "Posting $n to LPB"; - DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; - CONTENT_STRING=`cat $n | base64 -w 0`; - TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; - echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; - curl - --request POST - --header 'Content-Type:application/json' - --header "Authorization:Bearer $BEARER_TOKEN" - --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" - https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; - sleep 1; + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; + CONTENT_STRING=`cat $n | base64 -w 0`; + TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer $BEARER_TOKEN" + --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; + sleep 1; done; send_content_to_production: name: Send content to production Lighthouse Platform Backend (LPB) needs: [gather_content] - environment: + environment: name: production url: https://developer.va.gov runs-on: ubuntu-latest @@ -97,12 +138,11 @@ jobs: - id: get_bearer_token name: Get Bearer Token env: - LPB_HOST: 'api.va.gov' + LPB_HOST: "api.va.gov" LPB_CLIENT_ID: ${{ secrets.LPB_CLIENT_ID }} LPB_RSA_TOKEN: ${{ secrets.LPB_RSA_SECRET }} - OKTA_TOKEN_AUD: 'https://va.okta.com/oauth2/ausdppulkgBFJDZZe297/v1/token' - run: - echo "$LPB_RSA_TOKEN" > ./rsa.pem; + OKTA_TOKEN_AUD: "https://va.okta.com/oauth2/ausdppulkgBFJDZZe297/v1/token" + run: echo "$LPB_RSA_TOKEN" > ./rsa.pem; ls -la; wc -l ./rsa.pem; node ./get-bearer-token.js $LPB_CLIENT_ID ./rsa.pem $LPB_HOST $OKTA_TOKEN_AUD; @@ -115,20 +155,63 @@ jobs: name: seed-files - name: Seed content to production env: - LPB_HOST: 'api.va.gov' + LPB_HOST: "api.va.gov" BEARER_TOKEN: ${{ steps.get_bearer_token.outputs.bearer_token }} run: + for n in `cat seed-files.txt | grep content/ | grep -v 'content/website/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; + CONTENT_STRING=`cat $n | base64 -w 0`; + TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer $BEARER_TOKEN" + --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; + sleep 1; + done; + for n in `cat seed-files.txt | grep 'content/website/news/articles/\|content/website/news/digital-media/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + SOURCE_STRING=`cat $n | 's/^.*source:\s*//'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"source\":\"$SOURCE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; + for n in `cat changed-files.txt | grep content/website/news/releases`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; for n in `cat seed-files.txt | grep content/`; do - echo "Posting $n to LPB"; - DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; - CONTENT_STRING=`cat $n | base64 -w 0`; - TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; - echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; - curl - --request POST - --header 'Content-Type:application/json' - --header "Authorization:Bearer $BEARER_TOKEN" - --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" - https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; - sleep 1; + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; + CONTENT_STRING=`cat $n | base64 -w 0`; + TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer $BEARER_TOKEN" + --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; + sleep 1; done; diff --git a/.github/workflows/send-to-lpb.yaml b/.github/workflows/send-to-lpb.yaml index 8010c3ce..8906a5ef 100644 --- a/.github/workflows/send-to-lpb.yaml +++ b/.github/workflows/send-to-lpb.yaml @@ -1,4 +1,4 @@ -name: Post content to Lighthouse Platform Backend (LPB) +name: Post release notes and news to Lighthouse Platform Backend (LPB) on: pull_request: types: @@ -55,7 +55,7 @@ jobs: send_content_to_development: name: Send content to development LPB needs: [gather_content] - environment: + environment: name: development url: https://dev-developer.va.gov runs-on: ubuntu-latest @@ -71,12 +71,11 @@ jobs: if: github.actor != 'dependabot[bot]' name: Get Bearer Token env: - LPB_HOST: 'dev-api.va.gov' + LPB_HOST: "dev-api.va.gov" LPB_CLIENT_ID: ${{ secrets.LPB_CLIENT_ID }} LPB_RSA_TOKEN: ${{ secrets.LPB_RSA_SECRET }} - OKTA_TOKEN_AUD: 'https://deptva-eval.okta.com/oauth2/ausg95zxf6dFPccy02p7/v1/token' - run: - echo "$LPB_RSA_TOKEN" > ./rsa.pem; + OKTA_TOKEN_AUD: "https://deptva-eval.okta.com/oauth2/ausg95zxf6dFPccy02p7/v1/token" + run: echo "$LPB_RSA_TOKEN" > ./rsa.pem; ls -la; wc -l ./rsa.pem; node ./get-bearer-token.js $LPB_CLIENT_ID ./rsa.pem $LPB_HOST $OKTA_TOKEN_AUD; @@ -90,8 +89,50 @@ jobs: - name: Send content to development if: github.actor != 'dependabot[bot]' env: - LPB_HOST: 'dev-api.va.gov' + LPB_HOST: "dev-api.va.gov" run: + for n in `cat changed-files.txt | grep content/ | grep -v 'content/website/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; + CONTENT_STRING=`cat $n | base64 -w 0`; + TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; + done; + for n in `cat changed-files.txt | grep 'content/website/news/articles/\|content/website/news/digital-media/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + SOURCE_STRING=`cat $n | 's/^.*source:\s*//'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"source\":\"$SOURCE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; + for n in `cat changed-files.txt | grep content/website/news/releases`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; for n in `cat changed-files.txt | grep content/`; do echo "Posting $n to LPB"; DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; @@ -132,7 +173,7 @@ jobs: send_content_to_production: name: Send content to production LPB needs: [gather_content] - environment: + environment: name: production url: https://developer.va.gov runs-on: ubuntu-latest @@ -148,12 +189,11 @@ jobs: if: github.actor != 'dependabot[bot]' name: Get Bearer Token env: - LPB_HOST: 'api.va.gov' + LPB_HOST: "api.va.gov" LPB_CLIENT_ID: ${{ secrets.LPB_CLIENT_ID }} LPB_RSA_TOKEN: ${{ secrets.LPB_RSA_SECRET }} - OKTA_TOKEN_AUD: 'https://va.okta.com/oauth2/ausdppulkgBFJDZZe297/v1/token' - run: - echo "$LPB_RSA_TOKEN" > ./rsa.pem; + OKTA_TOKEN_AUD: "https://va.okta.com/oauth2/ausdppulkgBFJDZZe297/v1/token" + run: echo "$LPB_RSA_TOKEN" > ./rsa.pem; ls -la; wc -l ./rsa.pem; node ./get-bearer-token.js $LPB_CLIENT_ID ./rsa.pem $LPB_HOST $OKTA_TOKEN_AUD; @@ -166,6 +206,50 @@ jobs: name: changed-files - name: Send content to production env: + LPB_HOST: "api.va.gov" + run: + for n in `cat changed-files.txt | grep content/ | grep -v 'content/website/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed 's/[\/\.a-z\-]//g' | sed -E 's/([0-9]{4})([0-9]{2})([0-9]{2})/\1-\2-\3/'`; + CONTENT_STRING=`cat $n | base64 -w 0`; + TARGET_API=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/release-notes.*/\1/'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"content\":\"base64:$CONTENT_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/providers/$TARGET_API/release-notes; + done; + for n in `cat changed-files.txt | grep 'content/website/news/articles/\|content/website/news/digital-media/'`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + SOURCE_STRING=`cat $n | 's/^.*source:\s*//'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"source\":\"$SOURCE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; + for n in `cat changed-files.txt | grep content/website/news/releases`; do + echo "Posting $n to LPB"; + DATE_STRING=`echo $n | sed -E 's/([A-Za-z]+)-([0-9]{4}).*/\1 \2/'`; + TITLE_STRING=`cat $n | 's/^.*title:\s*//'`; + TARGET_NEWS_CATEGORY=`echo $n | sed -E 's/.*\/([a-z\-]{1,})\/.*/\1/' | sed 's/^./\U&/;s/-/ /g'`; + URL_STRING=`cat $n | 's/^.*url:\s*//'`; + echo "Target URL https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items"; + curl + --request POST + --header 'Content-Type:application/json' + --header "Authorization:Bearer ${{ env.bearer_token }}" + --data "{\"date\":\"$DATE_STRING\",\"title\":\"$TITLE_STRING\",\"url\":\"$URL_STRING\"}" + https://$LPB_HOST/internal/platform-backend/v0/news/categories/$TARGET_NEWS_CATEGORY/items; + done; LPB_HOST: 'api.va.gov' if: github.actor != 'dependabot[bot]' run: @@ -192,4 +276,4 @@ jobs: owner: context.repo.owner, repo: context.repo.repo, body: 'These changes have been pushed to [production](https://developer.va.gov/).' - }) \ No newline at end of file + })