Compare commits

...

6 Commits

Author SHA1 Message Date
Siddharth Agrawal 52b0da9c30
Merge c99a1c5fb5 into 6e9cda3d30 2025-01-20 10:04:48 +01:00
dependabot[bot] 6e9cda3d30
chore(deps): bump semver in /.github/workflows/dependencies (#12924)
Bumps [semver](https://github.com/python-semver/python-semver) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/python-semver/python-semver/releases)
- [Changelog](https://github.com/python-semver/python-semver/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/python-semver/python-semver/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-19 23:30:40 +01:00
ohmyzsh[bot] d689aa289e
feat(gitfast): update to version v2.2 (#12923)
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com>
2025-01-19 11:20:14 +01:00
Felipe Contreras 8c5b71b2f4
ci(deps): update `gitfast` to its new structure (#12922)
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
2025-01-19 11:18:37 +01:00
Siddharth Agrawal c99a1c5fb5 only print job status for some status values 2022-11-17 15:05:36 +05:30
Siddharth Agrawal a86e5876eb create the circleci plugin 2022-11-17 15:05:36 +05:30
8 changed files with 159 additions and 19 deletions

View File

@ -2,11 +2,13 @@ dependencies:
plugins/gitfast:
repo: felipec/git-completion
branch: master
version: tag:v2.1
version: tag:v2.2
postcopy: |
set -e
rm -rf git-completion.plugin.zsh Makefile README.adoc t tools
test -e git-completion.zsh && mv -f git-completion.zsh _git
rm -rf git-completion.plugin.zsh Makefile t tools
mv README.adoc MANUAL.adoc
mv -f src/* .
rmdir src
plugins/gradle:
repo: gradle/gradle-completion
branch: master

View File

@ -3,5 +3,5 @@ charset-normalizer==3.4.1
idna==3.10
PyYAML==6.0.2
requests==2.32.3
semver==3.0.2
semver==3.0.3
urllib3==2.3.0

View File

@ -0,0 +1,23 @@
# CircleCi Plugin
This plugin provides easy to use cli commands to query circle ci job statuses
To use it, add `circleci` to the plugins array in your zshrc file:
```zsh
plugins=(... circleci)
```
## Prerequisites
You need to have the `CIRCLECI_API_TOKEN` and `CIRCLECI_ORG_SLUG` as environment
variables before calling the `circleci_status` function <br>
You can learn how to add a circleci api token [here](https://circleci.com/docs/managing-api-tokens/) <br>
The org slug takes the format of `{vcs}/{org_name}`
## Usage
```shell
> circleci_status
```
The above command would list down all the jobs (with their run status) on the
repository and branch that you are currently on <br>
You can also use the `cis` alias to run the above function

View File

@ -0,0 +1,12 @@
# Handle $0 according to the standard:
# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
0="${${(M)0:#/*}:-$PWD/$0}"
__CI_ZSH_DIR="${0:h:A}"
alias cis='circleci_status'
function circleci_status() {
python3 "$__CI_ZSH_DIR"/circleci_status.py "$(git_current_branch)" "$(git_repo_name)" | less
}

View File

@ -0,0 +1,73 @@
#!/usr/bin/env python3
import requests
import os
import sys
CIRCLECI_API = "https://circleci.com/api/v2"
org_slug = os.environ.get("CIRCLECI_ORG_SLUG")
args = sys.argv
class COLORS:
reset = '\033[0m'
class FG:
red = '\033[31m'
green = '\033[32m'
yellow = '\033[93m'
def get_resp_items(resp):
if resp.status_code != 200:
sys.exit(0)
items = resp.json()["items"]
if len(items) == 0:
sys.exit(0)
return items
def get_status_text(status):
if status == "success":
return COLORS.FG.green + "" + COLORS.reset
elif status in ("running", "not_run", "retried"):
return COLORS.FG.yellow + "" + COLORS.reset
else:
return COLORS.FG.red + "" + COLORS.reset
if not org_slug or len(args) != 3:
sys.exit(0)
branch_name = args[1]
repo_name = args[2]
# Here we query for all the pipelines belonging to the current branch in the current repo
headers = {"Circle-token": os.environ.get("CIRCLECI_API_TOKEN")}
url = f"{CIRCLECI_API}/project/{org_slug}/{repo_name}/pipeline"
params = {"branch": branch_name}
response = requests.get(url, headers=headers, params=params)
pipelines = get_resp_items(response)
# use the latest pipeline
pipeline_id = pipelines[0]["id"]
# Now fetch the workflows for the selected pipeline
url = f"{CIRCLECI_API}/pipeline/{pipeline_id}/workflow"
response = requests.get(url, headers=headers)
workflows = get_resp_items(response)
# use the latest workflow
workflow_id = workflows[0]["id"]
url = f"{CIRCLECI_API}/workflow/{workflow_id}/job"
response = requests.get(url, headers=headers)
jobs = get_resp_items(response)
for job in jobs:
status = job["status"]
if status in ("success", "running", "failed", "retried", "timedout",
"on_hold", "canceled", "terminated_unknown"):
name = job["name"]
project_slug = job["project_slug"]
job_number = job["job_number"]
url = f"https://circleci.com/{project_slug}/{job_number}"
print("{} {:<50} {}".format(get_status_text(status), name, url))

View File

@ -0,0 +1,40 @@
This project is a friendly fork of the official Git completion
(`contrib/completion`) and prompt scripts for Bash, Zsh, and possibly other
shells.
Most Git developers use the Bash shell, for which the completion scripts work
rather well, however, Zsh is typically neglected. I've sent many patches to fix
the issues, many have been merged, but many have been ignored, thus the need for
a canonical location of a good, working Zsh completion.
There are advantages for Bash users too. Currently the scripts under `contrib` are tied to the
specific Git version, for example the completion scripts of version v2.40
(https://git.kernel.org/pub/scm/git/git.git/plain/contrib/completion/git-completion.bash?h=v2.40.0[git-completion.bash])
have issues with older versions of Git (e.g. v2.33); the ones in
this project don't.
With `git-completion` you can be sure you are using the latest completion that
works in both shells, and any Git version.
This is a sister project of the
https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/gitfast[Oh My Zsh
gitfast] plugin (that I also maintain), which has similar needs.
== Installation ==
* https://github.com/felipec/git-completion/wiki/Bash[Bash instructions]
* https://github.com/felipec/git-completion/wiki/Zsh[Zsh instructions]
== Improvements from upstream ==
This is a short list of the benefits you get:
* Easier installation
* Tons of bug fixes
* Works with older versions of git
* Zsh: much more options
* Zsh: quoting works properly
* Zsh: automatic suffix removal
For a full list of all the patches on top of upstream git check
https://github.com/felipec/git-completion/wiki/Patches[Patches].

View File

@ -2,23 +2,11 @@
# zsh completion wrapper for git
#
# Copyright (c) 2012-2020 Felipe Contreras <felipe.contreras@gmail.com>
# Copyright (c) 2012-2024 Felipe Contreras <felipe.contreras@gmail.com>
#
# The recommended way to install this script is to make a copy of it as a
# file named '_git' inside any directory in your fpath.
# The recommended way to use this script is to prepend its location to your $fpath:
#
# For example, create a directory '~/.zsh/', copy this file to '~/.zsh/_git',
# and then add the following to your ~/.zshrc file:
#
# fpath=(~/.zsh $fpath)
#
# You need git's bash completion script installed. By default bash-completion's
# location will be used (e.g. pkg-config --variable=completionsdir bash-completion).
#
# If your bash completion script is somewhere else, you can specify the
# location in your ~/.zshrc:
#
# zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
# fpath=($git_completion_srcdir $fpath)
#
zstyle -T ':completion:*:*:git:*' tag-order && \

View File

@ -1,6 +1,8 @@
# bash/zsh completion support for core Git.
#
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
# Copyright (c) 2012-2024 Felipe Contreras <felipe.contreras@gmail.com>
#
# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
# Distributed under the GNU General Public License, version 2.0.
#