Supercharge Your GitOps Workflows with the Globalping GitHub Bot
Tags: github, networking, devops, linux
Published: 2023-09-19 13:00:18

If you're anything like us, you're always on the lookout for ways to streamline and improve your workflows, especially when dealing with essential yet sometimes complex tools like GitHub. That's why we created the Globalping GitHub bot: it helps to collaborate on issues and supports teams' GitOps processes.

Globalping is a network testing platform that empowers you to run commands like ping and traceroute from almost any location worldwide. You can use our platform through various integrations, such as our CLI tool, with the GitHub bot being the latest addition. 

In this article, we'll introduce you to the Globalping GitHub bot, show you how to use it, and explore some typical use cases where it can make your GitHub experience more productive and enjoyable.


## Exploring the Globalping GitHub bot

Are you new to the entire GitHub bot topic? Then, let's bring you up to speed before moving on. 

GitHub bots (or [GitHub Apps](https://docs.github.com/en/apps/overview)) are essentially automated helpers designed to improve how you work with the platform or extend its functionality. Anyone can create a bot for their own needs or to share with others on GitHub. Some use cases range from automating routine tasks like commenting to performing specific actions when someone creates a new pull request. Bots are also often used to integrate GitHub with other platforms, such as CircleCI, Azure, SonarCloud, and many others.

Now, what can the[ Globalping GitHub bot](https://github.com/globalping) do? 

In essence, our Globalping GitHub bot can do everything our CLI tool can – it can run network measurement commands from virtually anywhere while maintaining the same command structure. This ensures that using Globalping remains simple and consistent, regardless of which integration you are using. Also, there's no need to install anything to use our bot. You can trigger it in any public GitHub issue by commenting @globalping followed by the network command you want to run – but we'll go into more detail about the hows in a moment.

**Note:** If you want to learn more about the [Globalping platform](https://github.com/jsdelivr/globalping) and how it works, check out our [introductory blog post](https://www.jsdelivr.com/blog/globalping-goes-live-a-community-powered-global-network-testing-platform/). 


## Using the Globalping GitHub bot

Let's roll up our sleeves and see the Globalping bot in action. All you need to get started is a GitHub account and a publicly available issue (this is important!) where you want to trigger the bot. 

Globalping has a handy `--help` option that is a good starting point for exploration. So, let's have our first interaction with the bot to get help:

1. Open an existing publicly available issue or create a new one.
2. Activate the bot by commenting "@globalping --help", i.e., write the command in the comment text box and submit it. Be sure to mention the bot with the "@" sign, just as you would to reference a GitHub user.
3. Give the bot a moment to process your request and work its magic.
4. Voilà – you should see the bot's comment, including information about how to use it.

You can get more information about specific measurement commands by writing a command type with the `--help` flag in this format:

    @globalping ping --help

In this example, the bot comment explains how to use the ping command and what flags (options) are available.

It also describes the command structure, which is the same for all available commands:

    @globalping [command type] [target] from [location] [flags]

Now that we've learned the basics, we can create more interesting network measurement requests!


### Example: Ping a target from Berlin using two probes.

Let's put our newly acquired knowledge into practice. In this example, we want to ping a target from Berlin using two probes (meaning we'll also get two ping results). Here's how you can achieve this by creating a simple command within your GitHub issue:

    @globalping ping jsdelivr.com from Berlin --limit 2

After a short moment, you should see the comment, including the result that looks something like this:


![globalping ping from github issues](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2s31c27inebz69k5htp.jpg)

By default, Globalping sets the probe limit to 1, meaning it selects a single active probe for the measurement. However, in this example, we explicitly request two probes to perform the ping command from Berlin using the option `--limit`.


### Example: Traceroute a target from an AWS probe in Montreal using UDP

Suppose you're curious about your data's network path as it travels from an AWS probe in Montreal to a specific target using the UDP protocol. To get this information, here's the traceroute command to comment on your GitHub issue:

    @globalping traceroute jsdelivr.com from aws+montreal --protocol udp

The result will look something like this:


![traceroute from aws inside github comments](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bw2249rwocmk803erzbq.jpg)

In this example, we've used the `+` sign to combine two location types and fine-tune our request. The Globalping API, responsible for selecting the fitting probes to run commands on, does its best to interpret the location you provide, so feel free to experiment! You can specify countries, continents, cities, US states, regions, ASNs, ISP names, and cloud region names.

Additionally, we've used the `--protocol` option, which is unavailable for other commands like ping. While all commands share certain options, such as location (`--from`) and the number of probes (`--limit`), some support unique options. For instance, you can define the protocol (`--protocol`) for traceroute or specify the number of ICMP packets (`--packets`) to send with ping.\
Check all available options with the `--help` option!


## Leveraging network troubleshooting in Github issues 

Now that we've got the hang of using the Globalping GitHub bot let's explore some use cases and the benefits for your GitOps workflows and collaboration on GitHub.


### View network issues from a user perspective.

Thanks to our global network of probes, you can assess network performance and issues from almost any location. Whether your users are in major cities or rural areas, you can directly replicate their experiences and troubleshoot location-specific problems in the relevant GitHub issue.


### Improve collaboration.

By letting anyone effortlessly integrate network data into public GitHub issues, our Globalping bot can help streamline GitOps workflows and make collaboration more efficient. No more tedious copying and pasting and switching between different tools – with our bot, you can run network tests directly in GitHub and ensure that essential data is immediately available where you need it.


### Get issues resolved faster.

Having commands like ping, traceroute, mtr, dig, and curl at your fingertips to collect information on network latency, routing paths, DNS resolution, and more can help you solve problems hinging on network data faster. With the help of the Globalping bot, you can add more relevant information to a GitHub issue, providing actionable insights and potentially making it easier to understand and solve the problem. 


## Conclusion

Whether you want to fine-tune your network configurations, solve connectivity issues, or get insights into your network, the Globalping GitHub bot is here to help. Just mention "[@globalping](https://github.com/globalping)" alongside the respective command within a public GitHub issue, and watch the bot respond with results – no installations required!

Happy testing!