32
41
Fork
You've already forked website
52

Forgejo monthly update - February 2025 #564

Merged
earl-warren merged 10 commits from :2025-02 into main 2025年03月19日 14:30:25 +01:00

Close #556

Preview: https://forgejo.codeberg.page/@pull_564/news & https://forgejo.codeberg.page/@pull_564/2025-02-monthly-update/


Room announcement

@room the [monthly update was published](https://forgejo.org/2025-02-monthly-update/) ✨ It is a high level overview of the project activities.
FOSDEM impressions were published and feedback is being collected regarding migrations to Forgejo and commercial usages of Forgejo. code.forgejo.org got hit by a DDoS that was successfully mitigated. A new localization component is now in use and work on federation continued.

Toot

The #Forgejo monthly update was published ✨ It is a high level overview of the project activities.
FOSDEM impressions were published and feedback is being collected regarding migrations to Forgejo and commercial usages of Forgejo. code.forgejo.org got hit by a DDoS that was successfully mitigated. A new localization component is now in use and work on federation continued.
https://forgejo.org/2025-02-monthly-update/

It is the first time when I user forgejo-curl.sh so I'm not sure if and how I could have done this without logging in twice.

since='2025年02月01日T00%3A00%3A00Z'
before='2025年03月01日T00%3A00%3A00Z'
(
	forgejo-curl.sh logout
	forgejo-curl.sh --token {codeberg_org_token} login https://codeberg.org
	
 for repo in codeberg.org/api/v1/repos/forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions} ; do
 forgejo-curl.sh api_json "https://${repo}/issues/comments?since=${since}&before=${before}" | jq -r '.[] | .user.login'
 forgejo-curl.sh api_json "https://${repo}/issues?limit=50&since=${since}&before=${before}" | jq -r '.[] | .user.login'
 done
 
 forgejo-curl.sh logout
 forgejo-curl.sh --token {code_forgejo_org_token} login https://code.forgejo.org
 
 for repo in code.forgejo.org/api/v1/repos/forgejo/{runner,end-to-end,act,lxc-helpers,forgejo-curl} code.forgejo.org/api/v1/repos/forgejo-helm/forgejo-helm code.forgejo.org/api/v1/repos/actions/{cascading-pr,setup-forgejo,forgejo-release,ovh-dns-update} ; do
 forgejo-curl.sh api_json "https://${repo}/issues/comments?since=${since}&before=${before}" | jq -r '.[] | .user.login'
 forgejo-curl.sh api_json "https://${repo}/issues?limit=50&since=${since}&before=${before}" | jq -r '.[] | .user.login'
 done
 
 forgejo-curl.sh logout
) | sort -u | grep -v -e '^translate$' -e '^Ghost$' -e '^forgejo-' -e '^thefox$' -e '^end-to-end$' -e '^cascading-pr$' -e '^viceice-bot$'| sed -e 's|^|- https://codeberg.org/|'
Close https://codeberg.org/forgejo/website/issues/556 Preview: https://forgejo.codeberg.page/@pull_564/news & https://forgejo.codeberg.page/@pull_564/2025-02-monthly-update/ - [x] draft the toot & the room announcement - [x] verify there is no TBD left - [x] verify all reviews were resolved - [x] publish - [x] toot (pin & unpin the previous one): https://floss.social/@forgejo/114190014837558571 - [x] room announcement: https://matrix.to/#/!qjPHwFPdxhpLkXMkyP:matrix.org/$wusXgTb8SLDIjiJ_cn5h76ktaRJSKK4b1JLzLPzg-rk?via=matrix.org&via=tchncs.de&via=envs.net --- Room announcement ``` @room the [monthly update was published](https://forgejo.org/2025-02-monthly-update/) ✨ It is a high level overview of the project activities. FOSDEM impressions were published and feedback is being collected regarding migrations to Forgejo and commercial usages of Forgejo. code.forgejo.org got hit by a DDoS that was successfully mitigated. A new localization component is now in use and work on federation continued. ``` Toot ``` The #Forgejo monthly update was published ✨ It is a high level overview of the project activities. FOSDEM impressions were published and feedback is being collected regarding migrations to Forgejo and commercial usages of Forgejo. code.forgejo.org got hit by a DDoS that was successfully mitigated. A new localization component is now in use and work on federation continued. https://forgejo.org/2025-02-monthly-update/ ``` --- It is the first time when I user `forgejo-curl.sh` so I'm not sure if and how I could have done this without logging in twice. ```sh since='2025年02月01日T00%3A00%3A00Z' before='2025年03月01日T00%3A00%3A00Z' ( forgejo-curl.sh logout forgejo-curl.sh --token {codeberg_org_token} login https://codeberg.org for repo in codeberg.org/api/v1/repos/forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions} ; do forgejo-curl.sh api_json "https://${repo}/issues/comments?since=${since}&before=${before}" | jq -r '.[] | .user.login' forgejo-curl.sh api_json "https://${repo}/issues?limit=50&since=${since}&before=${before}" | jq -r '.[] | .user.login' done forgejo-curl.sh logout forgejo-curl.sh --token {code_forgejo_org_token} login https://code.forgejo.org for repo in code.forgejo.org/api/v1/repos/forgejo/{runner,end-to-end,act,lxc-helpers,forgejo-curl} code.forgejo.org/api/v1/repos/forgejo-helm/forgejo-helm code.forgejo.org/api/v1/repos/actions/{cascading-pr,setup-forgejo,forgejo-release,ovh-dns-update} ; do forgejo-curl.sh api_json "https://${repo}/issues/comments?since=${since}&before=${before}" | jq -r '.[] | .user.login' forgejo-curl.sh api_json "https://${repo}/issues?limit=50&since=${since}&before=${before}" | jq -r '.[] | .user.login' done forgejo-curl.sh logout ) | sort -u | grep -v -e '^translate$' -e '^Ghost$' -e '^forgejo-' -e '^thefox$' -e '^end-to-end$' -e '^cascading-pr$' -e '^viceice-bot$'| sed -e 's|^|- https://codeberg.org/|' ```
First draft of February 2025 monthly update (mainly the snippets from #556 ).
Some checks failed
pr / preview (pull_request_target) Failing after 35s
04b5e862f2
Author
Member
Copy link

Besides putting together the snippets snippets from #556 I've added 'Releases' and 'Federation' sections

Besides putting together the snippets snippets from #556 I've added 'Releases' and 'Federation' sections
@ -0,0 +17,4 @@
There have been meetings with other projects that are considering to move to Forgejo or became curious about the project. There has been more in-depths meeting with the people at Fedora and talks about future collaboration. Two Forgejo developers have been invited to dinner by Fedora, thank you for that!
You can find a [discussion issue with more impressions from FOSDEM](https://codeberg.org/forgejo/discussions/issues/290).
Author
Member
Copy link

I would personally remove issue from a discussion issue with.

I would personally remove `issue` from `a discussion issue with`.
floss4good marked this conversation as resolved
@ -0,0 +62,4 @@
## DDoS mitigation
The mitigation [of this month DDoS](https://codeberg.org/forgejo/discussions/issues/297) was hand made. It was surprising to discover that [Traefik](https://traefik.io/), the reverse proxy used by the k8s cluster hosting code.forgejo.org, does not provide a method to compute and block the top most used IP ranges. It is a radical but effective measure, a practical way to keep the service afloat until the DDoS goes away.
Author
Member
Copy link

Instead of The mitigation of this month DDoS I would say something like The mitigation of the above mentioned DDoS and I would also remove the link (it is already included in the previous section).

Instead of `The mitigation of this month DDoS` I would say something like `The mitigation of the above mentioned DDoS` and I would also remove the link (it is already included in the previous section).
Contributor
Copy link

Agreed.

Agreed.
floss4good marked this conversation as resolved
Owner
Copy link

At this point the script may need the before parameter set.

At this point the script may need the `before` parameter set.
Author
Member
Copy link

It will for sure need the before parameter (I admit that just before creating the PR I realized that I should also update the script and didn't even tried to run it).

It will for sure need the `before` parameter (I admit that just before creating the PR I realized that I should also update the script and didn't even tried to run it).
@ -0,0 +84,4 @@
## Sustainability
[NLnet](https://nlnet.nl/), a dutch stichting devoted to the support of free/libre software development, agreed to extending a previous grant for Forgejo by a few months and repurpose the leftover budget. An [amendment workplan](https://codeberg.org/forgejo/sustainability/src/commit/22c15e2ef92585259c4c0000286845f1a160caef/2022-12-01-nlnet/2025-02-07-extended-workplan.md) was agreed on and several contributors started working on it.
Author
Member
Copy link

The typos checker is not happy with stichting (it is a dutch word, after all).
Can I change it with foundation?

The typos checker is not happy with `stichting` (it is a dutch word, after all). Can I change it with `foundation`?
Contributor
Copy link

agreed to extending a previous grant for Forgejo

should be

agreed to extend a previous grant for Forgejo

> agreed to extending a previous grant for Forgejo should be > agreed to extend a previous grant for Forgejo
floss4good marked this conversation as resolved
Replace 'stichting' with 'foundation' + small adjustment.
All checks were successful
pr / preview (pull_request_target) Successful in 1m16s
0ed251d5b6
Collaborator
Copy link
Preview ready: https://forgejo.codeberg.page/@pull_564/ https://forgejo.codeberg.page/@pull_564/2025-02-monthly-update/ https://forgejo.codeberg.page/@pull_564/tag/report/6/ https://forgejo.codeberg.page/@pull_564/tag/news/7/
Author
Member
Copy link

I wanted to prepare the list of contributors for February but I have some questions regarding the script.

First of all, why is the time from since timestamp added as 'T00:00:02+00:00'?
I mean, is there a reason for those 2 seconds?

Secondly, concerning the issues list, it seems that it is paginated and by default it uses a page size of 30; so I'm afraid that not all the issues are returned if there was a lot of activity during a given month.

I wanted to prepare the list of contributors for February but I have some questions regarding the script. First of all, why is the time from `since` timestamp added as 'T00:00:02+00:00'? I mean, is there a reason for those 2 seconds? Secondly, concerning the issues list, it seems that it is paginated and by default it uses a page size of 30; so I'm afraid that not all the issues are returned if there was a lot of activity during a given month.
earl-warren requested changes 2025年03月17日 09:10:05 +01:00
Dismissed
earl-warren left a comment
Copy link

I learned about Forgejo while reviewing the report. It reads well, just a few nits 👍

I learned about Forgejo while reviewing the report. It reads well, just a few nits 👍
@ -0,0 +21,4 @@
## Moving to Forgejo
During FOSDEM, we have learned about many projects that are considering or planning a migration to Forgejo, but are blocked due to various aspects. These range from missing features of various extent to the need of help setting up or planning the migration. To help keep in touch with interested projects, coordinating migration assistance and tracking necessary additions to Forgejo, a [dedicated repository for migrations to Forgejo](https://codeberg.org/forgejo-contrib/moving-to-forgejo/) has been set up.
Contributor
Copy link

I suggest removing:

"of various extent"

I suggest removing: > "of various extent"
Author
Member
Copy link

Removed.

Removed.
floss4good marked this conversation as resolved
@ -0,0 +27,4 @@
## Forgejo for Enterprise
There is high interest in using a simple and lightweight Git forge for commercial projects. During FOSDEM, we have been surprised to learn about quite some big companies ("off the recording") using Forgejo. However, many potential users are hesitating due to the perceived difficulty in finding commercial support for the software.
Contributor
Copy link

"off the recording"

should be

"off the record"

> "off the recording" should be > "off the record"
Author
Member
Copy link

I also noticed this, but since it was enclosed in quotes I thought it might be on purpose.

I also noticed this, but since it was enclosed in quotes I thought it might be on purpose.
Contributor
Copy link

Not being a native English speaker, I have no strong feelings on the matter 😁

Not being a native English speaker, I have no strong feelings on the matter 😁
Author
Member
Copy link

I'm also not a native English speaker, so I guess someone else should decide on this.

I'm also not a native English speaker, so I guess someone else should decide on this.
Contributor
Copy link

It is a minor thing though: the meaning is clear 😁

It is a minor thing though: the meaning is clear 😁
earl-warren marked this conversation as resolved
@ -0,0 +29,4 @@
There is high interest in using a simple and lightweight Git forge for commercial projects. During FOSDEM, we have been surprised to learn about quite some big companies ("off the recording") using Forgejo. However, many potential users are hesitating due to the perceived difficulty in finding commercial support for the software.
Forgejo's ecosystem has several advantages to enterprise customers. Contrary to competing software such as the fully proprietary GitHub, the open core GitLab and [Gitea](https://codeberg.org/forgejo/discussions/issues/102), there is no vendor lock in for Forgejo to a single vendor. There is an inventory of [professional service providers](https://codeberg.org/forgejo/professional-services/issues) that slowly evolve to an ecosystem where Forgejo users can freely choose from depending on their needs and satisfaction.
Contributor
Copy link

no vendor lock in for Forgejo to a single vendor.

I suggest

is not under the control of a single organization.

> no vendor lock in for Forgejo to a single vendor. I suggest > is not under the control of a single organization.
Contributor
Copy link

slowly evolve

should be

slowly evolves

> slowly evolve should be > slowly evolves
Author
Member
Copy link

I suggest

is not under the control of a single organization.

How about

there is no vendor lock in for Forgejo since is not under the control of a single organization.

Does this sounds better?

> I suggest > > > is not under the control of a single organization. How about > there is no vendor lock in for Forgejo since is not under the control of a single organization. Does this sounds better?
Contributor
Copy link

Yes!

Yes!
earl-warren marked this conversation as resolved
@ -0,0 +31,4 @@
Forgejo's ecosystem has several advantages to enterprise customers. Contrary to competing software such as the fully proprietary GitHub, the open core GitLab and [Gitea](https://codeberg.org/forgejo/discussions/issues/102), there is no vendor lock in for Forgejo to a single vendor. There is an inventory of [professional service providers](https://codeberg.org/forgejo/professional-services/issues) that slowly evolve to an ecosystem where Forgejo users can freely choose from depending on their needs and satisfaction.
However, these advantages are not yet clearly used to attract customers, and open questions about the influence of business interest have to be discussed. A discussion issue about [Forgejo for enterprise](https://codeberg.org/forgejo/discussions/issues/308) has been created for this purpose, tracking the status quo and potential improvements.
Contributor
Copy link

, tracking the status quo and potential improvements.

I suggest this is replaced with:

to track improvement ideas.

The "status quo" suggests something is blocking progress somewhere, which is not the case. Unless I missed something 😁

> , tracking the status quo and potential improvements. I suggest this is replaced with: > to track improvement ideas. The "status quo" suggests something is blocking progress somewhere, which is not the case. Unless I missed something 😁
@ -0,0 +33,4 @@
However, these advantages are not yet clearly used to attract customers, and open questions about the influence of business interest have to be discussed. A discussion issue about [Forgejo for enterprise](https://codeberg.org/forgejo/discussions/issues/308) has been created for this purpose, tracking the status quo and potential improvements.
If you are using Forgejo for commercial purpose, it might help us a lot if you (ask if you can) publicly write about your case as a success story. Let us know in the issue.
Contributor
Copy link

This sentence reads funny. I suggest replacing with:

If you are using Forgejo for commercial purpose, let us know about your use case.

This sentence reads funny. I suggest replacing with: > If you are using Forgejo for commercial purpose, let us know about your use case.
Author
Member
Copy link

I think @fnetX wanted to insist a little bit on the fact that one might need to first make some lobby before their employer agrees to make their story public; and even that effort would be appreciated.

I think @fnetX wanted to insist a little bit on the fact that one might need to first make some lobby before their employer agrees to make their story public; and even that effort would be appreciated.
earl-warren marked this conversation as resolved
@ -0,0 +41,4 @@
When code.forgejo.org timedout for the first time on that day, it was thought to be excessive crawling to be blocked, like a number of others in the past months. And indeed, such a crawler was quickly discovered by looking at the logs. It was not obeying `robots.txt` and did not identify itself with a proper `User-Agent` header. A small range of IP addresses was added to the existing block list.
When code.forgejo.org timedout again that same day, it was suspected that some IPs of the range were missed. However, after analyzing the logs, it appeared that the large number of requests did not originate from a small number of IP addressed: they were coming from thousands of them.
Contributor
Copy link

s/small number of IP addressed/small number of IP addresses/

s/small number of IP addressed/small number of IP addresses/
floss4good marked this conversation as resolved
@ -0,0 +49,4 @@
- The DDoS happened in waves, a few hours apart.
- A wave had from 10,000 to 50,000 unique IPs, each sending an average of two requests.
- Between 200,000 and 300,000 unique IPs sent request on a given day.
Contributor
Copy link

s/sent request on/sent requests on/

s/sent request on/sent requests on/
floss4good marked this conversation as resolved

helm chart had 4 bugfix releases, two for v11 and two for v7

helm chart had 4 bugfix releases, two for v11 and two for v7
Author
Member
Copy link

I added a sentence about Forgejo Helm chart releases within the 'Releases' section.

I added a sentence about Forgejo Helm chart releases within the 'Releases' section.
viceice approved these changes 2025年03月17日 13:25:07 +01:00
Dismissed
Author
Member
Copy link

Regarding the script for generating the list of contributors, I would do it like this:

since='2025年02月01日T00%3A00%3A00%2B00%3A00'
before='2025年03月01日T00%3A00%3A00%2B00%3A00'
(
 for repo in codeberg.org/api/v1/repos/forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions} code.forgejo.org/api/v1/repos/forgejo/{runner,end-to-end,act,lxc-helpers,forgejo-curl} code.forgejo.org/api/v1/repos/forgejo-helm/forgejo-helm code.forgejo.org/api/v1/repos/actions/{cascading-pr,setup-forgejo,forgejo-release,ovh-dns-update} ; do
 forgejo-curl.sh --verbose --debug api_json "https://${repo}/issues/comments?since=${since}&before=${before}" | jq -r '.[] | .user.login'
 forgejo-curl.sh --verbose --debug api_json "https://${repo}/issues?since=${since}&before=${before}" | jq -r '.[] | .user.login'
 done
) | sort -u | grep -v -e '^translate$' -e '^Ghost$' -e '^forgejo-' -e '^thefox$' -e '^end-to-end$' -e '^cascading-pr$' -e '^viceice-bot$'| sed -e 's|^|- https://codeberg.org/|'

So between 2025年02月01日T00:00:00+00:00 and 2025年03月01日T00:00:00+00:00
I would also try with Z offset instead of +00:00 in order to simplify it a little bit.

However, I have the following concerns:

  1. Concerning the issues list, as also mentioned 2 days ago, it seems that it is paginated and by default it uses a page size of 30 (meaning that it might happen to not return all of them).
  2. The since and before parameters are mapped to UpdatedAfterUnix respectively UpdatedBeforeUnix search options. This means that if one created an issue few months ago (and did not had any other activity meanwhile) and someone adds a comment to that issue during the period of interest, the author will still end up in the contributors list. Right?!

Moreover, don't know if I am doing something wrong or some limitations were added after the DDoS issues, but when I run the script I get 401 errors for repositories from code.forgejo.org.

If someone else wants to just prepare the list without answering all my questions I don't mind.

Regarding the script for generating the list of contributors, I would do it like this: ```sh since='2025年02月01日T00%3A00%3A00%2B00%3A00' before='2025年03月01日T00%3A00%3A00%2B00%3A00' ( for repo in codeberg.org/api/v1/repos/forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions} code.forgejo.org/api/v1/repos/forgejo/{runner,end-to-end,act,lxc-helpers,forgejo-curl} code.forgejo.org/api/v1/repos/forgejo-helm/forgejo-helm code.forgejo.org/api/v1/repos/actions/{cascading-pr,setup-forgejo,forgejo-release,ovh-dns-update} ; do forgejo-curl.sh --verbose --debug api_json "https://${repo}/issues/comments?since=${since}&before=${before}" | jq -r '.[] | .user.login' forgejo-curl.sh --verbose --debug api_json "https://${repo}/issues?since=${since}&before=${before}" | jq -r '.[] | .user.login' done ) | sort -u | grep -v -e '^translate$' -e '^Ghost$' -e '^forgejo-' -e '^thefox$' -e '^end-to-end$' -e '^cascading-pr$' -e '^viceice-bot$'| sed -e 's|^|- https://codeberg.org/|' ``` So between `2025年02月01日T00:00:00+00:00` and `2025年03月01日T00:00:00+00:00` I would also try with `Z` offset instead of `+00:00` in order to simplify it a little bit. However, I have the following concerns: 1. Concerning the issues list, as also mentioned 2 days ago, it seems that it is paginated and by default it uses a page size of 30 (meaning that it might happen to not return all of them). 2. The `since` and `before` parameters are mapped to `UpdatedAfterUnix` respectively `UpdatedBeforeUnix` search options. This means that if one created an issue few months ago (and did not had any other activity meanwhile) and someone adds a comment to that issue during the period of interest, the author will still end up in the contributors list. Right?! Moreover, don't know if I am doing something wrong or some limitations were added after the DDoS issues, but when I run the script I get 401 errors for repositories from code.forgejo.org. If someone else wants to just prepare the list without answering all my questions I don't mind.
Contributor
Copy link

Moreover, don't know if I am doing something wrong or some limitations were added after the DDoS issues, but when I run the script I get 401 errors for repositories from code.forgejo.org

You could get 403 or 429 but 401 suggests a token is not right. You can use curl instead of forgejo-curl.sh api_json. There is no added value there.

> Moreover, don't know if I am doing something wrong or some limitations were added after the DDoS issues, but when I run the script I get 401 errors for repositories from code.forgejo.org You could get 403 or 429 but 401 suggests a token is not right. You can use `curl` instead of `forgejo-curl.sh api_json`. There is no added value there.
Contributor
Copy link

Concerning the issues list, as also mentioned 2 days ago, it seems that it is paginated and by default it uses a page size of 30 (meaning that it might happen to not return all of them).

Correct. This shell snippet is not very good.

The since and before parameters are mapped to UpdatedAfterUnix respectively UpdatedBeforeUnix search options. This means that if one created an issue few months ago (and did not had any other activity meanwhile) and someone adds a comment to that issue during the period of interest, the author will still end up in the contributors list. Right?!

Right. It would be better to further filter on the creation date, maybe with jq?

> Concerning the issues list, as also mentioned 2 days ago, it seems that it is paginated and by default it uses a page size of 30 (meaning that it might happen to not return all of them). Correct. This shell snippet is not very good. > The since and before parameters are mapped to UpdatedAfterUnix respectively UpdatedBeforeUnix search options. This means that if one created an issue few months ago (and did not had any other activity meanwhile) and someone adds a comment to that issue during the period of interest, the author will still end up in the contributors list. Right?! Right. It would be better to further filter on the creation date, maybe with jq?
Author
Member
Copy link

You could get 403 or 429 but 401 suggests a token is not right.

The token was indeed made for codeberg.org. So before seeing you comment I already tried to logout and login again with a code.forgejo.org token; after this 401 was returned for codeberg.org repositories. Therefore I don't know how similar scripts (I started with the one from the previous monthly update PR) worked for both sites, using a single token. I can of course workaround this by first getting the list from codeberg.org, logout and login with the second token and then also get the list from code.forgejo.org.

> You could get 403 or 429 but 401 suggests a token is not right. The token was indeed made for codeberg.org. So before seeing you comment I already tried to logout and login again with a code.forgejo.org token; after this 401 was returned for codeberg.org repositories. Therefore I don't know how similar scripts (I started with the one from the previous monthly update PR) worked for both sites, using a single token. I can of course workaround this by first getting the list from codeberg.org, logout and login with the second token and then also get the list from code.forgejo.org.
Add list of contributors.
All checks were successful
pr / preview (pull_request_target) Successful in 2m28s
8715919429
Author
Member
Copy link

Ok... for the moment I used the approach with 2 tokens (one for codeberg.org and the other for code.forgejo.org) in order to prepare the list of February contributors.


@earl-warren wrote in #564 (comment):

Right. It would be better to further filter on the creation date, maybe with jq?

I'm not sure this will help; for the moment I will just ignore this and maybe take a closer look tomorrow or some other day.
Maybe it would also be better to continue this discussion in a separate item.

Ok... for the moment I used the approach with 2 tokens (one for codeberg.org and the other for code.forgejo.org) in order to prepare the list of February contributors. --- @earl-warren wrote in https://codeberg.org/forgejo/website/pulls/564#issuecomment-3082333: > Right. It would be better to further filter on the creation date, maybe with jq? I'm not sure this will help; for the moment I will just ignore this and maybe take a closer look tomorrow or some other day. Maybe it would also be better to continue this discussion in a separate item.
@ -0,0 +94,4 @@
Forgejo is a **community of people** who contribute in an inclusive environment. We forge on an equal footing, by reporting a bug, voicing an idea in the chatroom or implementing a new feature. The following list of contributors is meant to reflect this diversity and acknowledge all contributions since the last monthly report was published. If you are missing, please [ask for an update](https://codeberg.org/forgejo/website/issues/new).
- https://codeberg.org/0ko
Author
Member
Copy link

Please note that I have some concerns regarding the correctness of this list, as already mentioned in this comment.

Please note that I have some concerns regarding the correctness of this list, as already mentioned in [this comment](https://codeberg.org/forgejo/website/pulls/564#issuecomment-3082247).
Contributor
Copy link

@floss4good wrote in #564 (comment):

You could get 403 or 429 but 401 suggests a token is not right.

The token was indeed made for codeberg.org. So before seeing you comment I already tried to logout and login again with a code.forgejo.org token; after this 401 was returned for codeberg.org repositories. Therefore I don't know how similar scripts (I started with the one from the previous monthly update PR) worked for both sites, using a single token. I can of course workaround this by first getting the list from codeberg.org, logout and login with the second token and then also get the list from code.forgejo.org.

I was using the script without being logged in: there is no need for a token. This is why it worked for both sites.

@floss4good wrote in https://codeberg.org/forgejo/website/pulls/564#issuecomment-3082364: > > You could get 403 or 429 but 401 suggests a token is not right. > > The token was indeed made for codeberg.org. So before seeing you comment I already tried to logout and login again with a code.forgejo.org token; after this 401 was returned for codeberg.org repositories. Therefore I don't know how similar scripts (I started with the one from the previous monthly update PR) worked for both sites, using a single token. I can of course workaround this by first getting the list from codeberg.org, logout and login with the second token and then also get the list from code.forgejo.org. I was using the script without being logged in: there is no need for a token. This is why it worked for both sites.
Owner
Copy link

Regarding API pagination, you can apply limit=50 to the URLs to get slightly more without implementing pagination in the script.

Regarding API pagination, you can apply `limit=50` to the URLs to get slightly more without implementing pagination in the script.
Owner
Copy link

Here's a patch that includes Weblate-only contributors: 0ko/forgejo-website@fa559376cd

Note that due to different sorting some entries are moved around, causing the - lines. Feel free to pipe it back to the other sorter before applying.

Here's a patch that includes Weblate-only contributors: https://codeberg.org/0ko/forgejo-website/commit/fa559376cdca2c5064c8444bb032997a40c7e5aa Note that due to different sorting some entries are moved around, causing the `-` lines. Feel free to pipe it back to the other sorter before applying.
Include 3 extra contributors (after increasing issues limit to 50).
All checks were successful
pr / preview (pull_request_target) Successful in 1m10s
17e0a6e44c
Author
Member
Copy link

I was using the script without being logged in: there is no need for a token. This is why it worked for both sites.

The reason for which I logged in is that when I tried without it, I got an error (and from the logs I can see it tries to read the header from ~/.forgejo-curl/header-token):

curl: option -H: error encountered when reading a file
user@host:~> forgejo-curl.sh --verbose --debug api_json "https://codeberg.org/api/v1/repos/forgejo/forgejo/issues"
+ PS4='${BASH_SOURCE[0]}:$LINENO: ${FUNCNAME[0]}: '
/usr/local/bin/forgejo-curl.sh:272: main: true
/usr/local/bin/forgejo-curl.sh:273: main: case "1ドル" in
/usr/local/bin/forgejo-curl.sh:323: main: shift
/usr/local/bin/forgejo-curl.sh:324: main: api_json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
/usr/local/bin/forgejo-curl.sh:63: api_json: api -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
/usr/local/bin/forgejo-curl.sh:59: api: client -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
/usr/local/bin/forgejo-curl.sh:102: client: log_verbose curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
/usr/local/bin/forgejo-curl.sh:32: log_verbose: true
/usr/local/bin/forgejo-curl.sh:33: log_verbose: log curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
/usr/local/bin/forgejo-curl.sh:24: log: echo curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
/usr/local/bin/forgejo-curl.sh:103: client: curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues
curl: option -H: error encountered when reading a file
curl: try 'curl --help' or 'curl --manual' for more information
/usr/local/bin/forgejo-curl.sh:104: client: fatal_error
/usr/local/bin/forgejo-curl.sh:42: fatal_error: log_error
/usr/local/bin/forgejo-curl.sh:28: log_error: log
/usr/local/bin/forgejo-curl.sh:24: log: echo
/usr/local/bin/forgejo-curl.sh:43: fatal_error: true
/usr/local/bin/forgejo-curl.sh:44: fatal_error: exit 1
user@host:~> 

Regarding API pagination, you can apply limit=50 to the URLs to get slightly more without implementing pagination in the script.

To be honest a list of 174 contributors is already quite long (for a blog post) from my point of view; however, if I use limit=50 only 3 extra lines are added (so I included them).


Here's a patch that includes Weblate-only contributors: fa559376cd

Done.

> I was using the script without being logged in: there is no need for a token. This is why it worked for both sites. The reason for which I logged in is that when I tried without it, I got an error (and from the logs I can see it tries to read the header from ~/.forgejo-curl/header-token): <details><summary>curl: option -H: error encountered when reading a file</summary> ``` user@host:~> forgejo-curl.sh --verbose --debug api_json "https://codeberg.org/api/v1/repos/forgejo/forgejo/issues" + PS4='${BASH_SOURCE[0]}:$LINENO: ${FUNCNAME[0]}: ' /usr/local/bin/forgejo-curl.sh:272: main: true /usr/local/bin/forgejo-curl.sh:273: main: case "1ドル" in /usr/local/bin/forgejo-curl.sh:323: main: shift /usr/local/bin/forgejo-curl.sh:324: main: api_json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues /usr/local/bin/forgejo-curl.sh:63: api_json: api -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues /usr/local/bin/forgejo-curl.sh:59: api: client -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues /usr/local/bin/forgejo-curl.sh:102: client: log_verbose curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues /usr/local/bin/forgejo-curl.sh:32: log_verbose: true /usr/local/bin/forgejo-curl.sh:33: log_verbose: log curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues /usr/local/bin/forgejo-curl.sh:24: log: echo curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues /usr/local/bin/forgejo-curl.sh:103: client: curl --cookie /home/user/.forgejo-curl/cookies -f -sS -H @/home/user/.forgejo-curl/header-token -H Content-Type:application/json https://codeberg.org/api/v1/repos/forgejo/forgejo/issues curl: option -H: error encountered when reading a file curl: try 'curl --help' or 'curl --manual' for more information /usr/local/bin/forgejo-curl.sh:104: client: fatal_error /usr/local/bin/forgejo-curl.sh:42: fatal_error: log_error /usr/local/bin/forgejo-curl.sh:28: log_error: log /usr/local/bin/forgejo-curl.sh:24: log: echo /usr/local/bin/forgejo-curl.sh:43: fatal_error: true /usr/local/bin/forgejo-curl.sh:44: fatal_error: exit 1 user@host:~> ``` </details> --- > Regarding API pagination, you can apply `limit=50` to the URLs to get slightly more without implementing pagination in the script. To be honest a list of 174 contributors is already quite long (for a blog post) from my point of view; however, if I use `limit=50` only 3 extra lines are added (so I included them). --- > Here's a patch that includes Weblate-only contributors: [`fa559376cd`](https://codeberg.org/0ko/forgejo-website/commit/fa559376cdca2c5064c8444bb032997a40c7e5aa) Done.
Contributor
Copy link

To be honest a list of 174 contributors is already quite long...

I agree. It is significantly more than before which makes me wonder if there are not too many?

> To be honest a list of 174 contributors is already quite long... I agree. It is significantly more than before which makes me wonder if there are not too many?
Author
Member
Copy link

Maybe we can add them as a comma separated list of usernames with links to their profile page:
[someuser](https://codeberg.org/someuser), [anotherone](https://codeberg.org/anotherone), ...

Maybe we can add them as a comma separated list of usernames with links to their profile page: `[someuser](https://codeberg.org/someuser), [anotherone](https://codeberg.org/anotherone), ...`
Contributor
Copy link

I wonder if all of those actually contributed something in the time period. 170 gives me the feeling that some of them are included even though they did not contribute a comment / issue / pull request. But maybe I did not pay enough attention and there was a lot of people in February. 🤔

I wonder if all of those actually contributed something in the time period. 170 gives me the feeling that some of them are included even though they did not contribute a comment / issue / pull request. But maybe I did not pay enough attention and there was a lot of people in February. 🤔
Beowulf approved these changes 2025年03月18日 19:36:17 +01:00
Dismissed
Author
Member
Copy link

I wonder if all of those actually contributed something in the time period.

I think it's not that easy to check. However, after a quick look at the results from the /repos/{owner}/{repo}/issues/comments endpoint for /forgejo/forgejo repository I would say that the list is pretty genuine. And only for this repository a list of 118 comment authors is returned (the number goes up to 148 when retrieving the comments from /forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions}).


EDIT: Correct numbers: 127→118 / 163→148

> I wonder if all of those actually contributed something in the time period. I think it's not that easy to check. However, after a quick look at the results from the `/repos/{owner}/{repo}/issues/comments` endpoint for `/forgejo/forgejo` repository I would say that the list is pretty genuine. And only for this repository a list of 118 comment authors is returned (the number goes up to 148 when retrieving the comments from `/forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions}`). --- EDIT: Correct numbers: 127→118 / 163→148
Author
Member
Copy link

Maybe we can add them as a comma separated list [...]

Ok... I see 2 thumbs up for this proposal.
Should I proceed with the change or wait for more reviewers?!
Anyone else having better suggestions?

> Maybe we can add them as a comma separated list [...] Ok... I see 2 thumbs up for this proposal. Should I proceed with the change or wait for more reviewers?! Anyone else having better suggestions?
Contributor
Copy link

I think it is ready to be published. Let me know if I should push the button 😇

I think it is ready to be published. Let me know if I should push the button 😇
Contributor
Copy link

It needs an update of the publication date (19 March instead of 17 March).

It needs an update of the publication date (19 March instead of 17 March).
Contributor
Copy link

@floss4good wrote in #564 (comment):

I wonder if all of those actually contributed something in the time period.

I think it's not that easy to check. However, after a quick look at the results from the /repos/{owner}/{repo}/issues/comments endpoint for /forgejo/forgejo repository I would say that the list is pretty genuine. And only for this repository a list of 127 comment authors is returned (the number goes up to 163 when retrieving the comments from /forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions}).

https://codeberg.org/caesar?tab=activity they are listed although there has been no activity in a while 🤔

@floss4good wrote in https://codeberg.org/forgejo/website/pulls/564#issuecomment-3089274: > > I wonder if all of those actually contributed something in the time period. > > I think it's not that easy to check. However, after a quick look at the results from the `/repos/{owner}/{repo}/issues/comments` endpoint for `/forgejo/forgejo` repository I would say that the list is pretty genuine. And only for this repository a list of 127 comment authors is returned (the number goes up to 163 when retrieving the comments from `/forgejo/{design,forgejo,website,docs,tools,governance,sustainability,discussions}`). https://codeberg.org/caesar?tab=activity they are listed although there has been no activity in a while 🤔
Update publish date.
All checks were successful
pr / preview (pull_request_target) Successful in 1m12s
751493cb64
Contributor
Copy link

@floss4good I think the list of contributors being slightly off is not a blocker. It can be updated later. Let me know if this is good to merge.

@floss4good I think the list of contributors being slightly off is not a blocker. It can be updated later. Let me know if this is good to merge.
Author
Member
Copy link

First of all, I've made a silly mistake and I want to clarify this; the numbers from this comment were also taking into account the /repos/{owner}/{repo}/issues endpoint; I have updated the above comment (127→118 / 163→148).

Secondly, concerning caesar, it is included at least because of forgejo/docs#51 (created by him 2 years ago and edited by someone else last month); so my second concern listed in this comment is now proved.

As for the merge, I think you and other reviewers should know better than me if the PR is ready (since for me it's the first time I do this). Personally I don't have any change to add (besides the contributors list, which could take some time to validate and I prefer to do something more productive with that time).

First of all, I've made a silly mistake and I want to clarify this; the numbers from [this comment](https://codeberg.org/forgejo/website/pulls/564#issuecomment-3089274) were also taking into account the `/repos/{owner}/{repo}/issues` endpoint; I have updated the above comment (127→118 / 163→148). Secondly, concerning caesar, it is included at least because of forgejo/docs#51 (created by him 2 years ago and edited by someone else last month); so my second concern listed in [this comment](https://codeberg.org/forgejo/website/pulls/564#issuecomment-3082247) is now proved. As for the merge, I think you and other reviewers should know better than me if the PR is ready (since for me it's the first time I do this). Personally I don't have any change to add (besides the contributors list, which could take some time to validate and I prefer to do something more productive with that time).
Contributor
Copy link

This is excellent work 👍 Let's merge in a few hours unless someone objects then.

This is excellent work 👍 Let's merge in a few hours unless someone objects then.
Contributor
Copy link

@mahlzahn will you publish the floss.social announcement?

@mahlzahn will you publish the floss.social announcement?
Contributor
Copy link
Room announcement posted at https://matrix.to/#/!qjPHwFPdxhpLkXMkyP:matrix.org/$wusXgTb8SLDIjiJ_cn5h76ktaRJSKK4b1JLzLPzg-rk?via=matrix.org&via=tchncs.de&via=envs.net (and description updated).
Sign in to join this conversation.
Labels
Clear labels
404
Broken links or missing content
Accessibility
Accessibility
Blog post
Documentation
Forgejo Documentation
Internationalisation
i18n and l10n
User research - Accessibility
Requires input about accessibility features, likely involves user testing.
User research - Blocked
Do not pick as-is! We are happy if you can help, but please coordinate with ongoing redesign in this area.
User research - Community
Community features, such as discovering other people's work or otherwise feeling welcome on a Forgejo instance.
User research - Config (instance)
Instance-wide configuration, authentication and other admin-only needs.
User research - Errors
How to deal with errors in the application and write helpful error messages.
User research - Filters
How filter and search is being worked with.
User research - Future backlog
The issue might be inspiring for future design work.
User research - Git workflow
AGit, fork-based and new Git workflow, PR creation etc
User research - Labels
Active research about Labels
User research - Moderation
Moderation Featuers for Admins are undergoing active User Research
User research - Needs input
Use this label to let the User Research team know their input is requested.
User research - Notifications/Dashboard
Research on how users should know what to do next.
User research - Rendering
Text rendering, markup languages etc
User research - Repo creation
Active research about the New Repo dialog.
User research - Repo units
The repo sections, disabling them and the "Add more" button.
User research - Security
User research - Settings (in-app)
How to structure in-app settings in the future?
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
6 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo/website!564
Reference in a new issue
forgejo/website
No description provided.
Delete branch ":2025-02"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?