In Showcase your Apps Script work and get hired via vizzy I showed how scrviz could be used to show off your Apps Script work to potential clients, so they could see what kind of thing you’ve been working on. The Owner profile on that is just whatever you have created in your Github profile, which of course is limited to whatever Github allows you to configure. I figured it would be nice if you could enrich that however you like by adding more stuff. This article will cover how to create additional profile info for scrviz.

Github profile

These fields are available in Github and are used by scrviz. To maintain them, just change them on Github and they’ll eventually show up on scrviz. This is my profile inherited from Github. You can create a direct link to it as described in Direct scrviz link to your Apps Script github repo, project or owner

https://scrviz.web.app?owner=brucemcpherson

Enriched profile

There’s a few things I’d like to add to this such as my youtube channel and linkedin profile, but of course there’s nowhere to do that on github. However, you can now create a scrviz-profile.json which will be used to enhance your user profile. This is mine

{
  "scrviz": {
    "owner": {
      "login": "brucemcpherson",
      "tags": [
        {
          "description": "gde",
          "link": "https://developers.google.com/community/experts/directory/profile/profile-bruce_mcpherson",
          "tip": "GDE since 2013 : G Suite and Identity",
          "icon": "mdi-code-tags",
          "visible": true
        },
        {
          "description": "author",
          "link": "https://www.oreilly.com/pub/au/6781",
          "tip": "Author of Going Gas - VBA to Apps Script",
          "icon": "mdi-book-education",
          "visible": true
        },
        {
          "description": "d3",
          "link": "https://ramblings.mcpher.com/d3-js/",
          "tip": "Vizualization with D3",
          "icon": "mdi-chart-bubble",
          "visible": true
        },
        {
          "description": "vuejs",
          "link": "https://ramblings.mcpher.com/vuejs-apps-script-add-ons/",
          "tip": "Vuejs and apps script",
          "icon": "mdi-vuejs",
          "visible": true
        },
        {
          "description": "gcp",
          "link": "https://ramblings.mcpher.com/gcp/",
          "tip": "google cloud platform",
          "icon": "mdi-cloud",
          "visible": true
        },
        {
          "description": "ml",
          "link": "https://ramblings.mcpher.com/gcp/",
          "tip": "machine learning",
          "icon": "mdi-school",
          "visible": true
        },
        {
          "description": "tu",
          "link": "https://sites.google.com/view/totallyunscripted/home",
          "tip": "occasional contributor to Totally Unscripted Show",
          "icon": "mdi-monitor-eye",
          "visible": true
        },
        {
          "description": "kube",
          "link": "https://ramblings.mcpher.com/gcp/getting-an-api-running-in-kubernetes/",
          "tip": "Kubernetes",
          "icon": "mdi-kubernetes",
          "visible": true
        },
        {
          "description": "graphql",
          "link": "https://ramblings.mcpher.com/snipgraphql/",
          "tip": "Apollo and GraphQL",
          "icon": "mdi-graphql",
          "visible": true
        }
      ],

      "rows": [
        {
          "description": "Creator of this app",
          "link": "https://ramblings.mcpher.com/vizzy-scrviz/",
          "tip": "All about scrviz",
          "icon": "scrviz",
          "visible": true
        },
        {
          "description": "Google developer expert",
          "link": "https://developers.google.com/community/experts/directory/profile/profile-bruce_mcpherson",
          "tip": "GDE since 2013 : G Suite and Identity",
          "icon": "mdi-code-tags",
          "visible": true
        },
        {
          "description": "O'reilly author",
          "link": "https://www.oreilly.com/pub/au/6781",
          "tip": "Author of Going Gas - VBA to Apps Script",
          "icon": "mdi-book-education",
          "visible": true
        },
        {
          "description": "Video channel",
          "link": "https://www.youtube.com/c/BruceMcpherson",
          "tip": "Bruce Mcpherson's Youtube channel",
          "icon": "youtube",
          "visible": true
        },
        {
          "description": "Linkedin Profile",
          "link": "https://www.linkedin.com/in/brucemcpherson",
          "tip": "Bruce Mcpherson's linkedin profile",
          "icon": "linkedin",
          "visible": true
        }
      ]
    },
    "repos": [
      {
        "repo": "bmPreFiddler",
        "rows": [
          {
            "description": "Handly helper for fiddler",
            "link": "https://ramblings.mcpher.com/vuejs-apps-script-add-ons/helper-for-fiddler/",
            "tip": "Wrapper library for fiddler:Abstracts sheet data - functional sheet processing",
            "icon": "appsscript",
            "visible": true
          }
        ]
      },
      {
        "repo": "GasWatcher",
        "rows": [
          {
            "description": "Watching for server side Sheet changes from the client html service",
            "link": "https://ramblings.mcpher.com/gassnippets2/watching-for-server-side-changes-from-the-client-html-service/",
            "tip": "client-side to react to changes in data (or indeed any property) as well as changes in selection and Activesheet.",
            "icon": "appsscript",
            "visible": true
          }
        ]
      },
      {
        "repo": "cUseful",
        "rows": [
          {
            "description": "Library compilation with many things too numnerous to list",
            "link": "https://ramblings.mcpher.com/gassnippets2/",
            "tip": "Check out the repo to see more",
            "icon": "appsscript",
            "visible": true
          }
        ]
      },
      {
        "repo": "bmVizzyCacheLibrarySheet",
        "rows": [
          {
            "description": "Vizzy cache example",
            "link": "https://ramblings.mcpher.com/vizzy-scrviz/vizzy-build-apps-script/",
            "tip": "Example building something in Apps Script with scrviz",
            "icon": "appsscript",
            "visible": true
          }
        ],
        "tags": [
          {
            "description": "Sheets",
            "tip": "Google sheets example",
            "icon": "sheets",
            "visible": true
          }
        ]
      },
      {
        "repo": "bmFiddler",
        "rows": [
          {
            "description": "Fiddler: Abstracts sheet data library",
            "link": "https://ramblings.mcpher.com/gassnippets2/afunctionalapproachtofiddlingwithsheetdata/",
            "tip": "Functional approach to fiddling with sheet data",
            "icon": "appsscript",
            "visible": true
          },
          {
            "description": "Fiddler Video: Abstracts sheet data library",
            "link": "https://www.youtube.com/watch?v=BGOvmV5PXJ0",
            "tip": "A video to get started with a functional approach to fiddling with sheet data",
            "icon": "youtube",
            "visible": true
          },
          {
            "description": "Fiddler: fingerprinting",
            "link": "https://ramblings.mcpher.com/vuejs-apps-script-add-ons/fiddler-fingerprint/",
            "tip": "Optimize sheet fiddling with a fingerprint to detect changes",
            "icon": "mdi-fingerprint",
            "visible": true
          },
          {
            "description": "Fiddler: rangelists",
            "link": "https://ramblings.mcpher.com/gassnippets2/fiddler-and-rangelists/",
            "tip": "formatting with fiddler",
            "icon": "mdi-format-paint",
            "visible": true
          }
        ]
      },
      {
        "repo": "cGoa",
        "rows": [
          {
            "description": "OAuth2 for Apps Script in a few lines of code",
            "link": "https://ramblings.mcpher.com/oauth2-for-apps-script-in-a-few-lines-of-code/",
            "tip": "Low setup oauth2 library for Apps Script",
            "icon": "appsscript",
            "visible": true
          },
          {
            "description": "How fast can you get OAuth2 set up in Apps Script?",
            "link": "https://ramblings.mcpher.com/oauth2-for-apps-script-in-a-few-lines-of-code/how-fast-can-you-get-oauth2-set-up-in-apps-script/",
            "tip": "Set up oauth2 from Apps Script to any service in under 15 minutes",
            "icon": "appsscript",
            "visible": true
          }
        ]
      }
    ]
  }
}

Here’s how my scrviz profile at https://scrviz.web.app?owner=brucemcpherson looks now.

Where to put scrviz-profile.json

Anywhere in any public repo you own. It doesn’t have to be an Apps Script one. It’s probably better (but not mandatory) to keep it in its own repository – mine is here https://github.com/brucemcpherson/scrviz-profile

You must only have 1 scrviz-profile.json across all your repos, and the login property must match that of the repo owner.

Profile contents

The scrviz.owner property contains data to enrich your owner profile.

Properties

name purpose
scrviz.owner.login this should match your github login name. It’s used to verify that the profile being described matches the owner who is hosting it, is mandatory.
scrviz.owner.rows an array of rows – each one will render a row in the scrviz profile

Each row can have these properties

all are optional (except visibile) and will be replaced by some approriate default value if not supplied.

name purpose
description the description. If there is a link present, this will be used as the text for the link
link an external link to some more info
tip a tooltip to display when hovering over the description
icon a material design icon to use to decorate this row. It take the format of, for example, mdi-linkedin. The full directory of icons is here https://materialdesignicons.com/
visible true/false – whether to show it in scrviz – this is mandatory. If not present the row won’t be shown. Think of it as agreeing to scrviz conditions

Copying links

For convenience, each row is wired up to be able to be copied to the clipboard if you click on the icon. If there is a link present it’ll copy that, otherwise it’ll copy the text.

Links

App https://scrviz.web.app

Github https://github.com/brucemcpherson/gitvizzy

My profile https://github.com/brucemcpherson/scrviz-profile

My scrviz link https://scrviz.web.app?owner=brucemcpherson

Enriching repo profiles: Enrich your scrviz repo profiles and drive traffic to your website or blog

All about scrviz