git-obs - Man Page
Git based command-line client for Open Build Service
Synopsis
git-obs [global opts] <command> [--help] [opts] [args]
Description
git-obs is a command-line client for interacting with Git repositories within a Gitea instance that is part of an Open Build Service (OBS).
Options
- -q, --quiet
Mute unnecessary output
- --gitea-config GITEA_CONFIG
Path to gitea config. Default: $GIT_OBS_CONFIG or ~/.config/tea/config.yml.
- -G GITEA_LOGIN, --gitea-login GITEA_LOGIN
Name of the login entry in the config file. Default: $GIT_OBS_LOGIN or the default entry from the config file. Alternatively, you can use gitea url as long as there's only a single matching entry in the config file.
You can omit this argument and set GIT_OBS_GITEA_URL, GIT_OBS_GITEA_USER, and GIT_OBS_GITEA_TOKEN environmental variables instead. Optional variables: GIT_OBS_GITEA_SSH_KEY
To override the existing values from the config file, you can specify the following environmental variables:
- GIT_OBS_LOGIN_<LOGIN-NAME>_USER
- GIT_OBS_LOGIN_<LOGIN-NAME>_TOKEN
- GIT_OBS_LOGIN_<LOGIN-NAME>_SSH_KEY Setting new ``name`` or ``url`` is not possible. Please note that the login name that is part of the environmental variable name is case sensitive.
Commands
git-obs api
Make an arbitrary request to API
usage: git-obs [global opts] api [-h] [-X {GET,HEAD,POST,PATCH,PUT,DELETE}]
[--data DATA]
url
arguments:
url
options:
-X {GET,HEAD,POST,PATCH,PUT,DELETE}, --method {GET,HEAD,POST,PATCH,PUT,DELETE}
--data DATA
git-obs login
Manage configured credentials to Gitea servers
git-obs [global opts] login
usage: git-obs [global opts] login [-h]
{add,gitcredentials-helper,list,remove,update} ...
git-obs login add
Add a Gitea credentials entry
usage: git-obs [global opts] add [-h] --url URL --user USER [--token TOKEN]
[--ssh-key PATH] [--git-uses-http] [--quiet]
[--set-as-default]
name
arguments:
- name
The name of the login entry to be added
options:
- --url URL
Gitea URL, for example https://example.com
- --user USER
Gitea username
- --token TOKEN
Gitea access token; omit or set to '-' to invoke a secure interactive prompt
- --ssh-key PATH
Path to a private SSH key
- --git-uses-http
Git uses http(s) instead of SSH
- --quiet
Mute unnecessary output when using this login entry
- --set-as-default
Set the new login entry as default
git-obs login list
List Gitea credentials entries
usage: git-obs [global opts] list [-h] [--show-tokens]
options:
- --show-tokens
Show tokens in the output
git-obs login remove
Remove a Gitea credentials entry
usage: git-obs [global opts] remove [-h] name
arguments:
- name
The name of the login entry to be removed
git-obs login update
Update a Gitea credentials entry
usage: git-obs [global opts] update [-h] [--new-name NEW_NAME] [--new-url URL]
[--new-user USER] [--new-token TOKEN]
[--new-ssh-key PATH]
[--new-git-uses-http {0,1,yes,no}]
[--new-quiet {0,1,yes,no}]
[--set-as-default]
name
arguments:
- name
The name of the login entry to be updated
options:
- --new-name NEW_NAME
New name of the login entry
- --new-url URL
New Gitea URL, for example https://example.com
- --new-user USER
Gitea username
- --new-token TOKEN
Gitea access token; set to '-' to invoke a secure interactive prompt
- --new-ssh-key PATH
Path to a private SSH key
- --new-git-uses-http {0,1,yes,no}
Git uses http(s) instead of SSH
- --new-quiet {0,1,yes,no}
Mute unnecessary output when using this login entry
- --set-as-default
Set the login entry as default
git-obs meta
Manage metadata in .git/obs store
git-obs [global opts] meta
usage: git-obs [global opts] meta [-h] {info,list,pull,reset,set} ...
git-obs meta info
Resolve and print metadata about the current checkout
usage: git-obs [global opts] info [-h] [--type | --apiurl | --project |
--package | --branch | --commit | --remote |
--remote-url | --export]
options:
- --type
Print type
- --apiurl
Print apiurl
- --project
Print project
- --package
Print package
- --branch
Print branch
- --commit
Print commit
- --remote
Print remote
- --remote-url
Print remote_url
- --export
Show json objects instead of human readable text
git-obs meta list
List metadata in store
usage: git-obs [global opts] list [-h] [--branch BRANCH]
options:
- --branch BRANCH
Manage values for the specified branch (default: current branch)
git-obs meta pull
Pull metadata about the project or package from Gitea.
usage: git-obs [global opts] pull [-h]
git-obs meta reset
Reset metadata in store
usage: git-obs [global opts] reset [-h] [--branch BRANCH]
options:
- --branch BRANCH
Manage values for the specified branch (default: current branch)
git-obs meta set
Set metadata in store
usage: git-obs [global opts] set [-h] [--apiurl APIURL] [--project PROJECT]
[--package PACKAGE] [--branch BRANCH]
options:
- --apiurl APIURL
Set 'apiurl'
- --project PROJECT
Set 'project'
- --package PACKAGE
Set 'package'
- --branch BRANCH
Manage values for the specified branch (default: current branch)
git-obs pr
Manage pull requests
git-obs [global opts] pr
usage: git-obs [global opts] pr [-h]
{cancel-scheduled-merge,checkout,close,comment,create,dump,get,show,list,merge,reopen,review,search,set,show-patch} ...
git-obs pr cancel-scheduled-merge
Cancel scheduled merge of pull requests
usage: git-obs [global opts] cancel-scheduled-merge [-h] id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
git-obs pr checkout
Check out a pull request
usage: git-obs [global opts] checkout [-h] [-f] pull
arguments:
- pull
Number of the pull request
options:
- -f, --force
Reset the existing local branch to the latest state of the pull request
git-obs pr close
Close pull requests
usage: git-obs [global opts] close [-h] [-m MESSAGE] id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- -m MESSAGE, --message MESSAGE
Text of the comment
git-obs pr comment
Comment pull requests
usage: git-obs [global opts] comment [-h] [-m MESSAGE] id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- -m MESSAGE, --message MESSAGE
Text of the comment
git-obs pr create
Create a pull request
usage: git-obs [global opts] create [-h] [--title TEXT] [--description TEXT]
[--source-owner OWNER]
[--source-repo REPO]
[--source-branch BRANCH]
[--target-branch BRANCH]
options:
- --title TEXT
Pull request title
- --description TEXT
Pull request description (body)
- --source-owner OWNER
Owner of the source repo (default: derived from remote URL in local git repo)
- --source-repo REPO
Name of the source repo (default: derived from remote URL in local git repo)
- --source-branch BRANCH
Source branch (default: the current branch in local git repo)
- --target-branch BRANCH
Target branch (default: derived from the current branch in local git repo)
git-obs pr dump
Dump a pull request to disk
usage: git-obs [global opts] dump [-h] [--subdir-fmt FMT] id [id ...]
Return codes: - 0: default return code - 1-9: reserved for error states - 11: pull request(s) skipped due to no longer being open
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- --subdir-fmt FMT
Formatting string for a subdir associated with each pull request (default: '{pr.base_owner}/{pr.base_repo}/{pr.number}') Available values:
- 'pr' object which is an instance of 'osc.gitea_api.PullRequest'
- 'login_name', 'login_user' from the currently used Gitea login entry
git-obs pr get (show)
Get details about the specified pull requests
usage: git-obs [global opts] get [-h] [-p] [--timeline]
owner_repo_pull [owner_repo_pull ...]
arguments:
- owner_repo_pull
Owner, repo and pull request number (format: <owner>/<repo>#<pull-request-number>)
options:
- -p, --patch
Show patches associated with the pull requests
- --timeline
Show timelines of the pull requests
git-obs pr list
List pull requests in a repository
usage: git-obs [global opts] list [-h] [--state {open,closed,all}]
[--reviewer REVIEWERS]
[--review-state {REQUEST_REVIEW,APPROVED}]
[--target-branch TARGET_BRANCHES]
[--no-draft] [--label LABELS] [--export]
owner_repo [owner_repo ...]
arguments:
- owner_repo
Owner and repo: (format: <owner>/<repo>)
options:
- --state {open,closed,all}
State of the pull requests (default: open)
- --reviewer REVIEWERS
Filter by reviewer. Team reviewers start with '@'.
- --review-state {REQUEST_REVIEW,APPROVED}
Filter by review state. Needs to be used with ``--reviewer``.
- --target-branch TARGET_BRANCHES
Filter by target branch.
- --no-draft
Filter by draft flag. Exclude pull requests with draft flag set.
- --label LABELS
Filter by label. Can be specified multiple times.
- --export
Show json objects instead of human readable text
git-obs pr merge
Merge pull requests
usage: git-obs [global opts] merge [-h] [--now] id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- --now
Merge immediately, don't wait until all checks succeed.
git-obs pr reopen
Reopen pull requests
usage: git-obs [global opts] reopen [-h] [-m MESSAGE] id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- -m MESSAGE, --message MESSAGE
Text of the comment
git-obs pr review
Manage pull request reviews
git-obs [global opts] review
usage: git-obs [global opts] review [-h] {approve,decline,interactive} ...
git-obs pr review approve
Approve pull request reviews
usage: git-obs [global opts] approve [-h] [-m MESSAGE] [--commit COMMIT]
[--reviewer REVIEWER]
id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- -m MESSAGE, --message MESSAGE
Justification of the review state change
- --commit COMMIT
Pin the review to the specified commit
- --reviewer REVIEWER
Review on behalf of the specified reviewer that is associated to group review bot
git-obs pr review decline
Decline pull request reviews (request changes)
usage: git-obs [global opts] decline [-h] -m MESSAGE [--commit COMMIT]
[--reviewer REVIEWER]
id [id ...]
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- -m MESSAGE, --message MESSAGE
Justification of the review state change
- --commit COMMIT
Pin the review to the specified commit
- --reviewer REVIEWER
Review on behalf of the specified reviewer that is associated to group review bot
git-obs pr review interactive
Interactive review of pull requests
usage: git-obs [global opts] interactive [-h] [--reviewer REVIEWER] [id ...]
Since this is an interactive command, the program return code indicates the user choice: - 0: default return code - 1-9: reserved for error states - 10: user selected "exit" - 11: user selected "skip"
This might be useful when wrapping the command in any external review tooling, handling one review at a time.
arguments:
- id
Pull request ID in <owner>/<repo>#<number> format
options:
- --reviewer REVIEWER
Review on behalf of the specified reviewer that is associated to group review bot
git-obs pr search
Search pull requests in the whole gitea instance
usage: git-obs [global opts] search [-h] [--state {open,closed}]
[--title TITLE] [--owner OWNER]
[--label LABEL] [--assigned] [--created]
[--mentioned] [--review-requested]
[--export]
options:
- --state {open,closed}
Filter by state: open, closed (default: open)
- --title TITLE
Filter by substring in title
- --owner OWNER
Filter by owner of the repository associated with the pull requests
- --label LABEL
Filter by associated labels. Non existent labels are discarded. Can be specified multiple times.
- --assigned
Filter pull requests assigned to you
- --created
Filter pull requests created by you
- --mentioned
Filter pull requests mentioning you
- --review-requested
Filter pull requests requesting your review
- --export
Show json objects instead of human readable text
git-obs pr set
Change a pull request
usage: git-obs [global opts] set [-h] [--title TITLE]
[--description Description]
[--allow-maintainer-edit ALLOW_MAINTAINER_EDIT]
owner_repo_pull [owner_repo_pull ...]
arguments:
- owner_repo_pull
Owner, repo and pull request number (format: <owner>/<repo>#<pull-request-number>)
options:
- --title TITLE
- --description DESCRIPTION
- --allow-maintainer-edit ALLOW_MAINTAINER_EDIT
Users with write access to the base branch can also push to the pull request's head branch
git-obs pr show-patch
Show patch associated to the specified pull request
usage: git-obs [global opts] show-patch [-h] owner_repo_pull
arguments:
- owner_repo_pull
Owner, repo and pull request number (format: <owner>/<repo>#<pull-request-number>)
git-obs repo
Manage git repos
git-obs [global opts] repo
usage: git-obs [global opts] repo [-h] {clone,fork,list} ...
git-obs repo clone
Clone a git repo
usage: git-obs [global opts] clone [-h] [-b BRANCH] [-a] [-i SSH_KEY]
[--no-ssh-strict-host-key-checking]
[--directory DIRECTORY]
owner_repo [owner_repo ...]
NOTE: Some of the options may result in setting "core.sshCommand" config option in the git repository."
arguments:
- owner_repo
Owner and repo: (format: <owner>/<repo>)
options:
- -b BRANCH, --branch BRANCH
Checkout the specified branch
- -a, --anonymous
Clone anonymously via the http protocol
- -i SSH_KEY, --ssh-key SSH_KEY
Path to a private SSH key (identity file)
- --no-ssh-strict-host-key-checking
Set 'StrictHostKeyChecking no' ssh option
- --directory DIRECTORY
Clone into the given directory
git-obs repo fork
Fork a git repo
usage: git-obs [global opts] fork [-h] [--new-repo-name NEW_REPO_NAME]
owner_repo [owner_repo ...]
arguments:
- owner_repo
Owner and repo: (format: <owner>/<repo>)
options:
- --new-repo-name NEW_REPO_NAME
Name of the newly forked repo
git-obs repo list
List repos
usage: git-obs [global opts] list [-h] [--org ORG_LIST] [--user USER_LIST]
[--export]
Required permissions:
read:organization
read:user
options:
- --org ORG_LIST
List repos owned by the specified organizations
- --user USER_LIST
List repos owned by the specified users
- --export
Show json objects instead of human readable text
git-obs ssh-key
Manage public SSH keys
git-obs [global opts] ssh-key
usage: git-obs [global opts] ssh-key [-h] {add,list,remove} ...
git-obs ssh-key add
usage: git-obs [global opts] add [-h] (--key KEY | --key-path PATH)
options:
- --key KEY
SSH public key
- --key-path PATH
Path to the SSH public key
git-obs ssh-key list
usage: git-obs [global opts] list [-h]
git-obs ssh-key remove
usage: git-obs [global opts] remove [-h] id
arguments:
- id
Id of the SSH public key
git-obs staging
Manage staging projects
git-obs [global opts] staging
usage: git-obs [global opts] staging [-h] {group,remove} ...
git-obs staging group
Group multiple staging project pull requests into a target staging project pull request
usage: git-obs [global opts] group [-h] [--target TARGET] [--title TITLE]
[--fork-owner FORK_OWNER]
[--fork-branch FORK_BRANCH]
[--remove-pr-references] [--force]
[--cache-dir CACHE_DIR] [--keep-temp-dir]
pr_list [pr_list ...]
arguments:
- pr_list
List of project pull request to be merged into the target project pull request
options:
- --target TARGET
Target project pull request to modify. If not specified, a new pull request will be created.
- --title TITLE
Title of the new pull request. Defaults to 'Update packages: <pkg> [pkg] ...'. Conflicts with --target.
- --fork-owner FORK_OWNER
Owner of the fork used to create a new pull request. Defaults to the currently logged user. Conflicts with --target.
- --fork-branch FORK_BRANCH
Branch in the fork used to create a new pull request. Defaults to 'for/<target_branch>/group-YYYY-MM-DD_HH-MM-SS'. Conflicts with --target.
- --remove-pr-references
Remove 'PR:' references from the source project pull requests
- --force
Allow force-push to the branch associated with the pull request
- --cache-dir CACHE_DIR
Path to a git cache.
- --keep-temp-dir
Don't delete the temporary directory with git checkouts
git-obs staging remove
Remove package pull requests from a project pull request
usage: git-obs [global opts] remove [-h] [--close-removed] [--keep-temp-dir]
target pr_list [pr_list ...]
arguments:
- target
Project pull request to modify
- pr_list
List of package pull requests to be removed from the project pull request
options:
- --close-removed
Close pull requests after removing their references
- --keep-temp-dir
Don't delete the temporary directory with git checkouts
Author
Contributors to the osc project. See the project's GIT history for the complete list.
Distribution
The latest version of osc may be downloaded from https://github.com/openSUSE/osc/