From 3428fded7e3a5ecdbeae8e83f533b6425c496ed4 Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Fri, 5 Aug 2022 14:22:33 -0600 Subject: [PATCH 1/7] feat: add workflow to show badges on README --- .github/workflows/workflows.sh | 47 +++++++++++++++++++++++++++++++++ .github/workflows/workflows.yml | 33 +++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100755 .github/workflows/workflows.sh create mode 100644 .github/workflows/workflows.yml diff --git a/.github/workflows/workflows.sh b/.github/workflows/workflows.sh new file mode 100755 index 0000000..9a60f7c --- /dev/null +++ b/.github/workflows/workflows.sh @@ -0,0 +1,47 @@ +#!/bin/bash +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +repos=$(gh repo list googleworkspace \ + --no-archived \ + --visibility public \ + --source \ + --json name --jq '.[] .name' \ + -L 1000 | sort) + +FILE=README.md +ORG=https://github.com/googleworkspace + +# delete all lines starting after matching string +sed -n '/WORKFLOWS_INSERT_AFTER/q;p' <$FILE >$FILE.tmp +mv $FILE.tmp $FILE + +echo "" >>$FILE +echo "Writing to $FILE" + +echo "## Workflows" >>$FILE +echo "" >>$FILE + +echo "| Repository | Test | Lint | Release |" >>$FILE +echo "| --- | --- | --- | --- |" >>$FILE + +badge() { + local repo=$1 + local workflow=$2 + echo "[![](${ORG}/${repo}/actions/workflows/${workflow}.yml/badge.svg?branch=main)](${ORG}/${repo}/actions/workflows/${workflow}.yml)" +} + +for repo in $repos; do + echo "| [${repo}](${ORG}/${repo}) | $(badge ${repo} test) | $(badge ${repo} lint) | $(badge ${repo} release-please) |" >>$FILE +done diff --git a/.github/workflows/workflows.yml b/.github/workflows/workflows.yml new file mode 100644 index 0000000..50c5825 --- /dev/null +++ b/.github/workflows/workflows.yml @@ -0,0 +1,33 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +name: Workflows +on: [ workflow_dispatch] +jobs: + dependabot: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{secrets.GOOGLEWORKSPACE_BOT_TOKEN}} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + # required otherwise GitHub blocks infinite loops in pushes originating in an action + token: ${{ secrets.GOOGLEWORKSPACE_BOT_TOKEN }} + - run: .github/workflows/workflows.sh + - run: | + git checkout -b chore/workflows + git add WORKFLOWS.md + git commit -am 'chore: update workflow status' + gh pr create --fill --head main --base chore/workflows From 317be0dcf2bee2cf90777cd8f4ea9bb6f9483fce Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Fri, 5 Aug 2022 14:24:54 -0600 Subject: [PATCH 2/7] debug: workflow run via push --- .github/workflows/workflows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflows.yml b/.github/workflows/workflows.yml index 50c5825..0475368 100644 --- a/.github/workflows/workflows.yml +++ b/.github/workflows/workflows.yml @@ -13,7 +13,7 @@ # limitations under the License. --- name: Workflows -on: [ workflow_dispatch] +on: [ workflow_dispatch, push] jobs: dependabot: runs-on: ubuntu-latest From 49542d5bc17f0cb6afc2074b700e8cdaa587797c Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Fri, 5 Aug 2022 14:25:29 -0600 Subject: [PATCH 3/7] chore: rename job --- .github/workflows/workflows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflows.yml b/.github/workflows/workflows.yml index 0475368..7a2a34e 100644 --- a/.github/workflows/workflows.yml +++ b/.github/workflows/workflows.yml @@ -15,7 +15,7 @@ name: Workflows on: [ workflow_dispatch, push] jobs: - dependabot: + status-badges: runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{secrets.GOOGLEWORKSPACE_BOT_TOKEN}} From 4ceacf4f4a9722dd44039540966c2ac2893b49ae Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Fri, 5 Aug 2022 14:25:58 -0600 Subject: [PATCH 4/7] fix: update file path --- .github/workflows/workflows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflows.yml b/.github/workflows/workflows.yml index 7a2a34e..e0161c7 100644 --- a/.github/workflows/workflows.yml +++ b/.github/workflows/workflows.yml @@ -28,6 +28,6 @@ jobs: - run: .github/workflows/workflows.sh - run: | git checkout -b chore/workflows - git add WORKFLOWS.md + git add README.md git commit -am 'chore: update workflow status' gh pr create --fill --head main --base chore/workflows From e993add5caa89abbcbefb97c2a4de06301564dc0 Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Fri, 5 Aug 2022 14:27:17 -0600 Subject: [PATCH 5/7] chore: configure bot --- .github/workflows/workflows.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/workflows.yml b/.github/workflows/workflows.yml index e0161c7..ec4e2ac 100644 --- a/.github/workflows/workflows.yml +++ b/.github/workflows/workflows.yml @@ -29,5 +29,7 @@ jobs: - run: | git checkout -b chore/workflows git add README.md + git config user.email "googleworkspace-bot@google.com" + git config user.name "googleworkspace-bot" git commit -am 'chore: update workflow status' gh pr create --fill --head main --base chore/workflows From 9e1351c677081c85678be46d811eeedcf389707c Mon Sep 17 00:00:00 2001 From: Justin Poehnelt Date: Fri, 5 Aug 2022 14:29:32 -0600 Subject: [PATCH 6/7] fix: git push --- .github/workflows/workflows.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/workflows.yml b/.github/workflows/workflows.yml index ec4e2ac..fd2ba4e 100644 --- a/.github/workflows/workflows.yml +++ b/.github/workflows/workflows.yml @@ -32,4 +32,5 @@ jobs: git config user.email "googleworkspace-bot@google.com" git config user.name "googleworkspace-bot" git commit -am 'chore: update workflow status' + git push -u origin chore/workflows gh pr create --fill --head main --base chore/workflows From b9ad9381f61b1786add9406a3a907d8bda27d0f0 Mon Sep 17 00:00:00 2001 From: googleworkspace-bot Date: Fri, 5 Aug 2022 20:29:49 +0000 Subject: [PATCH 7/7] chore: update workflow status --- README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.md b/README.md index 8b6dacc..f617065 100644 --- a/README.md +++ b/README.md @@ -1 +1,36 @@ A repository holding defaults for the [Google Workspace](https://github.com/googleworkspace) organization. + +## Workflows + +| Repository | Test | Lint | Release | +| --- | --- | --- | --- | +| [.github](https://github.com/googleworkspace/.github) | [![](https://github.com/googleworkspace/.github/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/.github/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/.github/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/.github/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/.github/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/.github/actions/workflows/release-please.yml) | +| [add-ons-samples](https://github.com/googleworkspace/add-ons-samples) | [![](https://github.com/googleworkspace/add-ons-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/add-ons-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/add-ons-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/add-ons-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/add-ons-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/add-ons-samples/actions/workflows/release-please.yml) | +| [appointment-scheduler-codelab](https://github.com/googleworkspace/appointment-scheduler-codelab) | [![](https://github.com/googleworkspace/appointment-scheduler-codelab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/appointment-scheduler-codelab/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/appointment-scheduler-codelab/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/appointment-scheduler-codelab/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/appointment-scheduler-codelab/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/appointment-scheduler-codelab/actions/workflows/release-please.yml) | +| [apps-script-intro-codelab](https://github.com/googleworkspace/apps-script-intro-codelab) | [![](https://github.com/googleworkspace/apps-script-intro-codelab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-intro-codelab/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/apps-script-intro-codelab/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-intro-codelab/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/apps-script-intro-codelab/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-intro-codelab/actions/workflows/release-please.yml) | +| [apps-script-oauth1](https://github.com/googleworkspace/apps-script-oauth1) | [![](https://github.com/googleworkspace/apps-script-oauth1/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-oauth1/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/apps-script-oauth1/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-oauth1/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/apps-script-oauth1/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-oauth1/actions/workflows/release-please.yml) | +| [apps-script-oauth2](https://github.com/googleworkspace/apps-script-oauth2) | [![](https://github.com/googleworkspace/apps-script-oauth2/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-oauth2/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/apps-script-oauth2/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-oauth2/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/apps-script-oauth2/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-oauth2/actions/workflows/release-please.yml) | +| [apps-script-samples](https://github.com/googleworkspace/apps-script-samples) | [![](https://github.com/googleworkspace/apps-script-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/apps-script-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/apps-script-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/apps-script-samples/actions/workflows/release-please.yml) | +| [browser-samples](https://github.com/googleworkspace/browser-samples) | [![](https://github.com/googleworkspace/browser-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/browser-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/browser-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/browser-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/browser-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/browser-samples/actions/workflows/release-please.yml) | +| [chat-framework-nodejs](https://github.com/googleworkspace/chat-framework-nodejs) | [![](https://github.com/googleworkspace/chat-framework-nodejs/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/chat-framework-nodejs/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/chat-framework-nodejs/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/chat-framework-nodejs/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/chat-framework-nodejs/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/chat-framework-nodejs/actions/workflows/release-please.yml) | +| [cloud-search-samples](https://github.com/googleworkspace/cloud-search-samples) | [![](https://github.com/googleworkspace/cloud-search-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/cloud-search-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/cloud-search-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/cloud-search-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/cloud-search-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/cloud-search-samples/actions/workflows/release-please.yml) | +| [docs-transcript-codelab](https://github.com/googleworkspace/docs-transcript-codelab) | [![](https://github.com/googleworkspace/docs-transcript-codelab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/docs-transcript-codelab/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/docs-transcript-codelab/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/docs-transcript-codelab/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/docs-transcript-codelab/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/docs-transcript-codelab/actions/workflows/release-please.yml) | +| [dotnet-samples](https://github.com/googleworkspace/dotnet-samples) | [![](https://github.com/googleworkspace/dotnet-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/dotnet-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/dotnet-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/dotnet-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/dotnet-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/dotnet-samples/actions/workflows/release-please.yml) | +| [drive-quickeditors](https://github.com/googleworkspace/drive-quickeditors) | [![](https://github.com/googleworkspace/drive-quickeditors/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/drive-quickeditors/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/drive-quickeditors/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/drive-quickeditors/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/drive-quickeditors/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/drive-quickeditors/actions/workflows/release-please.yml) | +| [drive-utils](https://github.com/googleworkspace/drive-utils) | [![](https://github.com/googleworkspace/drive-utils/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/drive-utils/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/drive-utils/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/drive-utils/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/drive-utils/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/drive-utils/actions/workflows/release-please.yml) | +| [gmail-add-on-codelab](https://github.com/googleworkspace/gmail-add-on-codelab) | [![](https://github.com/googleworkspace/gmail-add-on-codelab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/gmail-add-on-codelab/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/gmail-add-on-codelab/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/gmail-add-on-codelab/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/gmail-add-on-codelab/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/gmail-add-on-codelab/actions/workflows/release-please.yml) | +| [go-samples](https://github.com/googleworkspace/go-samples) | [![](https://github.com/googleworkspace/go-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/go-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/go-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/go-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/go-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/go-samples/actions/workflows/release-please.yml) | +| [gsuite-apis-intro](https://github.com/googleworkspace/gsuite-apis-intro) | [![](https://github.com/googleworkspace/gsuite-apis-intro/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/gsuite-apis-intro/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/gsuite-apis-intro/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/gsuite-apis-intro/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/gsuite-apis-intro/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/gsuite-apis-intro/actions/workflows/release-please.yml) | +| [hangouts-chat-apps-script-codelab](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab) | [![](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hangouts-chat-apps-script-codelab/actions/workflows/release-please.yml) | +| [hangouts-chat-samples](https://github.com/googleworkspace/hangouts-chat-samples) | [![](https://github.com/googleworkspace/hangouts-chat-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hangouts-chat-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/hangouts-chat-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hangouts-chat-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/hangouts-chat-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hangouts-chat-samples/actions/workflows/release-please.yml) | +| [hubot-google-hangouts-chat](https://github.com/googleworkspace/hubot-google-hangouts-chat) | [![](https://github.com/googleworkspace/hubot-google-hangouts-chat/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hubot-google-hangouts-chat/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/hubot-google-hangouts-chat/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hubot-google-hangouts-chat/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/hubot-google-hangouts-chat/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/hubot-google-hangouts-chat/actions/workflows/release-please.yml) | +| [java-samples](https://github.com/googleworkspace/java-samples) | [![](https://github.com/googleworkspace/java-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/java-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/java-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/java-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/java-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/java-samples/actions/workflows/release-please.yml) | +| [md2googleslides](https://github.com/googleworkspace/md2googleslides) | [![](https://github.com/googleworkspace/md2googleslides/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/md2googleslides/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/md2googleslides/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/md2googleslides/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/md2googleslides/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/md2googleslides/actions/workflows/release-please.yml) | +| [ml-integration-samples](https://github.com/googleworkspace/ml-integration-samples) | [![](https://github.com/googleworkspace/ml-integration-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/ml-integration-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/ml-integration-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/ml-integration-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/ml-integration-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/ml-integration-samples/actions/workflows/release-please.yml) | +| [node-samples](https://github.com/googleworkspace/node-samples) | [![](https://github.com/googleworkspace/node-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/node-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/node-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/node-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/node-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/node-samples/actions/workflows/release-please.yml) | +| [php-samples](https://github.com/googleworkspace/php-samples) | [![](https://github.com/googleworkspace/php-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/php-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/php-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/php-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/php-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/php-samples/actions/workflows/release-please.yml) | +| [python-samples](https://github.com/googleworkspace/python-samples) | [![](https://github.com/googleworkspace/python-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/python-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/python-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/python-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/python-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/python-samples/actions/workflows/release-please.yml) | +| [ruby-samples](https://github.com/googleworkspace/ruby-samples) | [![](https://github.com/googleworkspace/ruby-samples/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/ruby-samples/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/ruby-samples/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/ruby-samples/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/ruby-samples/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/ruby-samples/actions/workflows/release-please.yml) | +| [sheets-api-codelab](https://github.com/googleworkspace/sheets-api-codelab) | [![](https://github.com/googleworkspace/sheets-api-codelab/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/sheets-api-codelab/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/sheets-api-codelab/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/sheets-api-codelab/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/sheets-api-codelab/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/sheets-api-codelab/actions/workflows/release-please.yml) | +| [slides-api](https://github.com/googleworkspace/slides-api) | [![](https://github.com/googleworkspace/slides-api/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/slides-api/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/slides-api/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/slides-api/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/slides-api/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/slides-api/actions/workflows/release-please.yml) | +| [solutions](https://github.com/googleworkspace/solutions) | [![](https://github.com/googleworkspace/solutions/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/googleworkspace/solutions/actions/workflows/test.yml) | [![](https://github.com/googleworkspace/solutions/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/googleworkspace/solutions/actions/workflows/lint.yml) | [![](https://github.com/googleworkspace/solutions/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/googleworkspace/solutions/actions/workflows/release-please.yml) |