Back to Codeberg

How is forgejo-cli configured? #208

forgejo-contrib-forgejo-cli-issues-208.md

latest11.6 KB
Original Source

forgejo-contrib/forgejo-cli

Watch20

Star402

Fork

You've already forked forgejo-cli

51

CodeIssues 44Pull requests 8Releases 11Packages 2WikiActivity

How is forgejo-cli configured? #208

New issue

Open

opened 2025-06-21 16:57:09 +02:00 by plotski · 5 comments

plotski commented 2025-06-21 16:57:09 +02:00

Copy link

I'm trying to have one configuration per project directory, but I can't even figure out where/if forgejo-cli stores any configuration. fj said it created a key file at some point, but I have no idea where it is.

With gh I can use environment variables and direnv. For example, I could have a .envrc like this in each project directory:

export FJ_HOST=codeberg.org
export FJ_REPO=plotski/myproject
export FJ_TOKEN=d34db33f00b4r

And every time I enter such a project directory, all the variables are set, and they are unset when I leave the directory.

direnv cannot create aliases, so creating an alias with the required arguments as suggested in the README doesn't work with this approach.

I would have to create one alias for each project directory in my ~/.zshrc, which means my project config is in some completely unrelated file in my home directory. Not very tidy.

I'm trying to have one configuration per project directory, but I can't even figure out where/if forgejo-cli stores any configuration. fj said it created a key file at some point, but I have no idea where it is. With gh I can use environment variables and direnv. For example, I could have a .envrc like this in each project directory: export FJ_HOST=codeberg.org export FJ_REPO=plotski/myproject export FJ_TOKEN=d34db33f00b4r And every time I enter such a project directory, all the variables are set, and they are unset when I leave the directory. direnv cannot create aliases, so creating an alias with the required arguments as suggested in the README doesn't work with this approach. I would have to create one alias for each project directory in my ~/.zshrc, which means my project config is in some completely unrelated file in my home directory. Not very tidy.

👍 1

Cyborus commented 2025-06-21 17:38:28 +02:00

Member

Copy link

Ideally, forgejo-cli is configured with git. If your projects only have a single git remote, it will figure out the instance URL and project name from that. If there's multiple remotes, it'll try to figure that out from the currently checked-out branch's remote tracking branch.

If it can't do that, that's what the --host flag is for (and in turn, aliases). There is also the FJ_FALLBACK_HOST env var which serves the same purpose, it will default to it if finding it from git doesn't work.

For tokens, they're stored per-instance (not per-project) in ~/local/share/forgejo-cli/keys.json when you use fj auth login or fj auth add-key. Currently there is no way to set a token per-project.

I would have to create one alias for each project directory

It's intended to create an alias per-instance, i.e. one single alias for all projects on Codeberg.

Ideally, forgejo-cli is configured with git. If your projects only have a single git remote, it will figure out the instance URL and project name from that. If there's multiple remotes, it'll try to figure that out from the currently checked-out branch's remote tracking branch. If it can't do that, that's what the --host flag is for (and in turn, aliases). There is also the FJ_FALLBACK_HOST env var which serves the same purpose, it will default to it if finding it from git doesn't work. For tokens, they're stored per-instance (not per-project) in ~/local/share/forgejo-cli/keys.json when you use fj auth login or fj auth add-key. Currently there is no way to set a token per-project. > I would have to create one alias for each project directory It's intended to create an alias per-instance, i.e. one single alias for all projects on Codeberg.

👍 1

plotski commented 2025-06-21 17:47:00 +02:00

Author

Copy link

OK, thank you for the explanation.

Are there any plans to allow configuring a token per-project? What should I do if I have multiple accounts on codeberg.org?

OK, thank you for the explanation. Are there any plans to allow configuring a token per-project? What should I do if I have multiple accounts on codeberg.org?

Cyborus commented 2025-06-21 19:07:10 +02:00

Member

Copy link

Are there any plans to allow configuring a token per-project?

Not at the moment, but I'm open to it if it's something you'd need.

What should I do if I have multiple accounts on codeberg.org?

Currently there isn't really an option

> Are there any plans to allow configuring a token per-project? Not at the moment, but I'm open to it if it's something you'd need. > What should I do if I have multiple accounts on codeberg.org? Currently there isn't really an option

plotski commented 2025-06-21 19:32:48 +02:00

Author

Copy link

Yes, if you could add such a feature, that would be amazing.

Yes, if you could add such a feature, that would be amazing.

bordicon commented 2026-05-16 20:58:50 +02:00

Copy link

instead could we have the config path be configurable via environment variable?

I to also use direnv and I would like to localize fj configuration to a project versus global

instead could we have the config path be configurable via environment variable? I to also use direnv and I would like to localize fj configuration to a project versus global

Sign in to join this conversation.

No Branch/Tag specified

BranchesTags

main

renovate/lock-file-maintenance

renovate/serde-saphyr-0.x

docs/contributing

no-port-in-refspec

login/v16.next.forgejo.org

crates-io-publish

0.5.x

compile-time-fluent

0.4.x

localization-alias-demo

api_url_field

v0.5.0

v0.4.1

v0.4.0

v0.3.0

v0.2.0

v0.1.1

v0.1.0

v0.0.4

v0.0.3

v0.0.2

v0.0.1

Labels

Clear labels[ Kind/Breaking Breaking change that won't be backward compatible

](#)[ Kind/Bug Something is not working

](#)[ Kind/Design Discussion about UI/UX design

](#)[ Kind/Documentation Documentation changes

](#)[ Kind/Enhancement Improve existing functionality

](#)[ Kind/Feature New functionality

](#)[ Kind/Security This is security issue

](#)[ Kind/Testing Issue or pull request related to testing

](#)[ Kind/Upstream This is an issue with upstream software (Forgejo) that is probably not our fault

](#)

[ Priority

Critical The priority is critical

](#)[ Priority

High The priority is high

](#)[ Priority

Low The priority is low

](#)[ Priority

Medium The priority is medium

](#)

[ Reviewed

Confirmed Issue has been confirmed

](#)[ Reviewed

Duplicate This issue or pull request already exists

](#)[ Reviewed

Invalid Invalid issue

](#)[ Reviewed

Won't Fix This issue won't be fixed

](#)

[ Status

Abandoned Somebody has started to work on this but abandoned work

](#)[ Status

Blocked Something is blocking this issue or pull request

](#)[ Status

Need More Info Feedback is required to reproduce issue or to continue work

](#)

[ Suspicious

](#)

No labels Kind/Breaking Kind/Bug Kind/Design Kind/Documentation Kind/Enhancement Kind/Feature Kind/Security Kind/Testing Kind/Upstream [ Priority

Critical ](/forgejo-contrib/forgejo-cli/issues?labels=173012) [ Priority

High ](/forgejo-contrib/forgejo-cli/issues?labels=173013) [ Priority

Low ](/forgejo-contrib/forgejo-cli/issues?labels=173015) [ Priority

Medium ](/forgejo-contrib/forgejo-cli/issues?labels=173014) [ Reviewed

Confirmed ](/forgejo-contrib/forgejo-cli/issues?labels=173007) [ Reviewed

Duplicate ](/forgejo-contrib/forgejo-cli/issues?labels=173005) [ Reviewed

Invalid ](/forgejo-contrib/forgejo-cli/issues?labels=173006) [ Reviewed

Won't Fix ](/forgejo-contrib/forgejo-cli/issues?labels=173008) [ Status

Abandoned ](/forgejo-contrib/forgejo-cli/issues?labels=173011) [ Status

Blocked ](/forgejo-contrib/forgejo-cli/issues?labels=173010) [ Status

Need More Info ](/forgejo-contrib/forgejo-cli/issues?labels=173009) Suspicious

Milestone

Clear milestone

No items

No milestone

Projects

Clear projects

No items

No project

Assignees

Clear assignees

No assignees

3 participants

Notifications Subscribe

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-contrib/forgejo-cli#208

WritePreview

Loading…

Add table

| Rows | | | Columns | |

CancelOK

Add a link

Url Description Hint: With a URL in your clipboard, you can paste directly into the editor to create a link.

CancelOK

CancelSave

Reference in a new issue

Repository

forgejo-contrib/forgejo-cli

Title

Body

Create issue

No description provided.

Delete branch "%!s()"

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?

No Yes