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 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/

Info

2025-11-11 osc Generated Python Manual