git-obs(1)
| GIT-OBS(1) | Generated Python Manual | GIT-OBS(1) |
NAME
git-obs
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 $XDG_CONFIG_HOME/tea/config.yml (~/.config/tea/config.yml when XDG_CONFIG_HOME is unset or empty).
- -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 file
Manage metadata files in a repo
usage: git-obs [global opts] file [-h] {maintainership} ...
git-obs file maintainership
Manage the _maintainership.json file
usage: git-obs [global opts] maintainership [-h] {migrate} ...
git-obs file maintainership migrate
Read _maintainership.json and convert it from legacy format to the current format
usage: git-obs [global opts] migrate [-h] [-i] [path]
arguments:
- path
- Path to the _maintainership.json file (default: _maintainership.json)
options:
- -i, --in-place
- Write the result back to the original file instead of printing to stdout
git-obs login
Manage configured credentials to Gitea servers
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] [--ssh-agent]
[--ssh-key-agent-pub SSH_KEY_AGENT_PUB]
[--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
- --ssh-agent
- Use ssh-agent for authentication
- --ssh-key-agent-pub SSH_KEY_AGENT_PUB
- Public SSH key signature for ssh authentication. Setting this option switches from token to ssh auth.
- --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-ssh-agent {0,1,yes,no}]
[--new-ssh-key-agent-pub NEW_SSH_KEY_AGENT_PUB]
[--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-ssh-agent {0,1,yes,no}
- Use ssh-agent for authentication
- --new-ssh-key-agent-pub NEW_SSH_KEY_AGENT_PUB
- Public SSH key signature for ssh authentication. Setting this option switches from token to ssh auth.
- --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
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
usage: git-obs [global opts] pr [-h]
{cancel-scheduled-merge,checkout,close,comment,create,dump,forward,get,show,list,merge,new-package-request,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 BRANCH_ID] [--target BRANCH_ID]
[--source-owner OWNER]
[--source-repo REPO]
[--source-branch BRANCH]
[--target-owner OWNER]
[--target-repo REPO]
[--target-branch BRANCH] [--self]
[--separate-requests] [--dry-run]
[--allow-empty]
[--allow-maintainer-edit {0,1,yes,no}]
options:
- --title TEXT
- Pull request title
- --description TEXT
- Pull request description (body)
- --source BRANCH_ID
- Source owner, repo and branch (format: <owner>/<repo>:<branch>)
- --target BRANCH_ID
- Target owner, repo and branch (format: <owner>/<repo>:<branch>, <owner>:<branch>, :<branch>)
- --self
- Use the local git repository as the target for the pull request
- --separate-requests
- Create separate pull requests for each package in the project
- --dry-run
- Do not actually create the pull request
- --allow-empty
- Allow creating a pull request even if there are no changes
- --allow-maintainer-edit {0,1,yes,no}
- Whether users with write access to the base branch can also push to the pull request's head branch (default: yes)
deprecated options
- --source-owner OWNER
- Owner of the source repo (deprecated, use --source instead)
- --source-repo REPO
- Name of the source repo (deprecated, use --source instead)
- --source-branch BRANCH
- Source branch (deprecated, use --source instead)
- --target-owner OWNER
- Target owner (deprecated, use --target instead)
- --target-repo REPO
- Target repo (deprecated, use --target instead)
- --target-branch BRANCH
- Target branch (deprecated, use --target instead)
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
In addition to the return codes, a STATUS file is written in each target directory, the values are: RUNNING, FAILED, SUCCESS
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:
'{owner}/{repo}/{number}') Available values:
- 'owner', 'repo' and 'number' parsed from the specified pull request ID
- '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 forward
Forward sources from one branch to another (Fork -> Sync -> Push -> PR)
usage: git-obs [global opts] forward [-h] [--workdir WORKDIR]
[--no-cleanup]
[--dry-run] [--source-url SOURCE_URL]
[--title TITLE]
[--description DESCRIPTION] [-e]
--mode {merge,merge-unrelated,fast-forward,sync,auto}
owner_repo source_branch target_branch
arguments:
- owner_repo
- Owner and repo: (format: <owner>/<repo>)
- source_branch
- Source branch name (e.g. factory)
- target_branch
- Target branch name (e.g. slfo-main)
options:
- --workdir WORKDIR
- Working directory for git operations (default: temporary directory)
- --no-cleanup
- Do not remove the temporary directory after completion
- --dry-run
- Do not actually create the pull request or push changes
- --source-url SOURCE_URL
- URL of the source git repository (if different from upstream)
- --title TITLE
- Pull request title
- --description DESCRIPTION
- Pull request description (body)
- -e, --edit
- Open an editor to edit the pull request title and description.
- --mode {merge,merge-unrelated,fast-forward,sync,auto}
- merge: Merge the source branch into the target branch, remove any extra files not found in the target. merge-unrelated: Same as merge, but with merging unrelated histories allowed. Consider using other modes first. fast-forward: Fast-forward changes, don't create any merge commit. sync: Create a new commit that synchronizes the contents of the branch with the source branch. auto: Use fast-forward if possible, merge otherwise.
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]
[--source-owner SOURCE_OWNERS] [--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.
- --source-owner SOURCE_OWNERS
- Filter by source owner.
- --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 new-package-request
Request a new package
usage: git-obs [global opts] new-package-request [-h] [-m MESSAGE]
-t TARGET
[packages ...]
Create a new package request issue in the target repository.
arguments:
- packages
- Package(s) to add (format: <owner>/<repo>:<branch>). If omitted, the current checkout is used. Specify the most significant packages first. (format: <owner>/<repo>:<branch>)
options:
- -m MESSAGE, --message MESSAGE
- Additional information (e.g., links to bug trackers) that justify adding the package(s).
- -t TARGET, --target TARGET
- Target repository and branch (format: <owner>/<repo>:<branch>) (format: <owner>/<repo>:<branch>)
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
usage: git-obs [global opts] review [-h]
{approve,cancel-request,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 cancel-request
Cancel a request for review of pull request
usage: git-obs [global opts] cancel-request [-h] [-n] [-a] [-x
EXCLUDE]
owner_repo_pull [user ...]
arguments:
- owner_repo_pull
- Owner, repo and pull request number (format: <owner>/<repo>#<pull-request-number>)
- user
- User with pending review request
options:
- -n, --dry-run
- Don't do any action, only report what should be done
- -a, --all
- Cancel all pending review requests
- -x EXCLUDE, --exclude EXCLUDE
- Users to ignore when cancelling review requests.
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
usage: git-obs [global opts] repo [-h] {clone,fork,init,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]
[--target-owner OWNER]
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
- --target-owner OWNER
- Target owner (default: user's organization)
git-obs repo init
Init a git repo
usage: git-obs [global opts] init [-h] [-a] [-t TEMPLATE] [-i
SSH_KEY]
[--no-ssh-strict-host-key-checking]
path
Initialize or update a package git repo, setting .gitignore, .gitattributes and other files from a template.
arguments:
- path
- Destination path to a directory which needs to be initialized. Default is current working directory
options:
- -a, --anonymous
- Clone anonymously via the http protocol
- -t TEMPLATE, --template TEMPLATE
- Path to a template directory url to git repository
- -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
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
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
usage: git-obs [global opts] staging [-h] {group,remove,search} ...
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]
[--target-repo TARGET_REPO]
[--source-owner SOURCE_OWNER]
[--no-ssh-strict-host-key-checking]
[--cache-dir CACHE_DIR]
[pr_id ...]
arguments:
- pr_id
- List of project pull request to be merged into the target project pull request (format: <owner>/<repo>#<pull-request-number>)
options:
- --target TARGET
- Target project pull request to modify (format: <owner>/<repo>#<pull-request-number>). 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
- --target-repo TARGET_REPO
- Target repo (format: <owner>/<repo>). Requires --source-owner.
- --source-owner SOURCE_OWNER
- Source owner (e.g. a devel project)
- --no-ssh-strict-host-key-checking
- Set 'StrictHostKeyChecking no' ssh option
- --cache-dir CACHE_DIR
- Path to a git cache.
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_id [pr_id ...]
arguments:
- target
- Project pull request to modify (format: <owner>/<repo>#<pull-request-number>)
- pr_id
- List of package pull requests to be removed from the project pull request (format: <owner>/<repo>#<pull-request-number>)
options:
- --close-removed
- Close pull requests after removing their references
- --keep-temp-dir
- Don't delete the temporary directory with git checkouts
git-obs staging search
Search staging pull requests.
usage: git-obs [global opts] search [-h] --type
{BACKLOG,INPROGRESS,ONHOLD}
[--package-review-state {APPROVED,ALL}]
[--target-branch TARGET_BRANCHES]
[--export]
owner_repo
arguments:
- owner_repo
- Owner and repo: (format: <owner>/<repo>)
options:
- --type {BACKLOG,INPROGRESS,ONHOLD}
- Filter by review state.
- --package-review-state {APPROVED,ALL}
- Filter by review state on *all* referenced *package* PRs.
- --target-branch TARGET_BRANCHES
- Filter by target branch.
- --export
- Show json objects instead of human readable text
DISTRIBUTION
The latest version of osc may be downloaded from https://github.com/openSUSE/osc/
| 2026-10-14 | osc |
