<div class="container">
    <h1>Recommended update for osc</h1>

    <table class="table table-striped table-bordered">
        <tbody>
        <tr>
            <th>Announcement ID:</th>
            <td>SUSE-RU-2026:0702-1</td>
        </tr>
        <tr>
            <th>Release Date:</th>
            <td>2026-02-28T09:59:13Z</td>
        </tr>
        
        <tr>
            <th>Rating:</th>
            <td>moderate</td>
        </tr>
        <tr>
            <th>References:</th>
            <td>
                <ul>
                    
                    
                </ul>
            </td>
        </tr>
        
        <tr>
            <th>Affected Products:</th>
            <td>
                <ul class="list-group">
                    
                        <li class="list-group-item">Development Tools Module 15-SP7</li>
                    
                        <li class="list-group-item">openSUSE Leap 15.6</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP7</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP7</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server 15 SP7</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP7</li>
                    
                </ul>
            </td>
        </tr>
        </tbody>
    </table>

    <p>An update that  can now be installed.</p>

    


    
        <h2>Description:</h2>
    
    <p>This update for osc fixes the following issues:</p>
<p>osc was updated to 1.22.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Add &#x27;git-obs staging&#x27; commands</li>
<li>Add &#x27;--gitea-fork-org&#x27; option to &#x27;osc fork&#x27; command</li>
<li>Add &#x27;--git-branch&#x27; option to &#x27;osc fork&#x27; command</li>
<li>Add &#x27;DELETE&#x27; to &#x27;git-obs api&#x27; allowed methods</li>
<li>Add commit messages as commented lines to the template in &#x27;git-obs pr create&#x27;</li>
<li>Add filtering by label to &#x27;git-obs pr list&#x27;</li>
<li>Properly handle fork mismatch in &#x27;osc fork&#x27;</li>
<li>Change &#x27;osc build&#x27; to build from any git repo if &#x27;--alternative-project&#x27; is specified</li>
<li>Fix &#x27;osc service&#x27; for git based packages</li>
<li>Fix &#x27;git-obs pr dump&#x27; to skip the dump if the target has the same updated_at timestamp as the pull request in Gitea</li>
<li>Fix &#x27;git-obs pr dump&#x27; to do case insensitive check on owner and repo</li>
<li>Fix retrieving &#x27;arch&#x27; argument in &#x27;osc buildlog&#x27;</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Add &#x27;status&#x27; to the output of gitea_api.Git.get_submodules()</li>
<li>Add &#x27;remote&#x27; argument to gitea_api.Repo.clone_or_update()</li>
<li>Add gitea_api.common.TemporaryDirectory class that supports &#x27;delete&#x27; argument on python 3.6+</li>
<li>Add gitea_api.GitDiffGenerator class for creating submodule diffs without a git checkout</li>
<li>Add &#x27;depth&#x27; argument to gitea_api.Repo.clone() and clone_or_update()</li>
<li>Add gitea_api.StagingPullRequestWrapper class for handling staging</li>
<li>Add gitea_api.PullRequest.get_host_owner_repo_number() method</li>
<li>Make GitObsCommand.add_argument_owner_repo() and add_argument_owner_repo_pull() reusable by allowing setting &#x27;dest&#x27; argument</li>
<li>Warn if the git package doesn&#x27;t have the same branch as the parent project</li>
<li>Extend gitea_api.PullRequest with methods that work with &#x27;PR:&#x27; references</li>
<li>Support setting labels in gitea_api.PullRequest.create()</li>
<li>Fix gitea_api to use pagination instead of limit -1 everywhere</li>
<li>Remove duplicate, unused PullRequestReview class from gitea_api.pr</li>
<li>Move clone_or_update() from &#x27;git-obs pr dump&#x27; command to gitea_api.Repo</li>
<li>Change gitea_api.Repo.clone_or_update() to take &#x27;ssh_private_key_path&#x27; argument</li>
<li>Improve performance of gitea_api.IssueTimelineEntry by listing and caching requests instead of fetching them one by one</li>
<li>Make GitObsCommand.add_argument_owner_repo() and add_argument_owner_repo_pull() reusable by allowing setting &#x27;help&#x27; argument</li>
<li>Change gitea_api.Repo.clone() to stop borrowing objects when &#x27;reference&#x27; or &#x27;reference_if_able&#x27; is used</li>
<li>Fix the resulting dictionary in gitea_api.PullRequest._get_label_ids()</li>
<li>Make gitea_api.RepoExists exception more helpful by giving a hint to fork under a different name</li>
<li>Use server_diff() instead of server_diff_noex() to exit with a non-zero return code</li>
<li>Return preinstallimage.info and allow podman to use preinstallimage</li>
</ul>
</li>
</ul>
<p>Update to 1.21.0:</p>
<ul>
<li>
<p>Command-line:</p>
<ul>
<li>Modify osc subcommands to error out if they don&#x27;t work with git</li>
<li>Add &#x27;git-obs meta&#x27; commands for managing the local metadata</li>
<li>Add &#x27;git-obs meta info&#x27; command for printing resolved metadata about the current checkout</li>
<li>Add -b/--branch option to &#x27;git-obs repo clone&#x27; command</li>
<li>Add &#x27;git-obs pr dump&#x27; command to store pull request information on disk</li>
<li>Add &#x27;git-obs --quiet&#x27; option (that mutes printing gitea settings now)</li>
<li>Automatially pull meta after &#x27;git-obs repo clone&#x27;</li>
<li>Change &#x27;git-obs pr review interactive&#x27; to write &#x27;merge ok&#x27; comment instead of scheduling a merge</li>
<li>Mute stderr when creating a worktree in &#x27;git-obs pr review interactive&#x27;</li>
<li>Change &#x27;git-obs -G&#x27; to accept url to select a gitea login entry</li>
<li>Support substitutions in &#x27;osc build --root&#x27;</li>
<li>Fix crash in &#x27;osc build&#x27; when &#x27;build_repositories&#x27; in store was None</li>
<li>Fix filtering by reviewers in &#x27;git-obs pr list&#x27;</li>
<li>Update &#x27;osc rq show&#x27; command to include history comments in verbose mode</li>
</ul>
</li>
<li>
<p>Library:</p>
<ul>
<li>Refactor GitStore</li>
<li>Migrate git_scm.Store over to gitea_api.Git</li>
<li>Store buildinfo and buildconfig files in GitStore&#x27;s cache instead directly in the repo</li>
<li>Move code from &#x27;git-obs meta pull&#x27; command to GitStore.pull()</li>
<li>Improve GitStore.pull() to support reading project from project.build</li>
<li>Rephrase the error message about detached HEAD in GitStore</li>
<li>Improve GitStore&#x27;s error messages by adding instructions on how to fix missing metadata</li>
<li>Be more permissive when loading parent project_store in GitStore</li>
<li>Fix loading _manifest in a project git</li>
<li>Fix git store to check if all the required fields are present</li>
<li>Derive package name from topdir if a package is part of a project checkout</li>
<li>Change &#x27;git-obs pr review interactive&#x27; to run pager process as a context manager</li>
<li>Change obs_api.TarDiff to spawn a process extracting archives as a context manager</li>
<li>Change &#x27;commit&#x27; argument in gitea_api.Git.reset() to optional</li>
<li>Add gitea_api.Git.get_owner_repo_from_url() staticmethod</li>
<li>Add gitea_api.Git.urljoin() static method</li>
<li>Fix gitea_api.Git.get_branch_head() to raise a proper exception if the HEAD cannot be retrieved</li>
<li>Fix gitea_api.Git to work with the current remote instead of &#x27;origin&#x27;</li>
<li>Fix get_store() to throw the exception from git store if .osc directory is not present</li>
<li>Introduce GitObsRuntimeError exception and use it where appropriate</li>
<li>Fix tardiff by removing directories with shutil.rmtree() and files by os.unlink()</li>
<li>Add &#x27;quiet&#x27; option to gitea_api.Git.switch()</li>
<li>Mute stderr in git_obs.Git.lfs_cat_file()</li>
<li>Treat None flavor as "" in multibuild resolve</li>
<li>Make Token.triggered_at optional as it&#x27;s not available in the oficially released OBS code</li>
<li>Add BaseModel.from_string() and BaseModel.to_string() methods</li>
<li>Add BaseModel.from_file() and BaseModel.to_file() methods</li>
<li>Fix BaseModel to initialize from a dictionary via <strong>init</strong> instead of setattr</li>
</ul>
</li>
<li>
<p>Docs:</p>
<ul>
<li>Update docs for the new git metadata store</li>
<li>Update list of recommended gitea permissions in git-obs-quickstart</li>
</ul>
</li>
<li>
<p>Spec:</p>
<ul>
<li>Install git-obs-metadata man page</li>
</ul>
</li>
</ul>



    

    <h2>Patch Instructions:</h2>
    <p>
        To install this SUSE  update use the SUSE recommended
        installation methods like YaST online_update or "zypper patch".<br/>

        Alternatively you can run the command listed for your product:
    </p>
    <ul class="list-group">
        
            <li class="list-group-item">
                openSUSE Leap 15.6
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-2026-702=1 openSUSE-SLE-15.6-2026-702=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                Development Tools Module 15-SP7
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP7-2026-702=1</code>
                    
                    
                
            </li>
        
    </ul>

    <h2>Package List:</h2>
    <ul>
        
            
                <li>
                    openSUSE Leap 15.6 (noarch)
                    <ul>
                        
                            <li>osc-1.22.0-150600.15.9.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    Development Tools Module 15-SP7 (noarch)
                    <ul>
                        
                            <li>osc-1.22.0-150600.15.9.1</li>
                        
                    </ul>
                </li>
            
        
    </ul>

    
</div>