PipeScope is a command-line tool that monitors the status of remote pipelines.
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.
go install github.com/gregfurman/pipescope@latest
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.
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
-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)
- Project is currently experimental so please do not use this in production anywhere
Needs CI/CD, tests, and a MakefileCurrently, 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