gitea

Development moved to Codeberg

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
  106. 106
  107. 107
  108. 108
  109. 109
  110. 110
  111. 111
  112. 112
  113. 113
  114. 114
  115. 115
  116. 116
  117. 117
  118. 118
  119. 119
  120. 120
  121. 121
  122. 122
  123. 123
  124. 124
  125. 125
  126. 126
  127. 127
---
date: "2021-07-20T00:00:00+00:00"
title: "RubyGems Packages Repository"
slug: "packages/rubygems"
draft: false
toc: false
menu:
  sidebar:
    parent: "packages"
    name: "RubyGems"
    weight: 110
    identifier: "rubygems"
---

# RubyGems Packages Repository

Publish [RubyGems](https://guides.rubygems.org/) packages for your user or organization.

**Table of Contents**

{{< toc >}}

## Requirements

To work with the RubyGems package registry, you need to use the [gem](https://guides.rubygems.org/command-reference/) command line tool to consume and publish packages.

## Configuring the package registry

To register the package registry edit the `~/.gem/credentials` file and add:

```ini
---
https://gitea.example.com/api/packages/{owner}/rubygems: Bearer {token}
```

| Parameter     | Description |
| ------------- | ----------- |
| `owner`       | The owner of the package. |
| `token`       | Your [personal access token]({{< relref "doc/developers/api-usage.en-us.md#authentication" >}}). |

For example:

```
---
https://gitea.example.com/api/packages/testuser/rubygems: Bearer 3bd626f84b01cd26b873931eace1e430a5773cc4
```

## Publish a package

Publish a package by running the following command:

```shell
gem push --host {host} {package_file}
```

| Parameter      | Description |
| -------------- | ----------- |
| `host`         | URL to the package registry. |
| `package_file` | Path to the package `.gem` file. |

For example:

```shell
gem push --host https://gitea.example.com/api/packages/testuser/rubygems test_package-1.0.0.gem
```

You cannot publish a package if a package of the same name and version already exists. You must delete the existing package first.

## Install a package

To install a package from the package registry you can use [Bundler](https://bundler.io) or `gem`.

### Bundler

Add a new `source` block to your `Gemfile`:

```
source "https://gitea.example.com/api/packages/{owner}/rubygems" do
  gem "{package_name}"
end
```

| Parameter         | Description |
| ----------------- | ----------- |
| `owner`           | The owner of the package. |
| `package_name`    | The package name. |

For example:

```
source "https://gitea.example.com/api/packages/testuser/rubygems" do
  gem "test_package"
end
```

Afterwards run the following command:

```shell
bundle install
```

### gem

Execute the following command:

```shell
gem install --host https://gitea.example.com/api/packages/{owner}/rubygems {package_name}
```

| Parameter         | Description |
| ----------------- | ----------- |
| `owner`           | The owner of the package. |
| `package_name`    | The package name. |

For example:

```shell
gem install --host https://gitea.example.com/api/packages/testuser/rubygems test_package
```

## Supported commands

```
gem install
bundle install
gem push
```