PipeScope
PipeScope is a command-line tool that monitors the status of remote pipelines.
How it works
PipeScope uses external GitLab and GitHub clients in conjunction with a pure Golang git implementation to dynamically stream the pipeline status of your repo's HEAD
commit.
Installation
go install github.com/gregfurman/pipescope@latest
Usage
Be sure to specify your access token via the --access-token
flag.
PipeScope should be run wherever your repo's .git
is located. Else, you will have to specify the location via the --git-directory
flag.
The Git Provider can be explicitly set as an argument passed to the CLI (can be one of gitlab
or github
). Otherwise, PipeScope will attempt to dynamically determine which provider to use from the prefix of your access-token
OR from the remote URL retrieved via the internal git
client.
Example
pipescope --access-token=<GitLab access token>
Output:
2024/04/18 17:55:47 INFO Polled Pipeline [status=created]" url=https://gitlab.com/gregfurman/sample-project/-/pipelines/1253625945 sha=928e2dfffdaaf6fa32f3ee4bf608690b09c6e2c1 project_id=26797650 pipeline_id=5234431782
2024/04/18 17:55:58 INFO Polled Pipeline [status=running]" url=https://gitlab.com/gregfurman/sample-project/-/pipelines/1253625945 sha=928e2dfffdaaf6fa32f3ee4bf608690b09c6e2c1 project_id=26797650 pipeline_id=5234431782
2024/04/18 17:56:12 INFO Polled Pipeline [status=success]" url=https://gitlab.com/gregfurman/sample-project/-/pipelines/1253625945 sha=928e2dfffdaaf6fa32f3ee4bf608690b09c6e2c1 project_id=26797650 pipeline_id=5234431782
Command-line Flags
-access-token string
API access token where remote pipeline resides (env=ACCESS_TOKEN).
-git-directory string
Location of .git directory. (default ".")
-play-sound
Play a noise when pipeline completes (experimental).
-poll-frequency duration
Polling frequency to pipeline. (default 5s)
Limitations/Roadmap
- Project is currently experimental so please do not use this in production anywhere
Needs CI/CD, tests, and a Makefile
Currently, PipeScope can only monitor GitLab pipelines. Future versions will extend this to include GitHub workflows.
- There is not a lot of flexibility to select pipelines or projects via command-line input -- this should be changed to allow custom pipeline IDs to be specified.
- Include more information on pipeline jobs
- Allow better streaming of pipeline/job logs to stdout